關於Android Studio使用Git的總結

卡農Canon發表於2018-09-27

  雖說在本命年的單身汪並不是一帆風順,但從上海到杭州,跳槽找工作倒還是特別順暢,一度讓我有種錯覺今年Android行情怎麼這麼好,後來一想,可能是我變(bu)強(yao)了(lian)。這不,又來到新公司了,入職第一天,一切準備妥當,向部門的前輩要到了專案的Git地址,打算先熟悉公司程式碼。於是我極其熟練的開啟Sourcetree,準備clone。結果被前輩狠狠的鄙視了一把:“Android Studio那麼強大,你怎麼還用這種工具!”這是原話,於是當晚我便踏上了在Android Studio使用Git之路。果然很強呀,久久不能平靜,於是邊學邊記錄,在兩週的熟悉之後,決定在此做個總結。

安裝與配置

  先說下我的操作環境:macOS、Android Studio是3.1.4、Git版本是2.15.1

安裝Git

  因為是很久以前就安裝過了,所以這裡給個連結:安裝Git,也可以自己百度,谷歌自行安裝。 安裝成功之後,可以在命令列裡輸入下面的命令來配置自己的姓名和郵箱:

git config --global user.name "姓名"
git config --global user.email "郵箱"

Android Studio上配置Git

  首先在AS上開啟Preferences(command + ,),接著點選Version Control --> GitPath To Git Executable上輸入Git的存放位置,如下圖:

關於Android Studio使用Git的總結
  然後點選旁邊的Test按鈕,如果配置成功會出現下面的成功提示:
關於Android Studio使用Git的總結

配置GitHub賬號

  按照下圖配置你的GitHub賬號,輸入完成之後再點選Test按鈕,如果賬號密碼正確的話也會提示成功

關於Android Studio使用Git的總結
  至此,我們們的準備工作就算是完成啦~

本地倉庫相關操作

  好,既然配置OK了。本地玩一下先,看看怎麼建立本地倉庫、如何提交、怎麼增刪改查本地的分支,怎麼合併本地分支,先從這些基本操作入手。

建立本地倉庫

  對新建的專案或者寫好的專案,都可以通過如下操作進行。
  點選選單欄上的VCS,進行下面的操作:

關於Android Studio使用Git的總結
  然後選擇專案的根目錄為git初始化的目錄:
關於Android Studio使用Git的總結
  這個時候便會發現專案裡的檔名由白色變成棕色,這就表示檔案已經被git跟蹤了
關於Android Studio使用Git的總結

忽略檔案

  git在初始化一個倉庫的時候,都會自動生成一個.gitignore檔案,這個檔案就是用來忽略那些不用加到倉庫的檔案。我們這個工程中也生成了兩個.gitignore檔案。一般情況下,可以不做修改,如果有需求也可以修改:

關於Android Studio使用Git的總結

新增檔案

  因為是新專案還沒有將檔案加入倉庫,所以這些檔名才都是紅色,我們可以使用Android Studio的add方式進行新增,有4種,我們們這裡可以隨便使用一種,比如選中專案的根目錄,右鍵選中Git,再選擇Add

關於Android Studio使用Git的總結
  add之後檔名就會變綠了,綠色便代表已經新增進倉庫了。之後你再新建檔案,AS會提示,是否將該檔案新增進倉庫,選擇Yes便可以:
關於Android Studio使用Git的總結

提交檔案

  這個很簡單,我們可以使用commmand + k,會出現commit的視窗。這時,便可以選擇我們們想要提交的檔案,填寫提交的資訊,在Author那裡可以填寫提交本次提交的操作者名字,如果不填寫的話,就會預設是之前配置Git的姓名和郵箱。

關於Android Studio使用Git的總結
  點選Commit之後,檔名的顏色就會再次變為白色啦,提交成功之後點選我們們AS螢幕下方LogCat旁邊的Version Control工具按鈕,還可以發現很多便利的操作,像Local Changes可以檢視有哪些本地檔案發生了改變,Log可以看到這個倉庫的提交資訊,Console便是控制檯,很貼心有木有?對於習慣命令列的童鞋可以直接在這裡用git命令進行操作
關於Android Studio使用Git的總結

檢視當前分支

  檢視都是最簡單的,在AS上也是如此,在主介面的右下角顯示Git:master就表明當前的分支是master分支,沒有建立新分支的情況下,預設便是master分支。

關於Android Studio使用Git的總結

