由于某种原因,我的.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。
当前回答
我通过以下方式解决了问题:
首先,我是一个windows用户,但我也遇到过类似的问题。所以,我在这里发布我的解决方案。
有一个简单的原因,为什么有时.gitignore不能像预期的那样工作。这是由于EOL转换行为。
这里有一个快速解决方案
编辑>EOL转换>Windows格式>保存
您可以将此归咎于文本编辑器设置。
例如:
由于我是一名windows开发人员,我通常使用Notepad++编辑文本,而不是Vim用户。
因此,当我使用Notepad++打开.gitignore文件时,会出现如下情况:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# See https://help.github.com/ignore-files/ for more about ignoring files.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.dll
*.force
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
如果我使用默认记事本打开同一个文件,这就是我得到的
## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # See https://help.github.com/ignore-files/ for more about ignoring files. # User-specific files *.suo *.user *.userosscache
因此,通过查看输出,您可能已经猜到了。gitignore中的所有内容都变成了一行,因为开头有一个##,所以它就好像所有内容都被注释了一样。
解决此问题的方法很简单:只需使用Notepad++打开.gitignore文件,然后执行以下操作
编辑>EOL转换>Windows格式>保存
下次使用windows默认记事本打开同一文件时,所有内容都应正确格式化。试试看这是否适合你。
其他回答
在cmd窗口中,使用下面的git命令,
git rm—缓存的文件名
解释:
gitrm-从工作树和索引中删除文件
--高速缓存的使用此选项可以取消分级并仅从索引中删除路径。工作树文件,无论是否修改,都将被单独保留。
--来自https://git-scm.com/docs/git-rm
我用一些东西为我生成了common.gitignore,我遇到了这个问题。读了@Ozesh的答案后,我在VS代码中打开了它,因为它在右下角有一个很好的指示器,显示了行尾的类型。这是低频,所以我按照建议转换为CRLF,但没有骰子。
然后我看了看行尾,发现它是用UTF16保存的。所以我使用UTF8编码一个voila重新保存,它起了作用。我认为CRLF并不重要,所以我把它改回LF以确保它仍然有效。
当然,这不是OP的问题,因为他已经提交了文件,所以它们已经被索引了,但我想我会分享一下,以防其他人遇到这个问题。
太长,读不下去了如果你还没有提交文件,并且.gitignore仍然不受尊重,那么检查文件编码,确保其UTF8,如果这不起作用,那么可以尝试使用换行符。
在我的例子中,.gitignore行末尾的空白是原因。因此,请注意.gitignore中的空格!
这3个命令将解决问题,您的.gitignore将工作:
git rm -r --cached .
git add .
git commit -m 'Remove ignored files'
现在检查状态:
git status
我是初学者,昨晚(在Windows上)遇到了同样的问题。我发现你的.gitignore文件不能有.txt扩展名。我是这样解决的。
打开任何目录并转到菜单栏,单击视图,然后选中“文件扩展名”之后,通过删除.txt扩展名来编辑.gitignore文件的名称。因此,您将得到一个文本文件.gitignore,而不包含.txt extsion。