1

我有一个在主分支上修改的跟踪文件(旧版本文件)。master 分支上的状态显示此文件已修改,但主题分支上的状态也显示此文件已修改。

早些时候有一个错误“错误:您对“X”进行了本地更改;当我结帐到另一个分支时没有进行存储或没有在 git-checkout 中使用“-f”时出现错误。

我已经检查了“stackoverflow.com/questions/1304626/git-switch-branch-and-ignore-any-changes-without-committing”,但该错误不会发生,即使我有本地更改也能够结帐。

是否有任何类型的配置导致这种混乱?

4

3 回答 3

5

除非您提交,否则修改后的更改不是任何分支的一部分,但适用于您的工作目录,并且签出另一个分支也会将这些更改带到另一个分支(除非存在冲突)

如果您不希望您在 master 中所做的更改在签出时出现在其他分支中,请提交更改或存储它们。

于 2011-11-28T06:05:35.880 回答
2

看起来您要切换到的分支与您来自的分支处于相同状态。每个分支都是提交树上的一个指针。因此,如果两个分支指向同一组提交,您可以在它们之间切换而无需签入本地更改。原因是在您实际提交更改之前,您将更改提交到哪个分支对 git 没有影响。但是,一旦您提交了更改,那么一个分支拥有它,而另一个没有,它们的历史现在不同了。

于 2011-11-28T18:00:32.330 回答
0

尝试

git reset --hard HEAD

在主上

于 2011-11-28T05:32:23.127 回答