雖然說在本命年的單身汪並非一路順風,但從上海到杭州,跳槽找工做倒仍是特別順暢,一度讓我有種錯覺今年Android行情怎麼這麼好,後來一想,多是我變(bu)強(yao)了(lian)。這不,又來到新公司了,入職第一天,一切準備穩當,向部門的前輩要到了項目的Git地址,打算先熟悉公司代碼。因而我極其熟練的打開Sourcetree,準備clone。結果被前輩狠狠的鄙視了一把:「Android Studio那麼強大,你怎麼還用這種工具!」這是原話,因而當晚我便踏上了在Android Studio使用Git之路。果真很強呀,久久不能平靜,因而邊學邊記錄,在兩週的熟悉以後,決定在此作個總結。git
先說下個人操做環境:macOS、Android Studio是3.1.四、Git版本是2.15.1github
由於是好久之前就安裝過了,因此這裏給個連接:安裝Git,也能夠本身百度,谷歌自行安裝。 安裝成功以後,能夠在命令行裏輸入下面的命令來配置本身的姓名和郵箱:編輯器
git config --global user.name "姓名"
git config --global user.email "郵箱"工具
首先在AS上打開Preferences(command + ,
),接着點擊Version Control --> Git
在Path To Git Executable
上輸入Git的存放位置,以下圖: 測試
Test
按鈕,若是配置成功會出現下面的成功提示:
按照下圖配置你的GitHub帳號,輸入完成以後再點擊Test
按鈕,若是帳號密碼正確的話也會提示成功 命令行
好,既然配置OK了。本地玩一下先,看看怎麼建立本地倉庫、如何提交、怎麼增刪改查本地的分支,怎麼合併本地分支,先從這些基本操做入手。3d
對新建的項目或者寫好的項目,均可以經過以下操做進行。
點擊菜單欄上的VCS
,進行下面的操做: 日誌
git在初始化一個倉庫的時候,都會自動生成一個.gitignore
文件,這個文件就是用來忽略那些不用加到倉庫的文件。咱們這個工程中也生成了兩個.gitignore
文件。通常狀況下,能夠不作修改,若是有需求也能夠修改: code
由於是新項目尚未將文件加入倉庫,因此這些文件名才都是紅色,咱們可使用Android Studio的add方式進行添加,有4種,我們這裏能夠隨便使用一種,好比選中項目的根目錄,右鍵選中Git
,再選擇Add
: cdn
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上建立了一個新的公開庫:
使用Git clone項目到本地是很是簡單的,熟悉項目代碼的第一步,首先得有項目。在剛纔建立好的倉庫中,點擊Clone or download
,再點擊地址旁邊的那個小書頁同樣的圖標複製地址便可:
VCS
-->
Git
-->
Clone
,而後在地址欄把剛纔複製的地址粘貼上去:
通常狀況下,咱們clone下來的倉庫裏都是之前的項目,咱們即可以熟悉代碼,或者正常開發了,若是是新倉庫,咱們即可以在此倉庫下建立Android項目,建立好以後,咱們能夠add
-->Commint
進行提交,再使用快捷鍵command + shift + k
進行Push
操做:
在開發中,同一個項目通常是團隊一塊兒開發的,因此咱們也要養成好的習慣,Commit
以後,在Push
以前咱們要習慣性的Pull
一下代碼:點擊菜單欄的VCS
-->Git
-->Pull
,點擊刷新按鈕以後再選擇所要Pull
的遠程倉庫:
Push
,必定要保證遠程倉庫,拉下來的代碼是能完美運行的。
直接Push,咱們會發現Push帶遠程master上,這裏咱們能夠修改:
這個有兩種方法,能夠在GitHub上進行合併,也能夠在AS上分別Push到不一樣的遠程分支,感受比命令行簡單啊有木有。很明顯的兩條分支融匯一點:
點擊 origin/dev
,直接刪除就行了。
衝突嘛,在所不免的,基本上天天或者按期選一個時間和同事一塊兒進行代碼的合併是最好的啦,能夠必定程度上避免問題出現,這裏演示一下,在AS上咱們怎麼解決衝突,同時修改 REDEME.md
。在Pull
的時候發現衝突:
Merge
:
X
和
>>
符號,點擊
X
表示不須要這一行的修改,點擊
>>
表示接受這一行的修改。咱們也能夠像在編輯器中那樣複製、粘貼、編輯內容,解決以後能夠點擊
Apply
進行保存,若是你不想保存,那就點擊
Abort
終止這次修改。
Commit
-->
Push
完成以前的操做。查看Log也能夠看到每次的合併日誌:
git上的標籤通常用於標記版本,例如,當發佈新版本後,咱們將該版本的代碼打上Tag,方便區分和管理。
打Tag前確定要將代碼提交到遠程倉庫上,正常操做以後,咱們繼續VCS
-->Git
-->Tag
:
Tag Name
表示Tag名稱
Commmit
裏填提交記錄id,這個id能夠在Log中查看:
Validate
能夠查看指定提交記錄的變更。
Message
裏是描述這個Tag信息的。
Create Tag
,便會建立本地Tag,此時並無提交到遠程噢:
Push
,這裏要注意,必定要勾選
Push Tag
,分支選擇
All
或者
Current Branch
都行的,根據需求來。
有意思的來了,若是新開發了一個功能,上線後發現很雞肋,這個功能直接砍掉,咱們該怎麼辦呢,這個時候就須要Git的回退了,AS中也爲咱們提供了兩種回退方式:Git revert
和Git reset
。
咱們能夠打開Log找到那個功能的提交記錄,點擊Revert
咱們能夠打開Log找到那個功能的提交記錄,點擊Rest Current Branch to Here...
Soft
、
Mixed
、
Hard
、
Keep
。
Soft
:文件內容不會變化,以前提交記錄的修改仍是在暫存區,能夠直接再提交一次。Mixed
:文件內容不會變化,以前提交記錄的修改不在暫存區,須要添加到暫存區才能提交。Hard
:文件會回滾到咱們選定的提交記錄的代碼狀態,以前提交記錄的修改和還沒來得及提交的修改都會丟失。Keep
:文件會回滾到咱們選定的提交記錄的代碼狀態,以前提交記錄的修改會丟失,但還沒來得及的提交的修改能夠儲藏(Stash)起來,待重置以後反儲藏(Unstash)恢復。其實不管選擇哪一個,這個提交記錄都將刪除。
由於工做須要,因此也是儘量的熟悉這些基本操做,更多高階的玩法可能還須要之後慢慢挖掘,Android Studio更多的功能也須要慢慢掌握。