由于某种原因,我的.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。
当前回答
要取消跟踪已添加/初始化到存储库的单个文件,即停止跟踪该文件,但不从系统中删除它,请使用:git rm--缓存文件名
要取消跟踪.gitignore中的每个文件,请执行以下操作:
首先提交所有未完成的代码更改,然后运行以下命令:
git rm -r --cached .
这将从索引(临时区域)中删除所有更改的文件,然后只需运行:
git add .
提交:
git commit -m ".gitignore is now working"
其他回答
这3个命令将解决问题,您的.gitignore将工作:
git rm -r --cached .
git add .
git commit -m 'Remove ignored files'
现在检查状态:
git status
在我的例子中,.gitignore行末尾的空白是原因。因此,请注意.gitignore中的空格!
此外,评论必须在自己的行上。它们不能放在入口之后。所以这行不通:
/node_modules # DON'T COMMENT HERE (since nullifies entire line)
但这将奏效:
# fine to comment here
/node_modules
stackoverflow上有很多答案,但对我有用的并不是任何一个特定的答案,我在这里以简单的方式逐一记下所有需要完成的步骤:
预---备份回购以备不时之需。(我没有,但可能会让你觉得更安全)
确保这是您的第一次提交还是更早提交这些文件已添加,因此已被缓存。如果是,则git rm-r--缓存。和gitadd。(不要错过点)如果仍然无法工作,请在记事本中打开文件
转到文件->另存为将编码更改为ANSI。(有些答案错误地说UTF-8,但它不起作用,不必要地浪费时间)
Again git rm -r --cached .
and git add . (do not miss the dot)
Now do Git status and verify
what we wanted has happened
在经历了一点兔子洞之后,我试图找到这个问题的答案(可能是因为我必须在一个视觉工作室项目中这样做),我发现更容易的方法是
剪切并粘贴我不再想跟踪的文件到临时位置提交这些文件的“删除”提交.gitignore的修改以排除我临时移动的文件将文件移回文件夹。
我发现这是最直接的方法(至少在visual studio中,或者我会假设其他基于IDE的环境,如Android studio),而不会意外地用一个非常普遍的git rm-rf-cached砸自己的脚,之后,我正在处理的visual studio项目没有加载。