.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"

完美解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容