1

我的仓库中有一个停止跟踪更改的子目录。我可以将 abc.php 文件添加到某个级别以上的任何目录并git status返回预期结果,但是一旦我将 abc.php 添加到有问题的子目录(或更改现有文件),git status就会出现空。我相信子目录曾经有它自己的 git repo,但我可能是错的。

我看到这git update-index --really-refresh 可能是一个选项,但我很担心,因为我将其他 git 项目添加到有问题的“兄弟”目录中。(我没有在我的父仓库中做任何事情来承认这些,所以希望这也可以。)

也就是说,我有

  1. ...dir/custom(忽略更改的目录)
  2. ...dir/sibling1(具有自己的 git repo 的兄弟目录 1)
  3. ...dir/sibling2(带有自己的 git repo 的兄弟目录 2)

dir 及以上的每个父目录都没有问题,并且按预期工作。

我的主要问题:考虑到上述结构,我应该担心运行它吗?我还想问一下我是否应该对主仓库中的仓库做些什么(即以某种方式将它们声明为子模块)?

谢谢。

4

2 回答 2

2

好的,我需要运行以下两个命令才能使其正常工作:

git rm --cached path_to_subdir (no trailing slash)

git add path_to_subdir/*

Based on the messaging I was seeing when trying to run the command in my original post (git update-index --really-refresh), there used to be a git repo in the sub-directory that was not removed properly, and was never declared as a sub-module.

于 2012-12-05T05:07:30.717 回答
0

2种可能性:

  • 目录本身被忽略(.gitignore在任何父目录中的文件中)
  • 或者在被忽略的目录中有一个 .git 目录,使其成为嵌套的 git repo(其状态将被父 repo 忽略)。
于 2012-11-28T07:02:45.447 回答