我在我的组织中工作的网站有三个分支:一个用于测试,登台和制作。代码部署到各自分支机构的实时站点。
这已经成为问题(我认为),我不确定它是否仅仅因为我对Git还是一个新手还是一个破碎的过程。
如果另一个开发人员在测试环境中工作并且我需要快速推出一些内容,那么我如何在测试中进行更改并将其合并到舞台上然后生成而不包括他的所有更改?我已经使用了git cherry-pick
,但我不确定这是否是最佳途径。
感谢您的帮助
答案 0 :(得分:3)
嗯,对于一个你可以避免"在测试中进行更改"。
我假设所有分支都在master
之外产生。创建一个分支urgent-hotfix
,合并到测试中,看看它是否可行(可能包括其他更改),然后将其直接合并到staging和prod。
这三者与部署挂钩的事实并不意味着您不能拥有更多分支,特别是对于修补程序。我的经验法则是"每个开发人员一个分支"它运作得相当好。请注意,这并不意味着创建名为devs的分支;它只是意味着两个开发者不会在同一个分支上工作。
例如,如果我是唯一一个制作功能A的人,我会feature-A
分支并直接提交给它。如果有更多的人在feature-A
上工作,我首先制作它,然后将另一个分支分支出来,称为feature-A-part-A
,提交到那个并合并工作代码进入feature-A
。我非常确定你可以根据自己的情况进行调整。
答案 1 :(得分:0)
您的解决方案最初工作正常,但无法很好地扩展。
更好的方法是将部署与源代码控制分开。要实现这一目标,您需要一个大致遵循以下步骤的发布流程:
此方法支持任意数量的环境。它还使您能够引入诸如“在部署到实时系统之前,我们必须部署到QA”之类的规则。
既然您的发布过程独立于开发过程,您可以在Git中使用标准主题分支来处理您描述的情况 - 每个功能都是在不同的主题分支上开发的。因此,其他开发人员可以将他的主题分支部署到测试环境中,并且您完全不受此影响。