代码之家  ›  专栏  ›  技术社区  ›  J. Doe

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

  •  1
  • J. Doe  · 技术社区  · 6 月前

    在我的git项目中,文件 dir-name/file.txt git没有跟踪它,但我希望它被跟踪。

    • In git status 该文件未列在跟踪文件中,也未列在未跟踪文件中。 git add dir-name/file.txt 没有任何效果。
    • In git ls-files ,the 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跟踪此文件?我怀疑这与 目录名称 过去是一个子模块,但我删除了 .submodules 文件和 dir-name/.git/ .

    1 回复  |  直到 6 月前
        1
  •  2
  •   grawity_u1686    6 月前

    我怀疑这与过去目录名是一个子模块有关,但我删除了 .submodules 文件和 dir-name/.git/ .

    是的,但这并不是Git跟踪子模块的方式。这不是通过 .gitmodules 仅用于告诉Git位置的文件 下载 子模块来自,并且可以在不创建任何.gitmodules条目的情况下添加子模块。

    (同样地 目录名/.git/ 目录只是什么 引起 Git添加 dir-name 作为开头的子模块条目。)

    相反,实际的“子模块”标记位于“树”(文件列表)本身:因为它最初是作为子模块添加的, 目录名称 根本不作为子目录被跟踪, 它被追踪为第三类物体。

    您需要使用以下命令完全删除该条目 git rm --cached dir-name 然后重新添加。