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添加它当前忽略的文件。

链接地址: http://www.djcxy.com/p/16465.html

上一篇: git ignoring a directory, it's like it doesn't exist

下一篇: Swap git submodule with own fork