關於Android Studio使用Git的總結

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

安裝與配置

  先說下個人操做環境:macOS、Android Studio是3.1.四、Git版本是2.15.1github

安裝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的存放位置,以下圖: 測試

  而後點擊旁邊的 Test按鈕,若是配置成功會出現下面的成功提示:

配置GitHub帳號

  按照下圖配置你的GitHub帳號,輸入完成以後再點擊Test按鈕,若是帳號密碼正確的話也會提示成功 命令行

  至此,我們的準備工做就算是完成啦~

本地倉庫相關操做

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

建立本地倉庫

  對新建的項目或者寫好的項目,均可以經過以下操做進行。
  點擊菜單欄上的VCS,進行下面的操做: 日誌

  而後選擇項目的根目錄爲git初始化的目錄:
  這個時候便會發現項目裏的文件名由白色變成棕色,這就表示文件已經被git跟蹤了

忽略文件

  git在初始化一個倉庫的時候,都會自動生成一個.gitignore文件,這個文件就是用來忽略那些不用加到倉庫的文件。咱們這個工程中也生成了兩個.gitignore文件。通常狀況下,能夠不作修改,若是有需求也能夠修改: code

添加文件

  由於是新項目尚未將文件加入倉庫,因此這些文件名才都是紅色,咱們可使用Android Studio的add方式進行添加,有4種,我們這裏能夠隨便使用一種,好比選中項目的根目錄,右鍵選中Git,再選擇Addcdn

  add以後文件名就會變綠了,綠色便表明已經添加進倉庫了。以後你再新建文件,AS會提示,是否將該文件添加進倉庫,選擇 Yes即可以:

提交文件

  這個很簡單,咱們可使用commmand + k,會出現commit的窗口。這時,即可以選擇我們想要提交的文件,填寫提交的信息,在Author那裏能夠填寫提交本次提交的操做者名字,若是不填寫的話,就會默認是以前配置Git的姓名和郵箱。

  點擊 Commit以後,文件名的顏色就會再次變爲白色啦,提交成功以後點擊我們AS屏幕下方 LogCat旁邊的 Version Control工具按鈕,還能夠發現不少便利的操做,像 Local Changes能夠查看有哪些本地文件發生了改變, Log能夠看到這個倉庫的提交信息, Console即是控制檯,很貼心有木有?對於習慣命令行的童鞋能夠直接在這裏用git命令進行操做

查看當前分支

  查看都是最簡單的,在AS上也是如此,在主界面的右下角顯示Git:master就代表當前的分支是master分支,沒有建立新分支的狀況下,默認即是master分支。

建立本地分支

  咱們都知道,master分支是用於產品發佈而且已經封版穩定的,在平時的開發中是不會直接使用master,咱們通常會有一個dev分支進行開發,若是須要加新功能,還會在dev分支中再建立一條擁有該功能的分支,名字能夠隨意。
  在AS中咱們能夠很是方便的管理咱們的分支,依然是在主界面的右下角,點擊當前分支,選中+ New Branch:

  而後輸入 dev,勾選 Checkout branch(默認是勾選狀態)再點擊 OK,這樣就將dev分支建立好了,而且會處於該分支中,若是有新功能也能夠以一樣的步驟建立其餘分支,能夠看到咱們如今有三個分支:master、dev、dev1:

切換本地分支

  選中其餘分支,點擊Checkout即可以完成切換,so easy~

合併本地分支

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

刪除本地分支

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

遠程倉庫相關操做

建立遠程倉庫

  通常咱們在工做中,若是不是新項目的話,項目的Git地址都是有的能夠直接找負責人要,建立遠程倉庫其實也很簡單,不管在GitHub、GitLab或者碼雲上通常都是Create a new repository,都是比較簡單的小白式操做,可是在工做中須要加相關權限,就不細緻講了。以前一直在碼雲上玩,本次決定在GitHub上,直接在GitHub上建立了一個新的公開庫

clone項目

  使用Git clone項目到本地是很是簡單的,熟悉項目代碼的第一步,首先得有項目。在剛纔建立好的倉庫中,點擊Clone or download,再點擊地址旁邊的那個小書頁同樣的圖標複製地址便可:

  而後回到AS,點擊菜單欄的 VCS--> Git--> Clone,而後在地址欄把剛纔複製的地址粘貼上去:
  點擊Test按鈕,測試是否經過,若是成功,即可以clone導入剛剛的項目啦~

將代碼推送到遠程倉庫

  通常狀況下,咱們clone下來的倉庫裏都是之前的項目,咱們即可以熟悉代碼,或者正常開發了,若是是新倉庫,咱們即可以在此倉庫下建立Android項目,建立好以後,咱們能夠add-->Commint進行提交,再使用快捷鍵command + shift + k進行Push操做:

