我有一个位于.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"
我明白这是错误的举动;以上主题讨论完全相反的情况。 我是不是把事情弄得很糟糕?
这一切都是在一个私人的,半严肃的项目上完成的。
非常感谢!
答案 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
条目。删除该条目根本没有帮助。
我的解决方案
运行 git status --ignored
将为您提供所有被忽略的文件/路径。
run git add -f <file>
其中 <file>
可以是文件名或您要追溯的路径。所以我不得不运行 git add -f projects/
和
立即 projects
文件夹下的所有内容都显示为已更改的文件。