我已经设置了Gitlab,我正在尝试按照此处提到的工作流程进行操作:Gitlab Production branch flow.
现在我的存储库看起来像这样:
我被要求仅将commit A
分支的master
与production
分支合并。这样做的最佳方式是什么?
我应该使用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?
答案 0 :(得分:1)
如果您特别想要在select提交中进行更改,那么Cherry pick是可行的。当您需要应用的提交没有按顺序发生时,这是最有益的。就个人而言,我不建议你在主/生产部门这样做,因为这不是一个好的长期发布策略。
我的建议是基于git flow,我知道这与gitLab的方法有些不同。
如果这些是实际版本,请考虑遵循发布分支工作流,在这种情况下,您在提交A
上创建发布分支,然后合并到生产中。
如果这些是修正/修补程序需要一些提交但不是全部(需要挑选),你可以从你的生产分支创建一个修补程序分支,首先挑选你需要的那个分支,然后在测试完成时合并后重新投入生产。如果在该分支中应用了任何额外的更改或提交,则需要将它们合并回您的开发分支。