首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在git中强制执行一个只合并的分支吗?

我可以在git中强制执行一个只合并的分支吗?
EN

Stack Overflow用户
提问于 2010-11-03 02:13:48
回答 4查看 7K关注 0票数 19

我正在使用git,并设置了以下分支来支持我的工作流:

  • 发布,只包含发布的软件,
  • 测试,其中包含向测试组发布的软件,
  • 发展,也就是发展,
  • some_topic_branch,其中添加了特性等。

主题分支从和被合并到开发中。当我们为测试版本做好准备时,测试就会在开发中合并。当测试版本被批准用于生产时,在测试中发布合并。

这一切都很容易设置,但是我想知道git中的执行选项。例如,如果发布分支上的唯一提交是来自测试的合并,从而防止更改直接发生在发布分支上,是否有可能强制执行策略?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-31 15:44:11

嗯,算是吧。但我觉得你不想去那里。

正如Jason所说,有一些钩子可以用来防止某些行为。在这种情况下,我们可以使用预提交钩子来阻止任何人运行"git提交“。但这在几个方面是有问题的:

  1. 出于各种安全原因,git钩子不与存储库一起分发,因此您不能强迫人们在其存储库中使用您的钩子。记住,它们的存储库是它们自己的,而不是由您来决定它们在存储库中做什么。
  2. 当你做拉或合并并得到冲突时会发生什么?为了解决这些冲突,您必须能够使用"git commit",这是我们刚刚禁用的。

这只会造成比它解决的更多的问题。

但是,您可以通过其他方式解决这个问题。您可以创建一个强制执行这些原则的工作流。例如,假设您有person A负责将测试分支合并到发布分支。如果您只让这个人能够将更改推送到中央存储库(或者说person存储库是“中心”存储库),他/她可以从测试存储库的测试分支或测试器B的测试分支中提取更改(请使用您的想象力)。

在这里,重要的是要认识到,您可以通过设计如何相互交流更改来强制执行策略。并不是每个人都需要能够将自己的更改推送到one存储库。见鬼,他们根本不需要推动他们的改变。测试人员/人员可以从开发人员那里提取更改,只要他们想要测试,就可以让测试人员决定他们什么时候准备好进行新的更改,而不是让开发人员决定什么时候测试人员应该得到他们的东西。同样的原则。

票数 11
EN

Stack Overflow用户

发布于 2011-05-31 14:28:03

您可能需要查看Git流,以获得有关这类工作流程的更多想法。

票数 4
EN

Stack Overflow用户

发布于 2010-11-03 03:05:54

您应该能够通过使用一些git挂钩来执行此操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4083724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档