如何合并以前的提交

时间:2016-10-26 22:59:33

标签: git deployment gitlab git-flow git-cherry-pick

我已经设置了Gitlab,我正在尝试按照此处提到的工作流程进行操作:Gitlab Production branch flow.

现在我的存储库看起来像这样:

enter image description here

我被要求仅将commit A分支的masterproduction分支合并。这样做的最佳方式是什么?

我应该使用git cherry-pick命令吗?我读过我将使用cherry-pick删除版本历史记录。

如果我遇到这种情况,我需要将master分支中的一个先前提交合并到production分支,我该如何处理?

我被困在这里。非常感谢任何帮助。

谢谢,

更新:从主分支我只能推送特定的提交: git push <remotename> <commit SHA>:<remotebranchname>

在这里找到答案:How can I push a specific commit to a remote, and not previous commits?

1 个答案:

答案 0 :(得分:1)

如果您特别想要在select提交中进行更改,那么Cherry pick是可行的。当您需要应用的提交没有按顺序发生时,这是最有益的。就个人而言,我不建议你在主/生产部门这样做,因为这不是一个好的长期发布策略。

我的建议是基于git flow,我知道这与gitLab的方法有些不同。

如果这些是实际版本,请考虑遵循发布分支工作流,在这种情况下,您在提交A上创建发布分支,然后合并到生产中。

如果这些是修正/修补程序需要一些提交但不是全部(需要挑选),你可以从你的生产分支创建一个修补程序分支,首先挑选你需要的那个分支,然后在测试完成时合并后重新投入生产。如果在该分支中应用了任何额外的更改或提交,则需要将它们合并回您的开发分支。