Sourcetree的分支創建與合併

轉載自:https://blog.csdn.net/qq_34975710/article/details/74469068

一、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添加的代碼。 
這裏寫圖片描述
彈出對話框點擊確定。

解決前: 
這裏寫圖片描述

解決後: 
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章