我有一个跟踪文件(一个旧版本的文件),我在master分支上修改过。 master分支上的staus将此文件显示为已修改但是 主题分支上的状态还将此文件显示为已修改。
之前出现错误“错误:您对”X“进行了本地更改;当我结帐到其他分支而没有进行存储或在git-checkout中不使用”-f“时,无法切换分支。
我已经检查了“stackoverflow.com/questions/1304626/git-switch-branch-and-ignore-any-changes-without-committing”,但是这个错误没有发生,即使我有本地更改也可以结帐。
是否有任何类型的配置导致这种混淆?
答案 0 :(得分:5)
除非您提交,否则修改后的更改不属于任何分支,但适用于您的工作目录,并且签出另一个分支也会将这些更改带到另一个分支(除非存在冲突)
如果您不希望在master中进行的更改在检出时更改为其他分支,请提交更改或存储更改。
答案 1 :(得分:2)
看起来你要切换的分支与你来自的分支处于相同的状态。每个分支都是提交树上的指针。因此,如果有两个分支point to the same set of commits,则可以在不检查本地更改的情况下在它们之间切换。原因是,在您实际提交更改之前,git对您提交的分支没有任何影响。但是,一旦你提交了更改,那么一个分支就会拥有它,而另一个分支则没有,并且它们的历史现在是不同的。
答案 2 :(得分:0)
尝试
git reset --hard HEAD
在主人
上