Git merge/cherry pick分支的所有提交



场景:

master
|

dev
|

feature1
|
|
|
/
|
/  
tagV1
|

feature2
|
|
/
|
/
tagV2
|

fixForV1
|
|
/
|
/  
tagV1_1

描述:

  1. 创建回购
  2. 创建并签出分支dev
  3. 创建并签出分支功能1。。实现该功能
  4. 签出开发和合并功能1,删除功能1
  5. 签出主合并开发
  6. 创建标签V1(将交付给客户)
  7. Checkout dev
  8. 创建并签出分支功能2。。实现该功能
  9. 签出开发和合并功能2,删除功能2
  10. 签出主合并开发
  11. 创建标签V2(将由相同或不同的客户交付)
  12. Checkout dev
  13. 创建并签出分支fixForV1。。实施修复
  14. Checkout dev and merge fixForV1

15…我们需要合并tagV1和fixForV1上的提交(不包括feature2上的提交)。合并后,我们将创建一个新的标签V1_1并将其交付给客户。

我知道我可以通过在fixForV1上进行第一次提交的散列来实现这一点。。{fixForV1上最后一次提交的哈希}有更好的方法吗?

如果我正确理解您的需求,您也可以这样工作:

  1. git checkout fixForV1
  2. git format-patch tagV2—获取tagV2到fixForV1头部的所有补丁
  3. git checkout -b branchV1 tagV1——基于tagV1创建新分支
  4. git apply *.patch——应用我们在步骤1中生成的修补程序

如果你很幸运,所有补丁都能顺利应用,那么你就完成了。如果运气不好,请逐个应用补丁,然后相应地修复冲突。

相关内容

  • 没有找到相关文章

最新更新