【问题标题】:After a git checkout I see a folder from another branch在 git checkout 之后,我看到另一个分支的文件夹
【发布时间】: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 啊哈,文件夹是空的。这样就解释了!谢谢。如果您将其作为答案提交,我会接受。

标签: git checkout


【解决方案1】:

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

签出m5 应该删除m4 中不在m5 中的文件,但它不会删除该文件夹,除非它之后是空的。

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

【讨论】:

    猜你喜欢
    • 2019-03-17
    • 2020-07-12
    • 2020-12-08
    • 2019-05-10
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2015-10-16
    相关资源
    最近更新 更多