git cherry-pick

问题:
开发的时候是以master作为源分支创建的 branch, 所有的修改都提交到 master了,但是项目在打包的时候是在 develop分支打包,即要以 develop作为源头来建立分支,那么,现在要把所有提交到 master的代码,提交到 develop来打包,怎么办?

git cherry-pick: 作用是 对于多分支的代码库,将代码从一个分支转移到另一个分支?换句话说就是 就是将指定的提交(commit)应用于其他分支。

假设有2个分支:

  1. master a-b-c-d-e 此时master分支有多出的 d, e提交记录
  2. develop a-b-c

现在要将 master 多出的那 d, e提交记录,转移到 develop 分支,以便打包测试,即:

  1. master:a-b-c-d-e
  2. develop: a-b-c-d-e-f

实现:

  1. 先查看你本地分支的提交记录:
    git log // 查看提交的 id
    在这里插入图片描述

  2. 然后从你的本地分支切换到develop

git checkout develop
  1. 同步多条记录到 develop
git cherry-pick did^..eid 

注意:
^表示包含左边的记录 即:[did, eid] 表示连续的多条记录一并同步,
did…eid 表示不包含did这条记录,即(did, eid]

git cherry-pick 9686a0f0aab7602ae206f2ada63f7630d560a119^..6584924fbcb36817e60015ffb13569291175c505

如果要提交多个不连续的,即中间穿插有别人的提交记录:

$ git cherry-pick <hashA> <hashB>
  1. 执行完第三步之后一定要 git push 这样才能提交成功

如果同步错误则可以取消同步:

git cherry-pick --quit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值