建立本地分支

  我們都知道,master分支是用於產品釋出並且已經封版穩定的,在平時的開發中是不會直接使用master,我們一般會有一個dev分支進行開發,如果需要加新功能,還會在dev分支中再建立一條擁有該功能的分支,名字可以隨意。
  在AS中我們可以非常方便的管理我們的分支,依然是在主介面的右下角,點選當前分支,選中+ New Branch:

關於Android Studio使用Git的總結
  然後輸入dev,勾選Checkout branch(預設是勾選狀態)再點選OK,這樣就將dev分支建立好了,並且會處於該分支中,如果有新功能也可以以同樣的步驟建立其他分支,可以看到我們現在有三個分支:master、dev、dev1:
關於Android Studio使用Git的總結

切換本地分支

  選中其他分支,點選Checkout便可以完成切換,so easy~

關於Android Studio使用Git的總結

合併本地分支

  當我們在dev分支完成某個功能,或者修復某個Bug,提交後如何合併到master分支呢?這裡做個最簡單的操作,我們在dev分支修改了activity_main的檔案裡的TextView的文案顯示,然後add-->Commit,再切換到master分支,選中dev分支點選Merge,就將本地dev分支合併到本地master分支了:

關於Android Studio使用Git的總結

刪除本地分支

  好,我們新功能完成了,Bug也修復了,這時那個分支便不再需要了。為了便於分支管理,我們可以將該分支刪掉,如下圖,選中dev1分支,點選Delete,拜拜了,您嘞,直接幹掉。

關於Android Studio使用Git的總結

遠端倉庫相關操作

建立遠端倉庫

  一般我們在工作中,如果不是新專案的話,專案的Git地址都是有的可以直接找負責人要,建立遠端倉庫其實也很簡單,無論在GitHub、GitLab或者碼雲上一般都是Create a new repository,都是比較簡單的小白式操作,但是在工作中需要加相關許可權,就不細緻講了。之前一直在碼雲上玩,本次決定在GitHub上,直接在GitHub上建立了一個新的公開庫

關於Android Studio使用Git的總結

clone專案

  使用Git clone專案到本地是非常簡單的,熟悉專案程式碼的第一步,首先得有專案。在剛才建立好的倉庫中,點選Clone or download,再點選地址旁邊的那個小書頁一樣的圖示複製地址即可:

關於Android Studio使用Git的總結
  然後回到AS,點選選單欄的VCS-->Git-->Clone,然後在位址列把剛才複製的地址貼上上去:
關於Android Studio使用Git的總結
  點選Test按鈕,測試是否通過,如果成功,便可以clone匯入剛剛的專案啦~
關於Android Studio使用Git的總結

將程式碼推送到遠端倉庫

  一般情況下,我們clone下來的倉庫裡都是以前的專案,我們便可以熟悉程式碼,或者正常開發了,如果是新倉庫,我們便可以在此倉庫下建立Android專案,建立好之後,我們可以add-->Commint進行提交,再使用快捷鍵command + shift + k進行Push操作:

關於Android Studio使用Git的總結

拉取遠端倉庫變動程式碼

  在開發中,同一個專案一般是團隊一起開發的,所以我們也要養成好的習慣,Commit之後,在Push之前我們要習慣性的Pull一下程式碼:點選選單欄的VCS-->Git-->Pull,點選重新整理按鈕之後再選擇所要Pull的遠端倉庫:

關於Android Studio使用Git的總結
  如果有衝突,先解決,再執行一遍,確保無誤再Push,一定要保證遠端倉庫,拉下來的程式碼是能完美執行的。

建立遠端分支

  直接Push,我們會發現Push帶遠端master上,這裡我們可以修改:

關於Android Studio使用Git的總結
改成dev,點選Enter,然後Push,這樣遠端就有了分支dev。這裡有個小技巧,如果我們在本地dev分支上進行Push,會自動建立遠端dev分支。我們在GitHub上也可以看到新增一條分支dev:
關於Android Studio使用Git的總結
同樣在AS上也可以直接檢視:
關於Android Studio使用Git的總結

合併遠端分支

  這個有兩種方法,可以在GitHub上進行合併,也可以在AS上分別Push到不同的遠端分支,感覺比命令列簡單啊有木有。很明顯的兩條分支融匯一點:

關於Android Studio使用Git的總結

刪除遠端分支

  點選 origin/dev,直接刪除就好了。

關於Android Studio使用Git的總結

其他重要操作

