Gitignore不工作

我的.gitignore文件由于某种原因无法正常工作,并且没有任何Googlesearchfunction能够修复它。 这是我有什么:

 *.apk *.ap_ *.dex *.class **/bin/ **/gen/ .gradle/ build/ local.properties **/proguard/ *.log 

它在目录master ,这是我的git回购。 我正在运行Git 1.8.4.2,因为我在运行OSX 10.8.6的MacBook上。

版本控制中的文件/文件夹不会仅仅因为您现在将它们添加到.gitignore而删除它们。 他们已经在存储库中。 你必须删除它们。 你可以这样做:

 git rm -rf --cached . git add . 

这将删除存储库中的所有文件并将其添加回来(这次请遵守.gitignore的规则)。

请记住,在做这件事之前,先做一切你已经改变的事。

要查找已经添加/初始化到您的存储库的单个文件,即停止跟踪文件,但不能将其从系统中删除,请使用: git rm --cached filename

要解开现在在.gitignore每个文件:

首先提交任何未完成的代码更改,然后运行以下命令:

 git rm -r --cached . 

这将从索引(暂存区域)中删除所有已更改的文件,然后运行:

 git add . 

承诺:

 git commit -m ".gitignore is now working" 

在尝试跟踪这个问题的答案(也许是因为我必须在Visual studio项目中这样做)之后,find了一点兔子洞,我发现更简单的方法是

  1. 剪切并粘贴不再想要追踪到临时位置的文件

  2. 提交这些文件的“删除”

  3. 提交.gitignore的修改以排除我暂时移动的文件

  4. 将文件移回文件夹。

我发现这是最直接的方式(至less在一个视觉工作室,或者我会假设像Android Studio这样的基于IDE的其他基于环境的环境),而不会意外地用一个相当普遍的git rm -rf --cached .拍摄自己git rm -rf --cached . 之后,我正在处理的视觉工作室项目没有加载。

在我的情况下,gitignore行尾的空格是原因。 所以请注意.gitignore中的空格!

git reset --hard为任何人工作? 我不是说这是一个很好的解决scheme,它似乎只是第一次尝试。

在我的情况下,这是一个空格在文件的开头,清楚地显示当我在记事本中打开文件,在Visual Studio代码中不明显。