切换Git分支时多余文件夹残留问题求助
问题详情
分支A上存在被Git追踪的文件夹,切换到分支B后,这些文件夹依然保留,但分支B并未追踪它们(可通过ls -la和git ls-files验证)。在分支B上执行git ls-files查看该文件夹无返回结果(分支A上执行会返回全部内容),且两个分支执行git status都显示无变更。
特殊点在于:分支B上的多余文件夹里只有__pycache__目录,里面是分支A中文件对应的*.cpython-39.pyc文件。两个分支的.gitignore都已添加**/__pycache__/和**/*.pyc规则。且只有先在分支A上做过变更(不一定是针对该文件夹的变更),才会出现这个问题。
已尝试的无效操作
git reset --hardgit clean -d --dry-rungit clean -xf
补充说明
- 在不需要该文件夹的分支
B上,该文件夹不存在于远程仓库,仅在本地显示且处于被忽略状态。执行ls可见两个分支都有此文件夹,git status显示两个分支都干净且已同步,git ls-tree结果符合预期(分支B无该文件夹,分支A有)。
以下是两个分支执行tree -L 3的结果(未将folder1显式加入.gitignore,仅添加了上述__pycache__相关规则):
**分支A**: project │ └───folder1 │ │ file011.txt │ │ file012.txt │ │ **分支B**: project │ │ file011.txt │ file012.txt └───folder1 <-- 从此处开始被忽略,但文件夹仍存在 │ │ └───__pycache__ | | | | file011.cpython-39.pyc │ │ | | file012.cpython-39.pyc │ │ | |
内容的提问来源于stack exchange,提问作者Cameron Wood
相关产品推荐
相关产品推荐