拉取遠程倉庫變更代碼

  在開發中,同一個項目通常是團隊一塊兒開發的,因此咱們也要養成好的習慣,Commit以後,在Push以前咱們要習慣性的Pull一下代碼:點擊菜單欄的VCS-->Git-->Pull,點擊刷新按鈕以後再選擇所要Pull的遠程倉庫:

  若是有衝突,先解決,再運行一遍,確保無誤再 Push,必定要保證遠程倉庫,拉下來的代碼是能完美運行的。

建立遠程分支

  直接Push,咱們會發現Push帶遠程master上,這裏咱們能夠修改:

改爲dev,點擊Enter,而後Push,這樣遠程就有了分支dev。這裏有個小技巧,若是咱們在本地dev分支上進行Push,會自動建立遠程dev分支。咱們在GitHub上也能夠看到新增一條分支dev:
一樣在AS上也能夠直接查看:

合併遠程分支

  這個有兩種方法,能夠在GitHub上進行合併,也能夠在AS上分別Push到不一樣的遠程分支,感受比命令行簡單啊有木有。很明顯的兩條分支融匯一點:

刪除遠程分支

  點擊 origin/dev,直接刪除就行了。

其餘重要操做

解決衝突

  衝突嘛,在所不免的,基本上天天或者按期選一個時間和同事一塊兒進行代碼的合併是最好的啦,能夠必定程度上避免問題出現,這裏演示一下,在AS上咱們怎麼解決衝突,同時修改 REDEME.md 。在Pull的時候發現衝突:

  不要慌,咱們能夠看到是REDEME.md有衝突,右邊三按鈕,從上至下分別表示,jie接受你的修改,接受對方的修改,以及去實際解決,咱們點擊 Merge:
  能夠看到三個文件呈如今屏幕上。中間的文件是最後的結果,左邊是當前分支,是我們的修改,右邊的是拉下來的分支,是對方的,還能夠發如今修改過的每一行中都存在一個 X>>符號,點擊 X表示不須要這一行的修改,點擊 >>表示接受這一行的修改。咱們也能夠像在編輯器中那樣複製、粘貼、編輯內容,解決以後能夠點擊 Apply進行保存,若是你不想保存,那就點擊 Abort終止這次修改。
  這裏我們都要(小孩子才作選擇,我是成年人,我都要,哼),而後再運行項目,看是否有問題,若是確保沒有問題了就能夠再次 Commit--> Push完成以前的操做。查看Log也能夠看到每次的合併日誌:

建立Tag

  git上的標籤通常用於標記版本,例如,當發佈新版本後,咱們將該版本的代碼打上Tag,方便區分和管理。
  打Tag前確定要將代碼提交到遠程倉庫上,正常操做以後,咱們繼續VCS-->Git-->Tag:

  會彈出以下框:
   Tag Name表示Tag名稱
   Commmit裏填提交記錄id,這個id能夠在Log中查看:
  能夠填也能夠不填,若是不填,這個Tag會與最近的提交記錄綁定,填了就會和指定的提交記錄綁定。
  點擊 Validate能夠查看指定提交記錄的變更。
   Message裏是描述這個Tag信息的。
  最後都填好後,點擊 Create Tag,便會建立本地Tag,此時並無提交到遠程噢:

  而後,老規矩, Push,這裏要注意,必定要勾選 Push Tag,分支選擇 All或者 Current Branch都行的,根據需求來。
  如此,咱們遠程便也建立了Tag,能夠再GitHub上進行查看:

代碼回滾

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

Git Revert

咱們能夠打開Log找到那個功能的提交記錄,點擊Revert

  Revert是會增長一次提交記錄,這裏AS的Revert沒有確認,是直接執行,會彈出以下頁面,表示回退的內容和現有內容產生衝突:
  咱們須要解決後再提交。

Git Reset

  咱們能夠打開Log找到那個功能的提交記錄,點擊Rest Current Branch to Here...

  會彈出一個對話框,咱們有四種選擇: SoftMixedHardKeep

  • Soft:文件內容不會變化,以前提交記錄的修改仍是在暫存區,能夠直接再提交一次。
  • Mixed:文件內容不會變化,以前提交記錄的修改不在暫存區,須要添加到暫存區才能提交。
  • Hard:文件會回滾到咱們選定的提交記錄的代碼狀態,以前提交記錄的修改和還沒來得及提交的修改都會丟失。
  • Keep:文件會回滾到咱們選定的提交記錄的代碼狀態,以前提交記錄的修改會丟失,但還沒來得及的提交的修改能夠儲藏(Stash)起來,待重置以後反儲藏(Unstash)恢復。

  其實不管選擇哪一個,這個提交記錄都將刪除。

後記

  由於工做須要,因此也是儘量的熟悉這些基本操做,更多高階的玩法可能還須要之後慢慢挖掘,Android Studio更多的功能也須要慢慢掌握。

參考

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

相關文章
相關標籤/搜索