在我的 git 项目中,文件
dir-name/file.txt
没有被 git 跟踪,但我希望它被跟踪。
git status
中,该文件未列在已跟踪文件中,也未列在未跟踪文件中。 git add dir-name/file.txt
没有任何效果。git ls-files
中,列出了 dir-name
,但 dir-name/file.txt
没有列出。git check-ignore -v dir-name/file.txt
未列出任何内容。git submodule status
输出:fatal: no submodule mapping found in .gitmodules for path 'dir-name'
如何让 git track 这个文件?我怀疑这与
dir-name
过去是一个子模块有关,但我删除了 .submodules
文件和 dir-name/.git/
。
我怀疑这与 dir-name 过去是一个子模块有关,但我删除了
文件和.submodules
。dir-name/.git/
是的,但这些实际上并不是 Git 跟踪子模块的方式。
它不是通过
.gitmodules
文件——它仅用于告诉 Git 从哪里下载子模块,但实际的“子模块”标记位于“树”(文件列表)本身中:因为它最初是添加的作为子模块,dir-name
根本不被作为子目录进行跟踪,它被作为第三种类型的对象进行跟踪 -并且 dir-name/.git/
目录只是 导致 Git 将 dir-name
添加为“子模块”条目。
您需要使用
git rm --cached dir-name
完全删除该条目,然后重新添加。