git checkout后,我看到另一个分支的文件夹

时间:2019-09-14 15:18:51

标签: git checkout

我正在做一个小仓库。我有分支主管,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吗?

1 个答案:

答案 0 :(得分:0)

Git不跟踪文件夹,仅跟踪文件。

检出m5会删除m4中不在m5中的文件,但是除非该文件夹随后为空,否则它不会删除该文件夹。

例如,如果它包含任何未跟踪的文件,则Git不会删除这些文件或文件夹。