git 临时切换分支

2023-11-15 10:36:33 +08:00
 yujianwjj

大家在开发过程中,遇到需要切换分支的情况,比如需要紧急修复一个线上 bug 。这个时候,是使用 git commit 临时保存本地代码还是使用 git stash 。

19185 次点击
所在节点    git
122 条回复
jfds
2023-11-15 16:20:29 +08:00
我的解决方案是代码 copy 一份多开一个项目
tlerbao
2023-11-15 16:30:40 +08:00
@HarryQu #38 链接一片空白
tlerbao
2023-11-15 16:35:34 +08:00
68 楼正解了把,除了 worktree ,stash 才是最佳方案把?

IvanLi127
2023-11-15 16:41:51 +08:00
我的选择是:
小 bug 的话,git stash
bug 不急的话,先做完现在的然后 git commit 并 push
大 bug 的话,直接 git commit 一个临时的然后 push 到其他分支上,怕后面 stash 丢东西 QAQ
QlanQ
2023-11-15 17:03:18 +08:00
对电脑没有安全感,不管是下班还是切分支修 bug ,我会毫不犹豫的 commit push ,我怕电脑炸,stash 经常炸,在多人修改一个项目的情况下,很有可能拉了代码,就没办法 stash pop 了,一点安全感都木有
commit 多了,可以 rebase
zhouhu
2023-11-15 17:03:48 +08:00
@4771314 确实,而且如果是自己的 feature 分支,最好推送到远端。
Sfilata
2023-11-15 17:08:27 +08:00
@Tubering #22 stash 可以加消息的,一般只要不是存太多问题都不大。
pkoukk
2023-11-15 17:21:01 +08:00
@Colderer #33 但是如果你用 commit 就只需要 commit ,切 hotfix ,修完,切原分支 就行了啊。
pkoukk
2023-11-15 17:22:51 +08:00
@Rehtt #35 一般只有 master 和 release 这样的分支是 protected 的,但是这种分支本来就应该禁止直接 commit ,只接受 mr 或者 pr 合并的。
cyningxu
2023-11-15 17:28:33 +08:00
之前一直用 stash ,但发现有时候分支太多比较难对应,现在大概率都是 commit 到本地,回来再 rest soft 。
pkoukk
2023-11-15 17:31:36 +08:00
@sprite82 #56 一看就没用过 github work flow 或者 gitlab work flow 。
所有的 bug fix 和 feature 都应该在独立的分支开发,最终通过 mr 或者 pr 合并到 master ,合并的时候默认伴随着 rebase ,就是让你 commit 的时候别有负担。
写了东西不敢 commit ,不敢推,害怕污染,你要 git 干嘛?磁盘炸了怎么办?
lbfjkaou
2023-11-15 17:33:02 +08:00
@huihushijie1996 #20 正解
nunterr
2023-11-15 17:33:31 +08:00
你选择使用 git commit 或 git stash 都可以来处理当前分支上的未完成工作。两者各有优缺点:
使用 git commit:
优点:这是一种更“永久性”的保存方式。提交后的更改会被记录在版本历史中,可以在任何时候回退到这个状态。
缺点:如果你的更改还不够成熟,就可能会污染你的提交历史。你可能需要之后使用 git rebase 来清理提交历史。
使用 git stash:
优点:git stash 可以临时保存你的更改,并让你回到一个干净的工作目录。这对于需要快速切换任务的场景非常有用。稍后可以使用 git stash pop 或 git stash apply 来恢复这些更改。
缺点:Stash 不是一个“正式”的提交,它不会出现在项目的历史中。此外,如果 Stash 列表过长,有时候可能会忘记或弄错需要应用的 Stash 。
所以,选择哪种方法取决于你的具体需求。如果你认为你的更改已经足够成熟,可以作为一次提交,那么使用 git commit 是个不错的选择。如果你只是想快速切换分支,而且更改还不够稳定,那么 git stash 可能更适合。
swaggeek
2023-11-15 17:41:59 +08:00
@Leviathann 跟 stash 差不多,但是 shelves change 会保存删除后的记录,万一删错了还有挽救空间
linvaux
2023-11-15 17:58:07 +08:00
git stash
ludage
2023-11-15 18:49:34 +08:00
@HarryQu 大佬 连接不对
HarryQu
2023-11-15 18:52:08 +08:00
@hijoker 不好意思,忘记开了,现在可以正常访问了,推荐大家体验下 shelves changes ,很好用。
HarryQu
2023-11-15 18:52:38 +08:00
@ludage 再试下,现在可以了。
ludage
2023-11-15 18:53:04 +08:00
@ludage 找到了
thorneLiu
2023-11-15 20:02:47 +08:00
本地怎么搞都行 因为你用的是 git

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/992022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX