由于某种原因,我的.gitignore文件无法正常工作,而且没有多少谷歌搜索能够修复它
*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log
它在主目录中,这是我的git repo。我运行Git 1.8.4.2,因为我使用的是运行OSX 10.8.6的MacBook。
由于某种原因,我的.gitignore文件无法正常工作,而且没有多少谷歌搜索能够修复它
*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log
它在主目录中,这是我的git repo。我运行Git 1.8.4.2,因为我使用的是运行OSX 10.8.6的MacBook。
当前回答
您的版本控制中的文件/文件夹不会因为您将它们添加到.gitignore中而自行删除。它们已经在存储库中,您必须删除它们。你可以这样做:
记住,在你做这件事之前,要把你改变的一切都提交给别人!
git rm -rf --cached .
git add .
这将从存储库中删除所有文件并将其添加回(这一次遵循.gitignore中的规则)。
其他回答
在经历了一点兔子洞之后,我试图找到这个问题的答案(可能是因为我必须在一个视觉工作室项目中这样做),我发现更容易的方法是
剪切并粘贴我不再想跟踪的文件到临时位置提交这些文件的“删除”提交.gitignore的修改以排除我临时移动的文件将文件移回文件夹。
我发现这是最直接的方法(至少在visual studio中,或者我会假设其他基于IDE的环境,如Android studio),而不会意外地用一个非常普遍的git rm-rf-cached砸自己的脚,之后,我正在处理的visual studio项目没有加载。
我用一些东西为我生成了common.gitignore,我遇到了这个问题。读了@Ozesh的答案后,我在VS代码中打开了它,因为它在右下角有一个很好的指示器,显示了行尾的类型。这是低频,所以我按照建议转换为CRLF,但没有骰子。
然后我看了看行尾,发现它是用UTF16保存的。所以我使用UTF8编码一个voila重新保存,它起了作用。我认为CRLF并不重要,所以我把它改回LF以确保它仍然有效。
当然,这不是OP的问题,因为他已经提交了文件,所以它们已经被索引了,但我想我会分享一下,以防其他人遇到这个问题。
太长,读不下去了如果你还没有提交文件,并且.gitignore仍然不受尊重,那么检查文件编码,确保其UTF8,如果这不起作用,那么可以尝试使用换行符。
此外,评论必须在自己的行上。它们不能放在入口之后。所以这行不通:
/node_modules # DON'T COMMENT HERE (since nullifies entire line)
但这将奏效:
# fine to comment here
/node_modules
在我的例子中,文件开头有一个空白,当我在记事本中打开文件时,它清晰地显示出来,在Visual Studio代码中不明显。
这3个命令将解决问题,您的.gitignore将工作:
git rm -r --cached .
git add .
git commit -m 'Remove ignored files'
现在检查状态:
git status