我的公司有一个 Git 工作流,看起来像这样:
- 从原始分支创建功能分支(我们使用名为“开发”的基本分支,但您可以将其视为“主”)
- 在此功能分支中完成您需要完成的工作,并提交您的更改
- 有时,将您的功能分支与开发分支 rebase
- 当你的特性分支中的工作完成后,提交并推送到 GitHub 上的远程特性分支
- 创建一个 pull 请求以将您的功能分支 merge 到开发分支中,该分支将由另一位开发人员审查代码
- 代码审查完成后,将feature分支 merge 到develop分支,删除feature分支
这在您处理串行工作流时有效,但是当您从功能分支推送更改并等待其他开发人员审查和 merge 您的更改时,您可能想要承担另一部分work,就是重复上面的过程。
在我们的例子中,我们目前正在从开发分支创建我们的功能分支,所以我刚刚完成的工作还不可用(它仍然处于不确定状态,等待其他开发人员 merge 到开发分支)。我的问题是,如果我在新 功能分支中所做的工作取决于我刚刚在之前的功能分支中完成的工作怎么办?我应该首先从我尚未 merge 的功能分支而不是开发分支分支我的新功能分支吗?如果我已经从 develop 分支创建了我的新功能分支,那么从未 merge 的分支中获取我缺少的更改就像在我的新分支中执行 git merge [unmerged-branch]
一样简单?
希望这个解释——以及工作流程本身! - 说得通。我让自己陷入了一些我不清楚代码状态的奇怪情况,所以我试图找出一个工作流程,让我可以灵活地 merge 来自其他功能分支的更改,同时仍然可以随时获取上游更改时间。
最佳答案
The question I have is, what if the work I'm doing in my new feature branch depends on the work I just completed in my previous feature branch? Should I be initially branching my new feature branch from my as-of-yet unmerged feature branch instead of the develop branch?
按照您描述的方式,是的,您会的。但是,我担心可能会走上“未经批准/未经审查”工作的道路,就好像您的代码审查导致重大更改一样,您可能会发现自己需要重做很多工作。
If I've already created my new feature branch from the develop branch, is getting the changes I'm missing from the unmerged branch as simple as doing a git merge [unmerged-branch] within my new branch?
是的。应该。 :)
关于git - 使用 Git 将未 merge 的功能分支 merge 到另一个功能分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111851/