Car*_*arl 5 git branch one-to-many
典型使用场景:
我有master,branch_foo和branch_bar.一切都是最新的.现在,我做了一个"git checkout master"并开始修复bug.
让我们说修复是在所有分支上处于相同状态的跟踪文件 - 即.在修复之前,每个分支的文件差异不会产生任何差异.
有没有办法将此修复程序提交给所有分支?
对此的常见方法是"向上合并".来自man gitworkflows:
始终将修复程序提交到需要它们的最旧的受支持分支.然后(周期性地)将集成分支向上合并到彼此中.
这提供了非常受控制的修复流程.如果您注意到您已经对maint中也需要的修复程序应用了修复,则需要向下挑选它(使用git-cherry-pick(1)).这种情况会发生几次,除非你经常这样做,否则无需担心.
第一种方法当然是首选 - 最好只在你的回购中提交一次,并且能够看到它如何进入每个分支的历史记录.然而,生活并不完美,你有时会发现自己属于第二类.如果这种情况变得很普遍,你可以写一个像这样的脚本
multi-cherry-pick <commit> <branch> [<branch>...]
Run Code Online (Sandbox Code Playgroud)
它依次检出每个分支并挑选给定的提交.
我期待git cherry-pick你想要的.
将修复程序提交到第一个分支后,您可以使用git cherry-pick它将其合并到每个其他分支中.
关于SO的这个相关问题可能是有意义的: Git&在多个分支机构工作
就在这里.在单独的主题(功能)分支上进行此提交(分支最旧的分支/最早状态),然后将此主题分支合并到您想要的任何分支中.
此工作流程描述于Junio C Hamano(Git的维护者)的Never merging back blog post中.
这大致是Jefromi所写的
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |