天天看点

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分支冲突管理