git 临时切换分支

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

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

19106 次点击
所在节点    git
122 条回复
nagisaushio
2023-11-15 11:57:46 +08:00
前面说 rebase 的,其实可以切回来后直接 reset 那个临时 commit 呀

我选择 commit 是因为 stash 完有可能会忘了,而 commit 就在历史树里不会忘
Rache1
2023-11-15 11:58:32 +08:00
@Rehtt #35 就算推了,在自己的 feature 分支,删掉远端分支也不是不行
KMpAn8Obw1QhPoEP
2023-11-15 12:01:53 +08:00
@ruchee 这位更秀。。
Azone
2023-11-15 12:05:13 +08:00
更好的办法是用 git worktree
vcbal
2023-11-15 12:05:19 +08:00
@leconio 你先看清问题以及回复,感觉你回的莫名其妙
wjfz
2023-11-15 12:07:17 +08:00
开始用 stash ,但有时候 stash 之后会忘掉,而且也不太方便 compare 。
用 commit 可以在修完 bug 回来之后,git reset HEAD~把临时提交还原回来。还是很舒服的。
hijoker
2023-11-15 12:34:58 +08:00
@HarryQu 链接好像有问题
Kirscheis
2023-11-15 12:41:38 +08:00
我是用 stash ,楼上这么多用 commit 的都没提 hooks ,大家的 commit 上都没有钩子吗。。
Helsing
2023-11-15 12:50:37 +08:00
git worktree ,想同时开多少个分支就可以开多少个分支
besto
2023-11-15 13:01:16 +08:00
@pkoukk stash 还是很有用的,当然不是不可替代,stash 相当于可以把一些 CL 特别放在那,list 一下就能立刻找到,比较相似的是生成 patch 放一边。
crysislinux
2023-11-15 13:03:17 +08:00
> 楼上这么多用 commit 的都没提 hooks ,大家的 commit 上都没有钩子吗。。

commit 上搞钩子其实不太好,push 的时候跑干扰少的多

> git commit 并且推送到仓库了,后面如果修改后想覆盖前面的提交

推送也是推送自己的 branch ,最后 merge PR 也是 rebase ,你是直接 main 上推么?
besto
2023-11-15 13:05:10 +08:00
@Kirscheis 一般 commit hook 都是签名或是对抗 gerrit 写的 泛式的 模板。主要楼主这事情,压根不是事,git 至少有 10+种办法处理,还都很简单,只要本地当前 branch 是 track 远端的,直接换成 detach 状态,把改动提交了,再生成一个本地分支就行了。
ChevalierLxc
2023-11-15 13:11:20 +08:00
git commit 后还可以用 git rebase -i HEAD~2 去 merge 两次 commit. 方法很多,多看看吧
myl0204
2023-11-15 13:21:49 +08:00
stash 和 commit 都能实现目的,不过 stash 的语境更符合一点吧,我记得 git book 上 stash 的翻译是暂存。
ooee2016
2023-11-15 13:27:29 +08:00
git stash 更适合, 但是还需要 git stash list 确认下.
git commit 也行, 完事 rebase 一下,反正是自己本次的分支,也不影响别人
sprite82
2023-11-15 13:43:13 +08:00
用 commit 的基本不是菜就是偷懒,抱着无所谓的态度,污染就污染了,什么后续 rebase 合并提交,绝对不会用的。还什么 stash 会忘记的,找不到的哪些,你自己要做什么还会忘记的? stash 不会备注信息吗?
都是借口, 我说的可能优点极端,但符合大多数人真实心理
20015jjw
2023-11-15 14:01:10 +08:00
commit 啊 commit 最稳妥
不会 amend rebase reset 吗
楼上什么不是菜就是偷懒是什么逻辑
谁告诉你 xommit 完就一定不能改了?
lovelylain
2023-11-15 14:08:09 +08:00
commit 吧。stash 有冲突解决后得单独 drop ,否则一直在然后后面忘了,就不知道有没有合并以及是哪个分支的。
SmallZheng
2023-11-15 14:10:34 +08:00
gwip
serge001
2023-11-15 14:14:45 +08:00
git commit 吧 可以在你自己的临时分支上,完了再切回来 amend 或者 rebase 都行

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

https://www.v2ex.com/t/992022

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

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

© 2021 V2EX