git checkout远程分支显示无关文件?

Way*_*yne 1 git branch subtree git-checkout

master分支有这些文件和文件夹(简化):

C:\Local\TickZoom\Project>ls
file.txt         name.txt      public
Run Code Online (Sandbox Code Playgroud)

公共分支正在跟踪供应商存储库,并且已将子树合并为上面主分支中的公用文件夹.public只有三个文件夹(简化):

C:\Local\TickZoom\Project>ls
platform  providers  www
Run Code Online (Sandbox Code Playgroud)

从公共切换到主切换时,它的行为正确.

但是,当从主设备切换到公共设备时,会发生奇怪的事情.它包含两者的所有文件和文件夹:

C:\Local\TickZoom\Project>git checkout public

C:\Local\TickZoom\Project>ls
file.txt  name.txt   public
platform  providers  www
Run Code Online (Sandbox Code Playgroud)

但是,检查git状态表示没有任何改变.

我发现'git reset --hard'修复了公众.

CLUE:似乎只有在对master进行新提交后才会发生这种情况.git会做某种自动合并吗?

在'git reset --hard'之后,结账并掌握并回到公共工作正常,即使反复.

第一个,我认为它已经修复但是下次我做出改变时又发生了.让我再试一次,确保......

现在,我无法重现它.但确实发生了两次.

另一个CLUE是我第一次进行git重置 - 很难抱怨文件被进程锁定.

在违规程序关闭后,git reset --hard成功,然后结帐在两个分支之间工作.

因此,结账会被锁定的文件和"默默地"失败感到困惑吗?它会更好,它的问题是以同样的方式失败git reset - 硬件而不仅仅是报告成功并且拥有混乱的工作空间.

任何其他智慧或选项设置git结账以避免这一点将不胜感激.

韦恩

Dan*_*ing 6

您可以使用以下方法清除所有未跟踪的文件:

git clean -dfx
Run Code Online (Sandbox Code Playgroud)

肯定有真的不是你想保持在运行此命令之前,任何未跟踪文件!