含非快进合并提交的Git Cherry-pick操作咨询:如何挑选提交1-7?
Git Cherry-Pick 含合并提交场景的操作顺序说明
直接按 1、2、3、4、5、6、7 的顺序操作即可,第二种顺序(1、2、3、4、7、5、6)逻辑不成立,会因依赖缺失导致变更异常或冲突。
具体操作注意事项:
- 先依次执行线性提交的 cherry-pick:
这几个提交为线性依赖关系,按顺序执行无问题。git cherry-pick <commit1-id> git cherry-pick <commit2-id> git cherry-pick <commit3-id> git cherry-pick <commit4-id> - 处理合并提交5时,由于是非快进合并,该提交包含两个父节点,需用
-m参数指定基准父节点:
这里的git cherry-pick -m 1 <commit5-id>-m 1代表以原主线的父节点(即提交3)作为基准。如果已经提前 cherry-pick 了提交4,这个合并提交可能不会产生新代码变更,仅保留合并记录;若不需要保留合并记录,也可直接跳过提交5,执行后续操作。 - 最后处理后续线性提交:
git cherry-pick <commit6-id> git cherry-pick <commit7-id>
补充说明:
提交7是提交6之后的变更,而提交6依赖提交5的最终状态,颠倒顺序会导致7的变更无法基于正确代码基线应用,大概率触发冲突甚至丢失部分变更逻辑,因此绝不能采用第二种顺序。
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

