.gitignore 规则失效解决办法

Android Studio在编译过程中会产生很多文件,这些文件是自动生成的,不必通过git进行版本控制。这时可以通过.gitignore文件来向git说明哪些文件是应该忽略的。
当某个时候,你往之前的.gitignore文件中增加一个规则,比如:

/.idea/workspace.xml

你以为git会忽略掉这个文件的修改,但事实上当你修改了/.idea/workspace.xml这个文件后,依然会发现git提示你这个文件被修改了。What the hell?

原因很简单,在你向.gitignore文件中添加这一规则前,git已经对/.idea/workspace.xml这个文件做了跟踪了。虽然你现在告诉git忽略这个文件,但之前的跟踪是还在的。
那么如何解决这个问题呢?很简单,运行如下命令:

git rm -r --cached .

rm表示删除。
-r表示递归删除

--cached表示删除暂存区和仓库里的文件,保留工作区。如果不加这个参数,被git跟踪的所有文件都将被删除。

运行完这条命令后,所有文件都处于未暂存的状态,这时:

git add .
git commit -m "update .gitignore"

完美解决。

你可能感兴趣的:(.gitignore 规则失效解决办法)