git忽略一个目录,就像它不存在一样
我有一个克隆回购。 有一个目录,称之为/ b / c,它曾经是它自己的repo,即有一个/ b / c / .git /等。
现在我想要在主仓库中管理的文件。 我不关心a / b / c中的历史记录,所以我在a / b / c中删除了.git目录
但问题是git status
完全忽略了/ b / c。 我不能git add
它。 就好像我将路径放入.gitignore(我没有)。
很明显,之前,git忽略了一个带有.git目录的子目录是有意义的,但现在它是如何知道其差异的呢?
除了.gitignore和.git / info / excludes之外,是否还有其他位置忽略文件? .git / config文件中没有任何内容?
我被问到git的状态如何。 不多:
/path/to/root/dir $ git status
# On branch fred
nothing to commit (working directory clean)
还有什么git add说。 更少(没有)
/path/to/root/dir $ git add a/b/c
我不知道问题是什么或者它是如何产生的(v。恼人的),但是这里是我如何修复它,以防其他人陷入困境:
git rm --cached a/b/c
git commit -m "removed phantom a/b/c dir"
git add a/b/c
git commit -m "finally able to add a/b/c"
有趣的是, git log a/b/c
只列出了“finally could ...”提交。 git show HEAD^
(“删除的幻影......”提交说
-Subproject commit c311ccdc91c8be66019aa138d1c4af49a6b7a81c
所以它看起来像是特别处理它如何。 我将不得不详细阅读子项目和/或子模块。
你有全球gitignore文件吗? (用git config core.excludesfile
检查)
使用git add -f
强制git添加它当前忽略的文件。