雖然使用AndroidStudio(以下簡稱as)開發並使用git管理代碼已經有很長時間,但是第一次提交項目到git依然會很不順利,網上的文章或許因為所使用版本比較老,並不一定完全湊效,因此寫此筆記做下整理。
首先准備工作git客戶端和as客戶端是不可少的工具,本次使用的是as2.2.2和git2.10.2;
下載安裝后在as里面關聯上,點test可以測試一下,彈出版本就說明關聯成功

下面我分享三種常見操作方式,以界面交互為主,git命令為輔。
首先說明一點,github算是git服務器的一種,另外還有很多可能會使用到的git服務器,比如常用的GitLab,或者csdn的代碼托管服務等等,都是大同小異。這里以github為例,但是as里面是可以直接share 到github,其他地方貌似不可以直接share,參見第三種方法;前兩種是都可以通用的。
方法一:先創建項目,后與git連接
1、首先我們創建一個測試項目GitTest,點擊VCS--Enable Version Control Integration,在彈出框右邊選上Git。這個時候會發現項目會發生幾點變化,鼠標右鍵點擊項目出現Git選項;項目文件顏色變為紅色;在as右下角出現Git:master;如下圖:



2、在github上創建遠程代碼倉庫GitTest,注意這里名字可以和項目名字不一樣;登錄github,進到個人主頁,點擊切換到Repositories,然后點new創建。可以寫上描述,選擇公開或私有,也可以選擇為項目添加一個README說明文件,如下圖:


3、切回as,那么在提交項目之前要做一件很重要的事情,就是配置好gitignore文件,我們將項目展開會發現as已經幫我們生成了gitignore文件,在項目根目錄有一個,在app目錄也有一個;那么在app 模塊里面很簡單只有一行/build,這個我們不用管,那么在項目根目錄的gitignore文件里面的內容我們可以看一下

切換到project模式下我們會發現,項目中的文件並不是都變紅了,有的是白色的,那么這些沒有變紅的文件就是被這個gitignore文件忽略掉的,那么我們關心的是哪些文件應該被忽略掉哪些文件不應該忽略?是as能在編譯過程中自動生成的文件都不應該提交上去;也就是說我傳上去的代碼,別人拉取下來通過as編譯能夠正常跑起來,並且這個時候本地不產生可以提交的文件;這些文件主要包括.idea、.gradle、iml文件、以及配置sdk路徑的local.properties等等,as為我們自動生成並不是很全面,這里推薦一個github上列出來的https://github.com/github/gitignore/blob/master/Android.gitignore我們也可以使用這個。這個文件之前是把整個.idea文件夾都忽略的,后來又改成只忽略其中部分文件,不知道為什么,我認為只要是可以自動生成的就可以忽略,即時每個人生成的都一樣。
4、准備好了之后下面開始提交代碼了,在項目根目錄上右鍵Git-->Add將代碼添加到索引庫,然后Git-->Commit Directory提交到本地倉庫;到此為止我們依然沒有和github聯系上;
5、將代碼push到遠程倉庫Git-->Repository-->push到遠程倉庫,在彈出框里面輸入之前創建的git遠程倉庫地址https://github.com/AndSync/GitTest.git,點OK,如果沒登錄會提示登錄,以前登錄過就不提示了,完了之后點push。

這時候在右上角會有一個提示push rejected ,原因是我們本地倉庫的master主線並沒有和遠程倉庫的master主線綁定上,那么首先Git->Repository-->fetch一下,獲取到遠程master分支,這時候發現右下角有變化了,顯示出來了origin/master,

然后我們需要通過命令來完成綁定,在Terminal里面可以輸入命令,這段命令怎么來的,其實如果你不用as可視化工具 而是用命令去 git push 的話是會提示給你的,告訴你應該輸什么命令,git還是很智能的,建議還是多用命令來操作。
git branch --set-upstream-to origin/master
然后我們再去push 這時候可以了,會彈出一個merge提示框,我們點merge又報錯了,哦是不是因為創建項目的時候有一個文件README,那我們pull一下看行不行,發現也報錯,於是我們要祭出另一句git命令來解決這個問題

git pull --allow-unrelated-histories
允許拉取不相關的歷史記錄,把README拉取過來了,當然如果你創建項目的時候沒有創建README可能沒這么麻煩,這時再去push就OK了。整個過程到此結束
方法二:先創建連接,后創建項目
這個怎么玩的呢,簡要說明一下,之前不是有安裝git客戶端,應該在任何地方鼠標右鍵都有一個菜單Git Gui here -->Clone Existing Repository

注意本地路徑文件夾GitTest2事先不要創建

clone完了之后,在這個目錄下會有一個.git文件夾,和readme文件,那么到這一步我們也可以發現這種方式貌似並不適用於新建項目,因為這個文件夾里面有文件as將無法在這個目錄下創建文件,那么這適用於從別的地方考過來一個已有的項目放到這里,之后從as打開項目進行add、commit、push等操作即可。
方法三:直接share到github
很簡單,無需先在github上創建項目,直接share,如果需要修改gitignore文件可以先修改下。
1、VCS-->import into Version Vontrol-->Share Progect on Github

2、登錄帳號

3、填寫信息
