git只合并某个分支上的某个提交

场景描述:

多个分支,一个dev,一个featureA分支,一个featureB分支,featureA分支日常修改,并且涉及到一个特殊目录的修改(目录X),这个修改不需要合并到dev,如果dev要合并featureA,但是不合并目录X下的修改,如何做?

实现方法

条件:目录X下的修改,要和其他修改分开,不能混合在一个commit中。

首先切换到featureA分支
git checkout featureA
git log

找出要合并的commit ID,可能有多个:xxxxxxxxxxxxx

然后切换到Dev分支上

git checkout Dev

git cherry-pick xxxxxxxxxxxxx

然后就将featureA分支的某个commit合并到了dev分支,其他的commit则没有合并上,有个重要的限制每次只能合并一个commit,如果有多个稍麻烦,注意解决冲突。

cherry-pick:参数
–quit 退出当前的chery-pick序列
–continue 继续当前的chery-pick序列
–abort 取消当前的chery-pick序列,恢复当前分支
-n, --no-commit 不自动提交
-e, --edit 编辑提交信息
cherry-pick会自动提交(如果没有冲突),-n可以取消自动提交,之后需要自己add,commit

如果存在冲突,无法提交冲突,需要解决冲突后自己手动commit,或者git cherry-pick --continue
如果存在冲突,git cherry-pick --quit 后dev分支下未冲突的内容将会被修改,冲突内容恢复
如果存在冲突,git cherry-pick --abort 后 合并的内容将取消

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值