Android Studio項目應該提交哪些文件到GitHub上?
Google過,沒有找到滿意的答案,想問問各位大神們在把Android Studio的項目提交到GitHub的時候一般忽略哪些文件,提交哪些文件,以及原因是什麼?謝謝!
https://github.com/github/gitignore/blob/master/Android.gitignore.
弄清楚你把代碼上傳到github的目的是什麼,自然而然就知道上傳些什麼了,可以把開源項目想像成一款產品,如果你是用戶,你需要什麼。
上傳到github肯定是想開源你的代碼,首先別人clone你的代碼導入到IDE能夠立馬使用,不用任何額外的配置那是最好不過的事情;其次別人查閱你的代碼時,能夠很容易地讀懂。
所以:- 如果你的項目有設計文檔、類圖、單元測試、說明文檔什麼的,應該放進去;如果你為項目寫了更新日誌,有每次更新的記錄,也應該放進去;文檔類的東西可以在項目中建立一個doc文件夾,專門放這些;
- 如果你依賴了第三方庫,建議也放進去,這會給使用這個項目的人帶來極大地方便;
- 如果你的項目可以導成jar包獨立使用,建議放一份獨立的jar包;
- 其它就是基本的一些東西:項目源碼
其實你可以看一下github上流行的開源項目,他們是怎麼做的;或者看一下用AS創建項目時,默認的.gitignore中過濾掉了哪些文件;起碼編譯生成的文件是不會上傳的,因為用戶拿到你的代碼,在運行之前肯定會先編譯,上傳編譯生成文件白白佔用了github的存儲空間。
補一刀,可以看下StackOverflow上的這個回答:http://stackoverflow.com/questions/16736856/what-should-be-in-my-gitignore-for-an-android-studio-project我們團隊用的:
.gradle
/local.properties
.DS_Store # only needed under mac os
/build
/captures
*.iml
.idea
*.apk #optional
下面詳細說:
其中
.idea #ide 相關
*.apk #optional
是在系統默認的.gitignore文件基礎上額外添加的,如果不加 .idea的話會存在不同開發人員開發機上.idea/下文件不同,導致需要提交的問題。而且經過我和團隊小夥伴之間的實踐.idea目錄下的東西AS都會自動生成,並不需要提交到倉庫中。
#針對樓上抖的機靈github也是提供「私有項目」託管的 ,所以公司的項目放到github上也不是不可以
現在的AS已經很智能了,用AS新建的項目會自動在目錄下新建.gitignore,默認已經忽略了下面五個
/build
/.idea/.gradle*.imllocal.properties如果是OSX,還會自動忽略.DS_Store。另外還有一些可以加入的遇到了再加就行,比如
*.log*.keystore# Built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
out
lib
# Gradle files
build/
.gradle
gradlew.bat
build
gradle.properties
gradle
gradlew
# Proguard folder generated by Eclipse
proguard/
# Log Files
*.log
##Android Studio Ignore files
/.idea/workspace.xml
/.idea/libraries
/captures
.navigation/
# IntelliJ IDEA
.idea
*.iml
*.ipr
*.iws
# Local configuration file (sdk path, etc)
local.properties
reports
jacoco.exec
# Mac system files
.DS_Store
# Eclipse project files
.classpath
.project
.settings/
eclipsebin
.metadata/
#NDK
obj/
jniLibs
具體可以查看Github https://github.com/androidyue/AndroidGitIgnore/blob/master/gitignore
貼一下我自己常用的.gitignore JsBridge/.gitignore at master · lzyzsd/JsBridge · GitHub文件,對gitignore/Android.gitignore at master · github/gitignore · GitHub 進行了一些補充。
#built application files
*.apk*.ap_# files for the dex VM
*.dex# Java class files
*.class
# generated files
bin/gen/# Local configuration file (sdk path, etc)
local.properties# Windows thumbnail db
Thumbs.db
# OSX files
.DS_Store# Eclipse project files
.classpath.project# Android Studio
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs..gradlebuild/# Signing files
.signing/# User-specific configurations.idea/libraries/.idea/workspace.xml
.idea/tasks.xml.idea/.name.idea/compiler.xml.idea/copyright/profiles_settings.xml.idea/encodings.xml.idea/misc.xml.idea/modules.xml.idea/scopes/scope_settings.xml.idea/vcs.xml*.iml
GitHub新建倉庫的時候不是可以選擇gitignore文件么?選Android就行了
Android Studio 是基於 JetBrains 的 IntelliJ,所以復用 GitHub 維護的 gitignore 倉庫里的對應文件 JetBrains.gitignore 就已經足夠好。
https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore
其它類型的項目的 gitignore 也可以從這個倉庫里找。謝邀,但是我除了不想讓別人看到的東西不提交上去之外,其他的基本都提交上去了。至於build目錄下的文件是默認已經ingored的了。
去github上看看star數量過1000的項目的gitignore文件就好了,一般來說,build生成的文件和ide相關的文件都不需要提交,別人只要能從你提交的代碼中完成編譯就可以了
訪問 gitignore.io,輸入操作系統、IDE、編程語言等,點擊 Generate 即可生成 .gitignore 文件。
我一直在用這個網站,剛剛順手比較了一下,這個網站生成的 Android .gitignore 和 @祈雨藍 提到的 gitignore/Android.gitignore at master · github/gitignore · GitHub 幾乎相同,只多兩行:
### Android Patch ###
gen-external-apklibs
請看我寫的這篇文章http://www.jianshu.com/p/caeacecb50cc
沒準你應該知道一下.有一個插件叫
.gitignore
安裝試試吧.自動生成/追加到原有文件.
除了默認的 gitignore 之外,有時候自己會添加一些配置文件,這些一定要記得考慮一下是否需要放到 ignore 裡面。
典型的比如簽名證書的密碼配置文件。為了避免每次編譯都重新輸入證書密碼,我們會在 build.gradle 中配置證書密碼,如果這麼做,那麼將存儲證書密碼的文件添加到 gitignore 中比較好。*.iml文件添加到.gitignore後,新檢出項目沒有.iml文件不就無法構建了嗎??
所有可以使程序可以正常運行的最小集合。
No more and no less.我平時都是這樣簡單粗暴!
推薦閱讀:
※Android Studio有哪些非常好用的插件?
※有什麼好用的Android Studio的插件值得推薦?
※如何做好安卓應用的界面設計?
※Android 手機自動化測試工具有哪幾種?
※Android 開發有哪些新技術出現?
TAG:版本控制系統 | Android開發 | 開源項目 | GitHub | AndroidStudio |