场景:
master
|
dev
|
feature1
|
|
|
/
|
/
tagV1
|
feature2
|
|
/
|
/
tagV2
|
fixForV1
|
|
/
|
/
tagV1_1
描述:
- 创建回购
- 创建并签出分支dev
- 创建并签出分支功能1。。实现该功能
- 签出开发和合并功能1,删除功能1
- 签出主合并开发
- 创建标签V1(将交付给客户)
- Checkout dev
- 创建并签出分支功能2。。实现该功能
- 签出开发和合并功能2,删除功能2
- 签出主合并开发
- 创建标签V2(将由相同或不同的客户交付)
- Checkout dev
- 创建并签出分支fixForV1。。实施修复
- Checkout dev and merge fixForV1
15…我们需要合并tagV1和fixForV1上的提交(不包括feature2上的提交)。合并后,我们将创建一个新的标签V1_1并将其交付给客户。
我知道我可以通过在fixForV1上进行第一次提交的散列来实现这一点。。{fixForV1上最后一次提交的哈希}有更好的方法吗?
如果我正确理解您的需求,您也可以这样工作:
git checkout fixForV1
git format-patch tagV2
—获取tagV2到fixForV1头部的所有补丁git checkout -b branchV1 tagV1
——基于tagV1创建新分支git apply *.patch
——应用我们在步骤1中生成的修补程序
如果你很幸运,所有补丁都能顺利应用,那么你就完成了。如果运气不好,请逐个应用补丁,然后相应地修复冲突。