.gitignore仍未忽略文件,尽管已将其删除。

3
我知道这个话题已经有很多帖子了。我尝试了所有我能找到的答案,但似乎都没有解决我的问题。 我开始了一个git项目,不幸的是在一开始追踪的时候,__pycache__目录中的.pyc文件也被追踪了。我意识到了这个问题,然后将*.pyc__pycache__加入了.gitignore,但它们仍然被追踪。 然后我:
  • Tried to remove the tracked files:

    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files" 
    
  • Checked my .gitignore. The encoding, according to file -I .gitignore, is .gitignore: text/plain; charset=us-ascii. The .gitignore itself is:

    __pycache__
    *.pyc
    buildSite/.DS_Store
    *.DS_Store
    .idea/
    .idea/workspace.xml
    scratchFiles
    

    There aren't any extra whitespaces or anything.

我仍然看到更改后的.pyc文件:

git status
...
modified:   buildSite/builder/templatetags/__pycache__/class_tag.cpython-36.pyc
非常感谢任何建议!

在运行 git rm -r --cached . 命令之前,你是否提交了你的 .gitignore 文件? - Jonathan Lam
是的 - 这有问题吗? - user3757897
1
“.gitignore”即使没有提交commit,也会起作用——Git是查看文件而不是提交。在执行“git rm”和“git add”后,使用“git status”命令查看状态很有趣。 - phd
1
还要检查简单的 PEBCAK:当您运行 git rm -r --cached . 时,. 是否是正确的目录? - torek
我在 pycache 和 *.pyc 前面有空格,导致它无法忽略 *.pyc 和 pycache 目录。去掉空格后问题得到解决。 - NNN
显示剩余2条评论
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
4

请确保:

  • .gitignore 文件中没有 crlf (回车符和换行符)
  • 要忽略的文件所在的任何父文件夹中都没有嵌套的 git 仓库(.git/ 子文件夹)
  • 当忽略一个文件夹时,请在末尾添加 /: __pycache__/,而不是 __pycache__

就是这样了,谢谢!在玩 .gitignore 时尝试搞明白发生了什么问题,我在运行 git rm -r --cached . 前删除了结尾处的 / - user3757897

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,