1. 问题
原本在新建工程时AS会自动生成.gitignore文件,忽略掉不需要进行track的文件,比如.idea文件夹、build文件夹等,但是我在一开始创建项目的时候没有意识到要忽略文件,把所有文件都track了,此时如果只添加.gitignore就不会生效。
即gitignore只对未track的文件生效,对已经track的文件不生效。对于已经track的文件,直接添加gitignore文件是不够的,还需要额外的操作。
2. 解决方案
按以下步骤解决:
【step1】 在项目的git bash执行以下命令
git rm -r --cache .
清除对所有文件的追踪,最后的点代表操作对象是所有文件。
【step2】在项目根目录下和App目录下添加.gitignore文件:
.gitignore的内容如下,这个文件可以在github上下载,网上随便一搜就能找到了。
#built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
out/
build/
# Local configuration file (sdk path, etc)
local.properties
# Windows thumbnail db
Thumbs.db
# OSX files
.DS_Store
# Eclipse project files
.classpath
.project
# Android Studio
*.iml
.idea/
gradle/
# Local IDEA workspace
# Gradle cache
.gradle
#NDK
obj/
添加之后的文件结构图:
创建项目的时候,可以在File->Settings->IgnoreFiles下面指定要忽略的文件,可以自动生成.gitignore文件,如果直接添加.gitignore文件则不需要这一步。
【step3】在git bash中执行
git add .
此时gitignore会生效,不会把那些需要忽略的文件进行add进来。
【step4】在git bash中执行
git commit -m "add gitignore"
提交修改即可。