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

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分支

git工具学习笔记:合并分支 merge_第1张图片

合并之前topic分支

git工具学习笔记:合并分支 merge_第2张图片

合并之后master分支

git工具学习笔记:合并分支 merge_第3张图片

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

git工具学习笔记:合并分支 merge_第4张图片

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

git工具学习笔记:合并分支 merge_第5张图片

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

git工具学习笔记:合并分支 merge_第6张图片

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

git工具学习笔记:合并分支 merge_第7张图片

查看A.md文件

git工具学习笔记:合并分支 merge_第8张图片

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

git工具学习笔记:合并分支 merge_第9张图片

你可能感兴趣的:(工具)