天天看點

Mac中Git的簡單實用(5) --- Git分支沖突管理

今天我來介紹下Git,Git是一款免費、開源的分布式版本控制系統。
我們在上一個學習了Git添加和合并分支管理。
這一章,我們要學習Git分支沖突管理。
           

Mac中Git的簡單實用(1) — Git基本指令(1)

Mac中Git的簡單實用(2) — Git基本指令(2)

Mac中Git的簡單實用(3) — Github遠端倉庫

Mac中Git的簡單實用(4) — 分支branch管理

我們通過不同的分支進行開發的确能友善我們,但是也會出現沖突的情況。我們繼續從上一次例子繼續。

上一章git.txt内容:
git is ok.
git is nice.
change branch.
//目前分支為master
MBP:git qiuyu$ git branch
* master
           

下面我們建立一個分支并切換到branch1

MBP:git qiuyu$ git checkout -b branch1
切換到一個新分支 'branch1'
MBP:git qiuyu$ git branch
* branch1
master
           

修改git.txt檔案的内容,并進行送出

git is ok.
git is nice.
change branch.
using branch1.

MBP:git qiuyu$ git add git.txt
MBP:git qiuyu$ git commit -m "branch1"
[branch1 b00c593] branch1
           

切換到master分支

MBP:git qiuyu$ git checkout master
切換到分支 'master'
您的分支領先 'origin/master' 共 3 個送出。
  (使用 "git push" 來釋出您的本地送出)
           

Git還會自動提示我們目前master分支比遠端的master分支要超前3個送出。

在master分支上把git.txt檔案的最後一行改為并進行送出:

git is ok.
git is nice.
change branch.
using master.
//進行送出
MBP:git qiuyu$ git add git.txt
MBP:git qiuyu$ git commit -m "master"
[master 89519de] master
 1 file changed, 1 insertion(+)
           

現在,master分支和branch1分支各自都分别有新的送出,我們可以通過一個圖檔來學習下:

Mac中Git的簡單實用(5) --- Git分支沖突管理

目前,兩個分支都指向了目前自己最新的送出,我們現在需要将兩個分支進行合并:

MBP:git qiuyu$ git merge branch1
自動合并 git.txt
沖突(内容):合并沖突于 git.txt
自動合并失敗,修正沖突然後送出修正的結果。
           

但是這種合并是由沖突的,通過git status檢視狀态:

MBP:git qiuyu$ git status
位于分支 master
您的分支領先 'origin/master' 共 4 個送出。
  (使用 "git push" 來釋出您的本地送出)
您有尚未合并的路徑。
  (解決沖突并運作 "git commit")
未合并的路徑:
  (使用 "git add <檔案>..." 标記解決方案)
    雙方修改:   git.txt

檢視git.txt内容:
    git is ok.
    git is nice.
    change branch.
    <<<<<<< HEAD
    using master.
    =======
    using branch1.
    >>>>>>> branch1
           

Git用<<<<<<<,=======,>>>>>>>标記出不同分支的内容

我們再對git.txt進行修改然後進行送出:

git is ok.
git is nice.
change branch.
using master.
using branch1.
the latest. 

MBP:git qiuyu$ git add git.txt
MBP:git qiuyu$ git commit -m "the lateset"
[master 33605db] the lateset
           

則分支的最新情況如圖所示:

Mac中Git的簡單實用(5) --- Git分支沖突管理

現在進行分支合并和删除branch1:

MBP:git qiuyu$ git merge branch1
Already up-to-date.
MBP:git qiuyu$ git branch -d branch1
已删除分支 branch1(曾為 b00c593)。
MBP:git qiuyu$ git branch
* master
           

最後,通過git log –graph可以檢視分支合并圖

Mac中Git的簡單實用(5) --- Git分支沖突管理