Android Studio項目應該提交哪些文件到GitHub上
在知乎上看到的提問,原問題鏈接: http://www.zhihu.com/question/37910193
當我們上傳用AS寫的Android代碼時,上傳沒必要的代碼不僅浪費空間,有時還會引起項目共同合作人員在提交代碼時的沖突,那么究竟什么代碼該上傳,什么代碼不該上傳呢?
查閱相關資料:
- http://www.jetbrains.com/idea/help/project.html
- http://qiita.com/amanoiverse/items/71b7dccf992b33930c35
- http://stackoverflow.com/questions/16736856/what-should-be-in-my-gitignore-for-an-android-studio-project
- https://gist.github.com/iainconnor/8605514
- https://github.com/drakeet/Meizhi/blob/master/.gitignore
- https://github.com/JakeWharton/butterknife/blob/master/.gitignore
- https://github.com/bboyfeiyu/Colorful/blob/master/.gitignore
找了一些資料后,每個給出的答案都不一樣,我把上面的答案總結后融合了一下添加到平常在在本地練習的 .gitignore 文件中,并上傳到Github上然后down下來重新導入,發現導入沒有任何異常,運行順利.
融合后的 .gitignore :
# IntelliJ IDEA .idea *.iml *.ipr *.iws # Gradle .gradle gradlew.bat build # Local configuration file (sdk path, etc) local.properties reports /captures jacoco.exec # Mac system files .DS_Store # Built application files *.apk *.ap_ # Android Studio captures folder /captures # Log Files *.log # Android Studio Navigation editor temp files .navigation/ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ out lib # Eclipse project files .classpath .project .settings/ eclipsebin .metadata/ # Proguard folder generated by Eclipse proguard/ #NDK obj/ jniLibs
上傳到GitHub后的項目預覽:

不需要額外的配置即可導入運行,那么這個融合的了 .gitignore 就是可行的.
回過頭再來看Android Studio中的 .gitignore,發現有綠色的代碼,也有灰色的代碼,當把鼠標移過去也會有不一樣的提示.

有這種提示的就是文件已經包含在其他的文件夾中,可以刪除這些文件.

有這種提示的就是工程中不包含這種文件,沒必要申明在 *.gitignore*文件中,也可刪除.
那么我們刪除了上述這種文件后, *.gitignore*馬上就變得清爽起來.
# IntelliJ IDEA .idea *.iml # Gradle .gradle build # Local configuration file (sdk path, etc) local.properties # Mac system files .DS_Store
為了科學嚴謹性,再次上傳包含這份 .gitignore 的代碼到GitHub中,結構跟上面的圖顯示是一樣的.
再次down下來導入AS,運行依舊順利.
總結:
-
我們當然可以把融合后比較多的代碼模板復制到自己的 *.gitignore*文件中,這樣會容錯率高,有助于防止多傳一些沒必要的東西.
-
也可以根據自己代碼的實際情況根據提示,決定究竟該上傳些什么代碼,但應該大于等于上面最后這段代碼.(如項目中用到了NDK,就可以加上/obj)
-
總之就是提供給大家一種思路,才疏學淺,還請大家多多提意見給我.
-
最后,祝好:)