主支路具有这些文件和文件夹(简化):git checkout远程分支显示无关文件?
C:\Local\TickZoom\Project>ls
file.txt name.txt public
公共分支正在跟踪一个供应商库并一直子树 合并为公共文件夹中的主分支的上方。公共具有三个文件夹 仅(简化):
C:\Local\TickZoom\Project>ls
platform providers www
当从公众交换掌握它行为正确。
但是,当从主控切换到公共时,会发生奇怪的事情。 它拥有的所有文件和双方联合的文件夹:
C:\Local\TickZoom\Project>git checkout public
C:\Local\TickZoom\Project>ls
file.txt name.txt public
platform providers www
然而,检查git的状态是什么都没有改变。
我发现'git reset --hard'修复了公众后退。
CLUE:看来只有在做出新的提交 掌握之后才会发生这种情况。 git会做某种自动合并吗?
经过'git reset --hard'后,即使重复,也可以通过结账方式将 作为公共工作。
第一次,我认为它是固定的,但下次改变时我再次发生了 。让我再试一次 现在确保...
现在,我不能再现它。但它确实发生过两次。
另一个CLUE是,我第一次做了git reset --hard 它抱怨文件被进程锁定。
在违规项目关闭后,git reset --hard 成功,然后两个分支之间的结帐工作。
那么结账会被文件锁定和 “默默”失败混淆?这会更好,这就是问题 以同样的方式失败git reset --hard不仅仅是报告 成功和混乱的工作区。
任何其他智慧或选项设置在git结帐,以避免这种 将不胜感激。
韦恩
好的,现在发现了问题。怎么修? 问题是在子文件夹中有被忽略的文件。 git正确地完成了结帐,但留下了所有被忽略的文件,并且如果有多个目录下来,它将留下所有直接去的目录。 我试过git clean -f,它仍然保留文件。 如何在分支之间切换时清除未被跟踪的文件? – Wayne 2009-11-18 04:45:54