今天我來介紹下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分支各自都分别有新的送出,我們可以通過一個圖檔來學習下:
目前,兩個分支都指向了目前自己最新的送出,我們現在需要将兩個分支進行合并:
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
則分支的最新情況如圖所示:
現在進行分支合并和删除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可以檢視分支合并圖