git工具学习笔记:合并分支 merge

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuanjw2014/article/details/82751065

merge

命令选项

1.分支合并

如下:两条从公共节点分叉的分支,分别有了新的提交,当使用git merge合并分支时,会在当前master分支commit基础上应用topic在公共节点以后的提交,并生成一条新的提交记录合并信息。

  A---B---C topic
 /
D---E---F---G master

=====>

  A---B---C topic
 /         \
D---E---F---G---H master

合并之前master分支

在这里插入图片描述

合并之前topic分支

在这里插入图片描述

合并之后master分支

在这里插入图片描述

合并之后topic分支 git merge topic 对topic分支没有影响

在这里插入图片描述

合并分支之后,查看master分支提交,最近提交只是记录了合并信息,没有记录对文件目录的修改

在这里插入图片描述

使用git cat-file 命令查看可以发现master和topic分支下的A,B,C提交的commit对象是一致,没有变化的,但是master分支的最近提交包含有两个parent;可见merge的行为实际上是把topic上的提交应用到master上,使用一条新的提交记录,记录merge后的文件目录状态,并把这条提交的parent指向两条分支合并前的head

在这里插入图片描述

2.fast-forward

如下:当在公共节点拉新分支后,master分支没有新的提交,使用git merge命令后,master分支上应用提交A,B,C的话,结果与topic分支是一致的,这种情况,master分支会直接把head指向C提交。

 A---B---C topic
 /
D  master

2.冲突 conflict

当两条分支对同一部分文件进行了不同的修改,git是不能区分应该选取哪份提交,这时就产生了合并冲突,git用<<<<< part1 ======= part2 >>>>>标记冲突部分
part2是被合并分支topic修改部分,part1是master修改部分
在两个分支上分别修改A.md文件,后执行merge

在这里插入图片描述

查看A.md文件

在这里插入图片描述

修改冲突文件后,执行git add . ;git commit命令完成合并

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yuanjw2014/article/details/82751065