git merge的用法

现在我们有一个主分支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下载并合并到本地

 

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值