由于某种原因,我的.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。
当前回答
在cmd窗口中,使用下面的git命令,
git rm—缓存的文件名
解释:
gitrm-从工作树和索引中删除文件
--高速缓存的使用此选项可以取消分级并仅从索引中删除路径。工作树文件,无论是否修改,都将被单独保留。
--来自https://git-scm.com/docs/git-rm
其他回答
在我的例子中,.gitignore行末尾的空白是原因。因此,请注意.gitignore中的空格!
我的问题是,我最初在Mac上创建.gitignore,但现在在Windows机器上工作。在Mac电脑上,文件路径中使用“/”。在Windows上使用“\”。
所以为了让.gitignore文件正常工作,我必须使用一致的符号。在这种情况下,我必须对每个要添加的文件路径使用“/”,即使复制时是这样的:“file\path”。
在这个愚蠢的事情上浪费了好几个小时(这真的让我很烦)。
在经历了一点兔子洞之后,我试图找到这个问题的答案(可能是因为我必须在一个视觉工作室项目中这样做),我发现更容易的方法是
剪切并粘贴我不再想跟踪的文件到临时位置提交这些文件的“删除”提交.gitignore的修改以排除我临时移动的文件将文件移回文件夹。
我发现这是最直接的方法(至少在visual studio中,或者我会假设其他基于IDE的环境,如Android studio),而不会意外地用一个非常普遍的git rm-rf-cached砸自己的脚,之后,我正在处理的visual studio项目没有加载。
这3个命令将解决问题,您的.gitignore将工作:
git rm -r --cached .
git add .
git commit -m 'Remove ignored files'
现在检查状态:
git status
我用一些东西为我生成了common.gitignore,我遇到了这个问题。读了@Ozesh的答案后,我在VS代码中打开了它,因为它在右下角有一个很好的指示器,显示了行尾的类型。这是低频,所以我按照建议转换为CRLF,但没有骰子。
然后我看了看行尾,发现它是用UTF16保存的。所以我使用UTF8编码一个voila重新保存,它起了作用。我认为CRLF并不重要,所以我把它改回LF以确保它仍然有效。
当然,这不是OP的问题,因为他已经提交了文件,所以它们已经被索引了,但我想我会分享一下,以防其他人遇到这个问题。
太长,读不下去了如果你还没有提交文件,并且.gitignore仍然不受尊重,那么检查文件编码,确保其UTF8,如果这不起作用,那么可以尝试使用换行符。