gpt4 book ai didi

git - 我可以在 git 中强制执行仅 merge 分支吗?

转载 作者:IT王子 更新时间:2023-10-29 01:25:56 25 4
gpt4 key购买 nike

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

  • release,只包含已发布的软件,
  • 测试,其中包含发布给测试组的软件,
  • 开发,这是开发发生的地方,
  • some_topic_branch,其中添加了功能等。

主题分支从 develop 分支出来并 merge 到 develop 中。当我们准备好进行测试发布时,测试会 merge 到开发中。当测试版本被批准用于生产时,版本 merge 到测试中。

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

最佳答案

嗯,有点。但我认为你不想去那里。

正如 Jason 所说,您可以使用钩子(Hook)来防止某些行为。在这种情况下,我们可以使用预提交 Hook 来防止任何人运行“git commit”。但这在几个方面存在问题:

  1. 出于各种安全原因,git hooks 不与存储库一起分发,因此您不能强制人们在他们的存储库中使用您的 hooks。请记住,他们的存储库是他们自己的,您不能决定他们在自己的存储库中做什么。
  2. 当您执行 pull 或 merge 并遇到冲突时会发生什么?为了解决这些冲突,您必须能够使用我们刚刚禁用的“git commit”。

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

但是,您可以通过其他方式解决此问题。您可以创建一个执行这些原则的工作流程。例如,假设您有人员 A 负责将测试分支 merge 到发布分支。如果你只让这个人能够将更改推送到中央存储库(或者那个人的存储库是“中央”存储库),他/她可以从测试存储库的测试分支或测试员 B(发挥你的想象力)。

这里重要的是要认识到,您可以通过设计彼此之间交流更改的方式来实现策略。不是每个人都需要能够将他们的更改推送到一个 存储库。哎呀,他们甚至根本不需要 push 他们的改变。测试人员/人员可以在他们想要测试某些东西时立即从开发人员那里 pull 更改,这样你就可以让测试决定他们何时准备好 pull 新更改,而不是让开发人员决定测试人员何时应该得到他们的东西。同理。

关于git - 我可以在 git 中强制执行仅 merge 分支吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4083724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com