git merge的用法
现在我们有一个主分支dev,现在有一些feature分支,需要偶尔将dev分支的稳定代码合入feature分支,所以用到git merge现在整理下git merge的几个概念和用法Fastforwardhttps://blog.csdn.net/qq_25800311/article/details/81986263当前分支合并到另一分支时,如果没有分歧解决,就会直接移动文件指针。这个过程叫做f
现在我们有一个主分支dev,现在有一些feature分支,需要偶尔将dev分支的稳定代码合入feature分支,所以用到git merge
现在整理下git merge的几个概念和用法
Fast forward
https://blog.csdn.net/qq_25800311/article/details/81986263
当前分支合并到另一分支时,如果没有分歧解决,就会直接移动文件指针。这个过程叫做fastforward
举例来说,开发一直在master分支进行,但忽然有一个新的想法,于是新建了一个develop的分支,并在其上进行一系列提交,完成时,回到 master分支,此时,master分支在创建develop分支之后并未产生任何新的commit。此时的合并就叫fast forward。
1、git merge dev
是将dev的分支合并到当前分支,应该默认是fast forward模式
2、git merge dev --no-ff
https://blog.csdn.net/qq_39416311/article/details/81264792
--no-ff
指的是强行关闭fast-forward方式。
ast-forward方式就是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit
3、git merge dev --squash
是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用--squash
进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并
Gerrit
1、--no-ff 合并后生成的一个commit如果push到gerrit不是一个单独的change,无法通过cherry-pick下载合并
在gerrit的change格式是:http://git.****.com/#/c/767312/-1..6
2、--squash 是生成一个单独的commit,一个单独的change,可以通过cherry-pick下载并合并到本地
更多推荐
所有评论(0)