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"
完美解决。