为什么 git 中没有跟踪 git 文件?

问题描述 投票:0回答:1

在我的 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/

git git-submodules gitignore git-untracked git-track
1个回答
0
投票

我怀疑这与 dir-name 过去是一个子模块有关,但我删除了

.submodules
文件和
dir-name/.git/

是的,但这些实际上并不是 Git 跟踪子模块的方式。

它不是通过

.gitmodules
文件——它仅用于告诉 Git 从哪里下载子模块,但实际的“子模块”标记位于“树”(文件列表)本身中:因为它最初是添加的作为子模块,
dir-name
根本不被作为子目录进行跟踪,它被作为第三种类型的对象进行跟踪 -并且
dir-name/.git/
目录只是 导致 Git 将
dir-name
添加为“子模块”条目。

您需要使用

git rm --cached dir-name
完全删除该条目,然后重新添加。

© www.soinside.com 2019 - 2024. All rights reserved.