试过拉取代码后。用 Android Studio 编译了下。发现产生了几千个冲突。仔细一看,发现是 build 文件夹下的。原来的作者把编译文件都提交上去。其实也是个坏习惯。一个人维护项目。很多时候不会去注意太多。因为没有人和你产生冲突。所以就把代码都提交上去。结果只能在 .gitignore 上加忽略 build 文件下的以及其他不需要上传到远端的文件。但这样 git 的代码库其实已经越来越大了。
下面简单的说 gitignore 作用和 Android Studio 的 ignore 插件以及移除已经被误添加到 git 的指令。
.gitignore 的作用
无疑的。就是忽略这些文件。在 Java 中,我们不希望 .class 文件被提交了。还有在 Android 中,我们不希望编译出来的文件和 apk 之类的文件被提交上去。这时候就需要到在 .gitignore 里面加上代码去忽略这些文件。
下面是我个人 Android 项目下的 .gitignore 文件的代码:
1 | *.iml |
其实在 github 上,已经有很多设置好的 gitignore 无论是 C 还是 Python 上面都有。
其中 Android 的如下:
1 | # Built application files |
#
是注释的意思。可以看到上面的忽略文件。基本上已经揽括了 Android 项目里面应该忽略的文件。
Android studio 的.ignore 插件
这个插件可以很方便的创建一些 ignore 文件
这个插件有以下好处
- 可以创建选定模板。用的就是前面说过的 github 的 ignore 模板。
- 可以在 Android Studio 看到 global 文件和 exclude 文件。
- 可以看的出那些写的 ignore 是没用的。灰色字体和绿色字体区分。
移除命令
当我们不小心把编译的文件提交到 git ,但又不想删除本地的文件,可以通过以下的命令行去移除。
git rm --cached --force classfoo.com.txt
加上 –cached 表示不会在物理上去移除文件。
git rm -r --cached build/
加上 -r 表示删除这个目录下的文件的文件和该子目录的文件。