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

Mon*_*y34 16 git merge github

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

  • 从pristine分支创建功能分支(我们使用称为"develop"的基本分支,但您可以将其视为"主")
  • 完成此功能分支中需要完成的工作,并提交更改
  • 偶尔,使用develop分支重新设置功能分支
  • 完成功能分支中的工作后,提交并推送到GitHub上的远程功能分支
  • 创建一个拉取请求,将您的功能分支合并到开发分支中,该分支由另一个开发人员进行代码审查
  • 代码检查完成后,功能分支将合并到开发分支中,并删除功能分支

这在您处理串行工作流程时有效,但是当您从功能分支推送更改并等待其他开发人员审核并合并您的更改时,您可能希望承担另一项工作,意味着重复上述过程.

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

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

CDu*_*Dub 5

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

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

如果我已经从开发分支创建了我的新功能分支,那么从未合并分支中获取的更改就像在我的新分支中执行git merge [unmerged-branch]一样简单吗?

是的.应该.:)