一、Sourcetree簡單介紹
通過Git可以進行對項目的版本管理,但是如果直接使用Git的軟件會比較麻煩,因為是通過一條一條命令進行操作的。
Sourcetree則可以與Git結合,提供圖形界面,使用會方便很多。Git和Sourcetree的安裝這里就不多說,網上大把的教程。
二、分支的創建與合並
1、創建一個遠程倉庫
在GitHub官網上創建一個新的遠程倉庫:
2、用Sourcetree將這個遠程倉庫clone到本地
復制遠成倉庫的地址,然后利用改地址將遠程倉庫clone下來:
這樣,在本地就創建好了一個本地倉庫MainProject,可以到目標地址去查看一下。
3、准備測試用工程
這里創建一個android工程,不需要寫什么代碼。將創建好的整個android工程放到本地倉庫的文件夾中,然后推送到遠程倉庫,這樣測試用的工程基本准備好了:
4、創建分支
此時遠程倉庫中已經有一個項目了,下面模擬一個場景:假設有兩個程序猿Allen、Bill同時在開發這個項目,項目經理要求Allen增加一個聽歌的功能,要求Bill增加一個游戲的功能,那此時這兩人就必須將遠程倉庫中的項目clone到他兩各自的本地(這里就用一台電腦模擬,clone兩次創建兩個本地倉庫):
clone下來后會有一個默認的分支master,可以理解成主分支,那去進行項目開的話不會直接使用master,會去創建一個新分支進行開發,避免直接使用master改來改去最后一團糟那就該崩潰了。每個人在各自的新分支中開發完成后將新分支合並到主分支中就可以了。
接下來Allen和Bill各自創建一個新分支:Allen_dev和Bill_dev
那如果Allen和Bill在開發過程中想看看對方的代碼,那就必須將各自創建的新分支推送到遠程倉庫,然后將對方的分支拉取下來,每次想看的話先獲取,然后再拉取最新的代碼到本地倉庫即可。
首次拉取別人的分支,在上面的獲取之后,按如下操作,這里是Allen獲取Bill的分支Bill_dev,Bill獲取Allen的步驟一樣:
注意:黑色加粗表示當前所處的分支,可以任意雙擊切換!
到此,各自的分支已經創建好了,下面Allen和Bill就可以在各自的新分支上進行項目經理安排的任務。
3、分支合並
Allen和Bill打開各自本地倉庫中的項目代碼進行開發,順利完成項目經理交代的任務,然后各自的分支推送到遠程倉庫:
此時雙方可以獲取最新代碼,拉取最新分支代碼,拉取完成后就可以看到對方所增加的內容:
此時,各自都想將對方的代碼整合到自己的項目中,這是就需要分支的合並。例如Allen合並Bill的分支:
合並完成后,可以看到之前打開的Allen的Android工程,會發現Bill添加的功能已經在Allen的項目中顯示出來了。
最后不要忘了將各自合並后的分支推送。
現在Allen和Bill的工作已經完成了,各自的分支也推送到了遠程倉庫,此時項目經理就可以clone遠程倉庫的項目到本地,拉取Allen和Bill的提交的最新分支,將它們合並到主分支master中。這里就拿最開始創建的MianProject看作是項目經理,合並完成並推送。
3、解決沖突
到目前為止Allen和Bill各自進展順利,但是假若兩人同時在同一個文件進行了操作,那最后合並時就會出現沖突。比如在MainActivity:
此時當Allen和Bill推送自己的分支到遠程倉庫后,項目經理MainProject拉取代碼進行合並:
假設首先合並Allen_dev到master沒有問題,但是當合並Bill_dev到master時就會提示合並出現了沖突,需要解決。
點擊關閉,然后切換到文件狀態,找到出現沖突的文件,會有相應的沖突信息:
有沖突就要解決,右鍵單擊沖突文件,選擇解決沖突,這里有兩個選項:
1、使用 我的版本 解決沖突
2、使用 他人版本 解決沖突
這里項目經理MainProject首先是將Allen的分支合並到主分支master,那么“我的版本”就是對應的Allen的,“他人版本”對應的就是Bill的。如果首先合並Bill的分支,那么對應關系就要對調一下。總的來說,“我的版本”對應的是首先合並到主分支master的。
采用一個人的版本,那么在沖突文件中就只會保留該人修改的代碼,例如我這里就選擇”使用 我的版本 解決沖突“,那么在MainActivity中就只會保留Allen添加的代碼。
彈出對話框點擊確定。
解決前:
解決后:
到這為止基本的分支創建與合並的簡單應用,還有合並沖突解決就介紹完了。
原文地址:http://blog.csdn.net/qq_34975710/article/details/74469068