如果2个分支没有分叉,只是一条线上的前后关系,对于落后的分支,可以使用快进合并(fast-forward merge)把领先的分支合并进来。
例如,现在我们有2个分支:master
与dev
,dev
基于master
创建,dev
分支中有新增的提交,master
分支没有新增提交,2个分支没有分叉,这种情况就可以对落后的master
分支,进行快进合并(fast-forward merge),把dev
分支合并进来。
如下面的2个图所示,快进合并(fast-forward merge)就是把master
分支指针简单地快进到dev
分支指针的位置。
第一个图显示了合并之前的状态,master
分支指针仍然处于原来的位置(提交),而在dev
分支上,新增了一个提交,master
分支和dev
分支没有分叉。
第二个图表显示了合并后发生的变化。
当前分支切换到master
,执行git merge dev
,把dev
分支合并到master
:
Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git merge dev
Updating 0d22e8a..de35112
Fast-forward
test1.txt | 1 +
1 file changed, 1 insertion(+)
使用git log
查询提交记录,可以看到commit de35112...
已经合并进去了。
Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git log
commit de35112d50b2f59b640d2b395d1315f0195cf7ec (HEAD -> master, dev)
Author: kevinhwu <kevinhwu@qikegu.com>
Date: Mon Aug 19 20:48:34 2019 +0800
add 'abcde' to test1.txt
commit 0d22e8a603dec5d9c90d142dd301ac08c8df4a10 (origin/master, origin/HEAD)
Author: kevinhwu <kevinhwu@qikegu.com>
Date: Mon Aug 19 18:27:46 2019 +0800
add text to test1.txt
commit 492204d0e04e99d0c02c9f685a0046688d68e012
Author: kevinhwu <kevinhwu@qikegu.com>
Date: Mon Aug 19 18:25:41 2019 +0800
update
commit 9441f90a3c004b759c8257d8cb8fba5f139ae05c
Author: kevinhwu <kevinhwu@qikegu.com>
Date: Mon Aug 19 12:57:09 2019 +0800
add text1.txt
commit e1b9b710a4f4ca900d4fe37b9590f63479fd480d
Author: kevinhwu <kevinhwu@qikegu.com>
Date: Sun Aug 18 11:55:33 2019 +0800
Initial commit