我在我的本地git仓库中有两个分支:master
和anotherbranch
。当我从master
切换到anotherbranch
与git checkout anotherbranch
并运行git status
我看到修改后的文件。为什么工作目录中的文件在Git分支之间切换时获得修改状态?
我用git reset HEAD
取消这些修改,然后git status
不显示它们。但是,当我切换到主并切换到分支后,我再次看到这些修改后的文件。
你能解释一下发生了什么吗?
我在我的本地git仓库中有两个分支:master
和anotherbranch
。当我从master
切换到anotherbranch
与git checkout anotherbranch
并运行git status
我看到修改后的文件。为什么工作目录中的文件在Git分支之间切换时获得修改状态?
我用git reset HEAD
取消这些修改,然后git status
不显示它们。但是,当我切换到主并切换到分支后,我再次看到这些修改后的文件。
你能解释一下发生了什么吗?
如果项目没有在任一分支跟踪,这些文件将在git status
为untracked
显示,和整个检出
你不会autocrlf
set to true将求生存,以任何机会呢?
因为它可以改变你的文件上签出...
见线程“core.autocrlf considered half-assed”:
那时候,我是不是该
core.autocrlf
支持的粉丝。
*但我不得不承认,在此期间,我变成了一个彻头彻尾的特征粉丝。不是因为它的意图是错误的,而是因为它的实现是糟糕的。只要尝试到
git reset --hard
或git stash
当有DOS行结尾的文件和core.autocrlf不是false时。然后绝望。
@Mark:我的设置历史悠久......有理由将其设置为true(http://stackoverflow.com/questions/2825428/why-should-i-use-core-autocrlf-true -in-git),但还有其他方法:http://stackoverflow.com/questions/2332349/best-practices-for-cross-platform-git-config – VonC
我通常建议Windows用户,他们unset core.autocrlf只需使用足够复杂的工具来处理不同的行结尾。我承认这是警察,但它排除了这么多混乱的问题。 –
git reset --hard将删除索引中的修改。尝试使用这个附加参数后,应该可以。
修改后的文件是否在两个分支中被跟踪?或者只在其中一个? – Amber
有些事情你没有告诉我们,或者不清楚,因为上述情况,正如你所描述的,是不可能的。你可以在你的问题中包含你的git命令的实际输出吗? –
我很想看看如何以一步一步的方式重现这一点。我试图根据我所做的一些假设重新创建它,但不能。 – Tone