如何在多个分支上应用错误修正?

now*_*wox 4 git

假设我是开发团队的一员,我们都在同一个项目的不同分支上工作:

     o--o--o--o (Bob)
    /
o--o---o---o---o---o--o (Me, master)
        \
         o--o--o---o (Alice)
Run Code Online (Sandbox Code Playgroud)

今天,我在Alice和Bob的通用文件中发现了一个错误。这是一个老错误。

如何在其他分支机构中修复它?在这种情况下,工作流程是什么?

我想正确的处理方法是生成一个补丁,然后我亲自通过电子邮件发送给Alice和Bob:“嗨,Alice和Bob,我发现了在commit 7a6b87f上出现的错误。请找到此电子邮件附带的补丁”。

如果只有三个人在项目上工作,解决方案似乎非常简单。如何在具有更多分支机构和更多开发人员的更大项目中管理它?

当然,如果我一个人在项目上,我可以简单地使用此解决方案

Dav*_*sch 5

我会从 Alice 和 Bob 的共同祖先创建一个分支,修复那里的错误,然后将该分支合并到 Alice、Bob 和 master 中。这样,您只需在一次提交中修复一次错误。


xiu*_*teo 5

您可以执行David指出的操作,但是可以使用cherry-pickCommand 来合并,而不必合并。使用的另一种选择cherry-pick是将您在分支上所做的更改仅摘录到其他分支。在以这种方式进行操作之前,您必须确保提交更改仅属于错误修复。然后,您只需转到其他每个分支,git cherry-pick <commit hash>如果有任何冲突,则必须解决它。我认为,这是正确的方法,我正在这样做,而且似乎更麻烦。

这里的文档:http : //git-scm.com/docs/git-cherry-pick