2017-03-25 57 views
0

我有一个私人git中的系统设置,其中有3个主要分支。 (开发,测试版,发布版) 提交到开发(这是我的主分支),但在这里我卡住了。我想推动从开发到测试的具体承诺,然后是从测试版到发布版的承诺。通过这种方式,我可以打开一个分支并编译开发版本,或者打开测试版分支并编译发送给测试版测试人员的版本,或者打开版本分支并编译一个稳定的公共版本。 它只是我承诺这个私人回购,所以可能会做一些更多的提交没有准备好beta版分支,而其他提交准备就绪。从分支到分支承诺

我希望这是有道理的,但如果你有一个更好的系统的建议,我可以使用,而不是这个,我很乐意听到它!

TL; DR:错误的工作流程,试图使其工作,取而代之的是新工作流程。

+1

您对版本控制中的基本工作流程似乎很困惑。通常情况下,您只需从一个分支合并到另一个分支,但不清楚您真正在这里询问的内容。 –

+1

听起来像简单的'checkout' - >'commit' - >'merge'工作流程 – peter

+0

@TimBiegeleisen对不起,我还不够清楚,但是读完我对Guido Garcia的回复可能会澄清一点,他解决了我的问题。 – Yudowat

回答

1

您可以使用git cherry-pick将“开发”中的某些提交应用到您的某个分支(“beta”,“release”)。另请参阅this question

这解决了你的问题,但你应该考虑你的整个git工作流程。您通常要将提交推送到您的“开发”分支,然后将该分支合并到“测试版”(下一个分支)。查看樱桃挑选作为例外,而不是规则。

+1

或者'rebase to'可能是一个选项。 –

+0

我不确定是否樱桃挑选是我正在寻找与一些承诺,多次采取对方,直到他们到达'释放'分支,但看到你的答案后,我创建了一个快速测试回购和一切到目前为止工作良好。谢谢! – Yudowat

+2

根据我的经验,挑选樱桃是偶尔使用的东西。如果你发现自己经常在每次冲刺中使用挑选挑战,那么这可能表明你的分支工作流程有问题或设计不佳。 –

1

听起来像你应该使用git merge。我建议你学习使用git的不同工作流程。 Git branching and tagging best practices有一些很棒的建议。

+0

合并不是我正在寻找的,因为一些未准备好合并到下一级的更改在准备合并之前完成,而iirc将合并所有提交,而不是特定的提交 – Yudowat

+0

@ Yudowat在我看来,'development'分支应该是一个队列,可以合并准备发布的功能分支。据推测,您希望一次发布多个新功能,而不是一次发布多个新功能。如果功能分支没有准备好,那么它可能不应该被合并到开发分支中。 –