今天我来介绍下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可以查看分支合并图