git - 在 git checkout 之后,我看到另一个分支的文件夹
问题描述
我正在做一个小回购。我有分支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 的情况下删除它吗?
解决方案
Git 不跟踪文件夹,只跟踪文件。
签出m5
应该删除m4
不在的文件m5
,但它不会删除该文件夹,除非它之后是空的。
例如,如果它包含任何未跟踪的文件,Git 不会删除这些文件或文件夹。
推荐阅读
- c++ - 带分隔符的可变参数模板打印实现
- forms - Salesforce Web-to-Lead 表单在浏览多个页面后收集 UTM 数据
- reactjs - 为什么我不能使用 setcolor 设置背景颜色?
- php - 如何将 null 参数从播种机传递给 Laravel 工厂?
- python - 尝试使用 python 读取 Outlook 附件
- user-interface - 每当导航到该页面时,Xamarin 表单 Switch Toggled 事件都会自动触发
- python - try-finally 块:当 finally 块应该在 else 块之前运行时,为什么下面的代码可以工作?
- android - 安卓音频视图
- blazor - 将 Blazor 组件移动到共享组件项目
- python - DataFrame 转 JSON 格式,使用列值作为值