使用Git将非合并功能分支合并到另一个功能分支中

时间:2013-11-21 03:26:52

标签: git github merge

我公司的Git工作流程看起来像这样:

  • 从pristine分支创建功能分支(我们使用名为“develop”的基本分支,但您可以将其视为“master”)
  • 完成此功能分支中需要完成的工作,并提交更改
  • 有时,使用开发分支
  • 来修改您的功能分支
  • 当您的功能分支中的工作完成后,提交并推送到GitHub上的远程功能分支
  • 创建一个拉取请求,将您的功能分支合并到开发分支中,由另一个开发人员审核代码
  • 完成代码审核后,功能分支将合并到开发分支中,功能分支将被删除

当您处理串行工作流程时,这会有效,但是当您从功能分支推送更改并等待其他开发人员审核并合并您的更改时,您可能想要另外一个工作,这意味着重复上述过程。

在我们的例子中,我们目前正在从开发分支创建我们的功能分支,因此我刚刚完成的工作尚不可用(它仍处于不稳定状态,等待由另一个开发人员合并到开发分支中)。我的问题是,如果我在 new 功能分支中所做的工作取决于我刚刚在之前的功能分支中完成的工作,该怎么办?我是否应该从我尚未合并的功能分支而不是开发分支开始分支我的新功能分支?如果我已经从开发分支创建了我的新功能分支,那么从未合并分支中获取的更改就像在新分支中执行git merge [unmerged-branch]一样简单吗?

希望这个解释 - 以及工作流程本身! - 说得通。我已经陷入了一些奇怪的情况,我不清楚我的代码状态,所以我试图找出一个工作流程,让我可以灵活地合并来自其他功能分支的更改,同时仍然可以获得任何上游更改时间。

1 个答案:

答案 0 :(得分:5)

  

我的问题是,如果我在新功能中所做的工作会怎样   分支取决于我刚才在上一个功能中完成的工作   科?我应该最初从我的分支我的新功能分支   尚未合并的功能分支而不是开发分支?

你描述它的方式,是的,你愿意。但是,我担心可能会在“未经批准/未经审核”的工作中走下去,就像您的代码审查会导致重大更改一样,您可能会发现自己正在重做很多工作。

  

如果我已经从开发分支创建了我的新功能分支,   我正在从未合并的分支中得到的变化很简单   在我的新分支中进行git merge [unmerged-branch]?

是的。应该。 :)