git-merge - Join two or more development histories together
git merge执行了两个操作:
第一个是merge,将两个分支的代码合并,是对commit
和commit
的操作,既把目标的commit
合并到当前的commit
第二个是commit,将合并之后的代码提交
如果merge步骤有冲突,则不会执行commit,需要手动将冲突解决,然后再手动提交.
1.冲突解决
1)merge
合并之后,中会提示有冲突的文件(既同一文件,同一行做了不同的修改),
<<<<< HEAD
1
======
2
>>>>>> branch
HEAD
下到======
是当前的分支,该文件的内容,branch
上到=====
是合并目标分支的内容,merge
不知道用哪个,所以需要我们自己决定。加入我们想要branch中的内容,则只需要将<<<<< HEAD
1
=====
和>>>> branch
删除即可。
2)解决完冲突后,需要重新add
和commit
3).取消merge
如果发现冲突不想解决,则可以使用下面的命令取消。
git merge --abort
git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
[--[no-]allow-unrelated-histories]
[--[no-]rerere-autoupdate] [-m <msg>] [<commit>…]
git merge --abort
git merge --continue
git merge branchname # 合并分支
参考文献:
https://git-scm.com/docs/git-merge
https://www.jianshu.com/p/1a7e38cdbf76