【发布时间】:2020-01-16 02:36:40
【问题描述】:
我正在做一个小回购。我有分支master,m1,m2,m3,m4和m5。我最近在 m4 上工作,创建了一个目录并提交了我的更改。现在我签出 m5,但我刚刚在 m4 上创建的那个目录仍然存在。试图理解为什么会这样以及我是否应该/我应该怎么做。
例如
PS C:\Repos\mystuff> git co m5
Switched to branch 'm5'
PS C:\Repos\mystuff> git ls-tree -r --name-only m5
.gitattributes
.gitignore
LICENSE
README.md
PS C:\Repos\mystuff> git st
On branch m5
nothing to commit, working tree clean
PS C:\Repos\mystuff> ls
Directory: C:\Repos\mystuff>
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2019-09-14 11:02 AM 04 <== old folder from m4
-a---- 2019-07-23 7:25 PM 66 .gitattributes
-a---- 2019-09-03 7:58 PM 5980 .gitignore
-a---- 2019-07-23 7:25 PM 1065 LICENSE
-a---- 2019-07-23 7:25 PM 32 README.md
为什么旧文件夹仍然显示在 ls 中,即使它不在分支的文件中并且未显示为未跟踪?
我可以/应该(安全地)删除它而不弄乱 m4 吗?
【问题讨论】:
-
04中有文件吗? Git 不跟踪文件夹,只跟踪文件。签出m5应该删除m4中不在m5中的文件,但它不会删除该文件夹,除非它之后为空,例如,如果它包含任何未跟踪的文件,Git 不会删除这些文件。 -
你的
.gitignore有没有可能和这个有关? -
@joanis 啊哈,文件夹是空的。这样就解释了!谢谢。如果您将其作为答案提交,我会接受。