gpt4 book ai didi

Git:无条件地阻止 checkout 到不同的分支?

转载 作者:太空狗 更新时间:2023-10-29 13:59:56 26 4
gpt4 key购买 nike

有什么方法可以阻止开发人员 check out 不同的分支吗?我的问题很简单:我团队中的某个人一直在生产环境中 check out 不同的分支,这当然会导致代码出现各种问题,这些代码不应该在那里结束,或者存在但在 check out 后消失的代码.

我在这里查看了可能的 git 钩子(Hook)列表 https://www.kernel.org/pub/software/scm/git/docs/githooks.html但我找不到任何在这种情况下有用的钩子(Hook)。

此外,我发现了一个类似的问题 ( Prevent a checkout in Git ),建议在工作流程中使用脚本而不是 git checkout 命令。但这并没有真正解决我的问题,因为我什至不确定 checkout 是否是由一些不知道 git 的开发人员手动进行的,或者是由于错误配置和将本地项目链接到远程而导致的 IDE 配置不正确一个自动 checkout ,因此使用它的开发人员甚至都不知道这一点。在这种情况下,即使我使用脚本而不是 git checkout,我仍然必须禁用标准 git checkout

有人知道解决方案吗?或者可以使用 post-checkout 钩子(Hook)来 checkout 回来?总比没有好。

最佳答案

在像 Git 这样的分布式环境中,您只能在 protected 服务器级别(所有程序员都需要返回到该级别)执行策略。
不是在客户端级别(每个程序员都克隆了一个 repo 并且可以 checkout 他们想要的任何分支)

例如,一个简单的策略:

  • prod 分支的专用 repo
  • git config receive.denyNonFastForwards true 在该 repo 上设置将确保在 prod 上完成的任何推送将至少包括 prod 分支的所有现有历史记录,加上一些新提交。

仅此一项就可以确保对该分支所做的任何贡献实际上都基于该分支。

更复杂的策略是 authorization layer喜欢 gitolite ,它可以 protect a specific branch of a repo (甚至 a specific folder or file ),消除了在其自己的 repo 中隔离生产分支的需要。

关于Git:无条件地阻止 checkout 到不同的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30408294/

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