我正在处理一个分支中的一些文件(称为big_new_feature
)。文件尚未准备好提交,但我需要切换分支以在另一个分支(称为stable_branch
)中快速修复。为什么我不能在big_new_feature
暂存文件并查看stable_branch
?为什么在切换到big_new_feature
之前我必须在stable_branch
中实际提交文件?
或者我误解了?
答案 0 :(得分:0)
切换分支时,跟踪文件的内容将发生变化,以反映目标分支的提示。
如果工作目录和阶段中的内容与目标分支状态不冲突,则不需要提交,您可以根据需要切换分支。
但是,我猜你看到了这个错误信息:
错误:您对以下文件的本地更改将被覆盖 通过结帐
这是因为当您播放内容时,它仍然存在于文件系统上的文件状态中。
如果您在舞台上的内容与其他分支的内容相冲突,那么由于冲突,Git无法继续。 Git不知道哪一方应该获胜。
所以,我的建议是做以下其中一项:
答案 1 :(得分:0)
您不必提交提交。如果其他分支还没有也更改了这些文件,那么您可以让它们暂存。虽然你可能不想这样做,因为 - 好吧,因为现在他们将在另一个分支上进行,听起来你不想让他们提交另一个分支。
% vi foo.c
% git add foo.c
% git checkout branch
M foo.c
Switched to branch 'branch'
% git status
On branch branch
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: foo.c
所以很有可能这样做,但现在foo.c
将在另一个分支上提交,你刚刚切换到的那个分支以便修复错误。这几乎肯定不是你想要的。
我不确定你为什么反对在这种情况下做出承诺。这当然是应对的最远,最容易的情况,而不是藏匿(尽管这也是一种可能性)。
如果你担心自己现在有一个半生不熟的&#34;正在进行中&#34;提交,然后只需commit --amend
你的下一次提交来清理它。或者在推动之前压缩提交。