从.gitignore中删除目录,以便git开始跟踪其中的更改

时间:2013-10-18 08:12:19

标签: git gitignore

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

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

我的第二个问题是,在寻找上述问题的答案时,我找到了这个帖子:Ignore files that have already been committed to a Git repository并执行了这些操作:

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

我明白这是错误的举动;以上主题讨论完全相反的情况。 我是不是把事情弄得很糟糕?

这一切都是在一个私人的,半严肃的项目上完成的。

非常感谢!

5 个答案:

答案 0 :(得分:5)

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

gitignore功能是一个功能强大的工具,但却为不知情的人提供陷阱。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

excludesfile = c://www/.gitignore_global

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

我的解决方案

  1. 运行 git status --ignored 将为您提供所有被忽略的文件/路径。

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

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