为什么工作目录中的文件在Git分支之间切换时会得到修改后的状态?

时间:2011-03-08 20:13:46

标签: git branch

我的本​​地git存储库中有两个分支:masteranotherbranch。当我使用masteranotherbranch切换到git checkout anotherbranch并运行git status时,我会看到已修改的文件。

我使用git reset HEAD撤消这些修改,然后git status不会显示这些修改。但是当我切换到master并切换到分支后,我再次看到这些修改过的文件。

你能解释一下发生了什么吗?

3 个答案:

答案 0 :(得分:3)

你不会有任何机会autocrlf set to true吗? 因为它可以在结账时更改您的文件...

请参阅主题“core.autocrlf considered half-assed”:

  

那时候,我不是core.autocrlf支持的粉丝   *但我必须承认,与此同时,我变成了一个完全没有粉丝的功能。不是因为它的意图是错误的,而是因为它的实现很糟糕。

     

当存在具有DOS行结尾的文件且core.autocrlf不为false时,只需尝试git reset --hardgit stash

     

然后绝望。

答案 1 :(得分:1)

如果未在任一分支中跟踪这些项目,则这些文件将显示在git status untracked中,并且可以在结帐时生效

答案 2 :(得分:1)

git reset --hard将从索引中删除修改。尝试使用这个额外的参数,之后应该没问题。