Git 允许我在有未暂存提交的更改(修改后的文件)时更改分支。
在某处有配置吗?
编辑:起初我认为这是一个我需要设置的配置,以禁止在有修改的未暂存文件时在分支之间进行更改。但是根据 Emily 的评论,如果分支之间的文件不同,系统似乎会提示您,否则不会提示。
最佳答案
它是如何决定的
快速实验显示以下内容。
假设您在分支 dev
上并且您修改了 foo.txt
。在不提交的情况下,您尝试检查 master
。将发生以下两种情况之一。
如果
foo.txt
在master
中修改了dev
没有的提交,您将不会允许在不提交的情况下切换,因为master
有一个与未暂存的更改冲突的文件的"new"版本。因此,要“ checkout ”
master
,需要 Git 将foo.txt
更新到master
拥有的较新版本,从而破坏您未暂存的更改。为防止丢失工作,它不会更改分支。否则,修改已经“自”
master
知道的版本完成,您将能够更改分支。 Git 不必更新该文件,因为master
没有关于该文件的新信息。
对于“糟糕”的变化
由于上述原因,如果您对一个分支上的文件进行了未暂存的更改,并且意识到您实际上想在另一个分支上提交更改,则您可能无法 check out 另一个分支。
但是,您可以执行以下操作:
git stash save "here's a summary of my changes"
(摘要将显示在git stash list
中)git checkout 其他分支
git stash pop
(这是git stash apply
和git stash drop
的组合)
关于Git 允许使用未暂存的更改进行分支更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526279/