解決衝突

  衝突嘛,在所難免的,基本上每天或者定期選一個時間和同事一起進行程式碼的合併是最好的啦,可以一定程度上避免問題出現,這裡演示一下,在AS上我們怎麼解決衝突,同時修改 REDEME.md 。在Pull的時候發現衝突:

關於Android Studio使用Git的總結
  不要慌,我們可以看到是REDEME.md有衝突,右邊三按鈕,從上至下分別表示,jie接受你的修改,接受對方的修改,以及去實際解決,我們點選Merge:
關於Android Studio使用Git的總結
  可以看到三個檔案呈現在螢幕上。中間的檔案是最後的結果,左邊是當前分支,是我們們的修改,右邊的是拉下來的分支,是對方的,還可以發現在修改過的每一行中都存在一個X>>符號,點選X表示不需要這一行的修改,點選>>表示接受這一行的修改。我們也可以像在編輯器中那樣複製、貼上、編輯內容,解決之後可以點選Apply進行儲存,如果你不想儲存,那就點選Abort終止此次修改。
  這裡我們們都要(小孩子才做選擇,我是成年人,我都要,哼),然後再執行專案,看是否有問題,如果確保沒有問題了就可以再次Commit-->Push完成之前的操作。檢視Log也可以看到每次的合併日誌:
關於Android Studio使用Git的總結

建立Tag

  git上的標籤一般用於標記版本,例如,當釋出新版本後,我們將該版本的程式碼打上Tag,方便區分和管理。
  打Tag前肯定要將程式碼提交到遠端倉庫上,正常操作之後,我們繼續VCS-->Git-->Tag:

關於Android Studio使用Git的總結
  會彈出如下框:
關於Android Studio使用Git的總結
  Tag Name表示Tag名稱
  Commmit裡填提交記錄id,這個id可以在Log中檢視:
關於Android Studio使用Git的總結
  可以填也可以不填,如果不填,這個Tag會與最近的提交記錄繫結,填了就會和指定的提交記錄繫結。
  點選Validate可以檢視指定提交記錄的變動。
  Message裡是描述這個Tag資訊的。
  最後都填好後,點選Create Tag,便會建立本地Tag,此時並沒有提交到遠端噢:

關於Android Studio使用Git的總結
  然後,老規矩,Push,這裡要注意,一定要勾選Push Tag,分支選擇All或者Current Branch都行的,根據需求來。
關於Android Studio使用Git的總結
  如此,我們遠端便也建立了Tag,可以再GitHub上進行檢視:
關於Android Studio使用Git的總結

程式碼回滾

  有意思的來了,如果新開發了一個功能,上線後發現很雞肋,這個功能直接砍掉,我們該怎麼辦呢,這個時候就需要Git的回退了,AS中也為我們提供了兩種回退方式:Git revertGit reset

Git Revert

我們可以開啟Log找到那個功能的提交記錄,點選Revert

關於Android Studio使用Git的總結
  Revert是會增加一次提交記錄,這裡AS的Revert沒有確認,是直接執行,會彈出如下頁面,表示回退的內容和現有內容產生衝突:
關於Android Studio使用Git的總結
  我們需要解決後再提交。

Git Reset

  我們可以開啟Log找到那個功能的提交記錄,點選Rest Current Branch to Here...

關於Android Studio使用Git的總結
  會彈出一個對話方塊,我們有四種選擇:SoftMixedHardKeep

關於Android Studio使用Git的總結

  • Soft:檔案內容不會變化,之前提交記錄的修改還是在暫存區,可以直接再提交一次。
  • Mixed:檔案內容不會變化,之前提交記錄的修改不在暫存區,需要新增到暫存區才能提交。
  • Hard:檔案會回滾到我們選定的提交記錄的程式碼狀態,之前提交記錄的修改和還沒來得及提交的修改都會丟失。
  • Keep:檔案會回滾到我們選定的提交記錄的程式碼狀態,之前提交記錄的修改會丟失,但還沒來得及的提交的修改可以儲藏(Stash)起來,待重置之後反儲藏(Unstash)恢復。

  其實無論選擇哪個,這個提交記錄都將刪除。

後記

  因為工作需要,所以也是儘可能的熟悉這些基本操作,更多高階的玩法可能還需要以後慢慢挖掘,Android Studio更多的功能也需要慢慢掌握。

參考

或許是介紹Android Studio使用Git最詳細的文章
Android應用開發進階

相關文章