我可以在git中强制执行仅合并分支吗?
我正在使用git,我正在设置以下分支以支持我的工作流:我可以在git中强制执行仅合并分支吗?,git,merge,workflow,branch,git-branch,Git,Merge,Workflow,Branch,Git Branch,我正在使用git,我正在设置以下分支以支持我的工作流: release,仅包含已发布的软件 测试,其中包含发布给测试组的软件 发展,就是发展, 一些主题分支,其中添加了功能等 主题分支从分支并合并到开发中。当我们准备好测试版本时,测试将在开发中合并。当一个测试版本被批准用于生产时,该版本将合并到测试中 这一切都很容易设置,但我想知道git中的强制选项。例如,是否可以强制执行一个策略,其中发布分支上的唯一提交是来自测试的合并,从而防止直接在发布分支上发生更改?您应该能够通过使用一些git挂钩来
- release,仅包含已发布的软件
- 测试,其中包含发布给测试组的软件
- 发展,就是发展,
- 一些主题分支,其中添加了功能等
这一切都很容易设置,但我想知道git中的强制选项。例如,是否可以强制执行一个策略,其中发布分支上的唯一提交是来自测试的合并,从而防止直接在发布分支上发生更改?您应该能够通过使用一些git挂钩来强制执行此策略。您可能想了解更多关于此类操作的想法 嗯,有点。但我认为你不想去那里 正如Jason所说,有一些钩子可以用来防止某些行为。在这种情况下,我们可以使用pre-commit钩子来阻止任何人运行“git-commit”。但这在几个方面存在问题:
这里重要的是要认识到,可以通过设计如何相互交流更改来实施策略。并非每个人都需要能够将其更改推送到一个存储库中。见鬼,他们根本不需要推动他们的改变。测试人员/人员可以从开发人员那里获取更改,只要他们想要测试的东西,这样你就可以让测试人员决定他们何时准备好引入新的更改,而不是让开发人员决定测试人员何时应该得到他们的东西。同样的原则。最近,一个用于授权实施的框架,可以帮助制定各种策略,例如,只允许测试人员合并到“
测试
”分支中
此外,gitolite建议(在“”中解释)可以定义许多“更新挂钩”,用于控制推送到gitolite管理的repo的提交
但所有这些控制都是针对“中央”回购的,而不是针对在各个开发人员工作站上克隆的所有下游回购。可能重复的