3

我有一个doc位于 .gitignore 中的目录。我决定 git 应该跟踪它的变化。但是doc从 .gitignore 中删除条目后,git 并没有自动开始跟踪目录。

如何强制 git 监视该目录中的更改?

我的第二个问题是,在寻找上述问题的答案时,我发现了这个线程:忽略已经提交到 Git 存储库并执行这些操作的文件:

git rm -r --cached .
git add .
git commit -m ".gitignore is now working"

我知道这是错误的举动;上述线程讨论了完全相反的情况。我是不是把某些东西毁得相当糟糕?

所有这些都是在一个私人的、半严肃的项目上完成的。

非常感谢你!

4

5 回答 5

5

Git 根本不跟踪目录,而是跟踪(文件)内容。可能是您在 .gitignore 中有其他条件,特别是 a!dir作为最近版本的优化,不再读取任何较低目录中的进一步 gitignore 文件。

gitignore 功能是一个强大的工具,但是对于粗心的人来说有陷阱。

于 2013-10-18T13:20:40.100 回答
1

我从 project_name/.gitignore 文件中删除了 doc/ 文件夹。但是在用户主目录 ~/.gitignore 中有全局配置文件。

而且我忘记了我也在那个文件中输入了 doc/ 。因此,从主目录中的 .gitignore 中删除 doc/ 后,一切顺利。

于 2013-10-19T17:09:45.433 回答
0

类似的问题,从项目 .gitignore 文件中删除了一个文件夹,git 仍然忽略它。全局文件也不包含该文件夹,但是当我查看 .gitconfig 时,我看到了这一行:

excludesfile = c://www/.gitignore_global

这是仍然列出我的文件夹的文件,删除文件解决了问题。

于 2017-01-02T06:16:54.773 回答
0

如果您在任何子目录中有另一个 .gitignore 文件,Git 也会考虑它。

于 2020-03-24T10:54:42.797 回答
0

我有类似的问题。在我的情况下,我projects最初忽略了文件夹。我删除projects/了文件中的条目.gitignore。删除该条目根本没有帮助。

我的解决方案

  1. rungit status --ignored会给你所有被忽略的文件/路径。

  2. 运行git add -f <file>where<file>可以是文件名或您要追溯的路径。所以我不得不git add -f projects/

文件夹下的所有内容立即projects显示为已更改的文件。

于 2021-04-15T13:00:06.387 回答