有什么方法可以防止开发人员签出其他分支吗?我的问题很简单:团队中的某人不断在生产环境中签出不同的分支,这当然会导致各种问题,这些问题本不应结局或那里的代码在结帐后就消失了。
我在这里https://www.kernel.org/pub/software/scm/git/docs/githooks.html上检查了可能的git钩子列表,但是我找不到在这种情况下有用的任何钩子。
此外,我发现了一个类似的问题(在Git中防止检出),建议git checkout在工作流中使用脚本而不是命令。但这并不能真正解决我的问题,因为我什至不确定是否由某些不了解git的开发人员手动进行检出,或者是由于配置不正确以及将本地项目链接到远程项目而导致IDE配置不正确一个会自动进行结帐,因此使用它的开发人员甚至都不知道这一点。在这种情况下,即使我使用脚本代替git checkout,也仍然必须禁用standard git checkout。
有谁知道解决方案?还是可以使用post-checkout挂钩来结帐?总比没有好。
在像Git这样的分布式环境中,您只能在受祝福的服务器级别(所有程序员都需要推送到该级别)上实施策略。
不在客户端级别(每个程序员都克隆了一个仓库,可以签出他们想要的任何分支)
例如,一个简单的策略如下:
git config receive.denyNonFastForwards true在该回购上设置将确保对prod所做的任何推送至少包括prod分支的所有现有历史记录以及一些新的提交。仅此一项就可以确保对该分支所做的任何贡献实际上都基于该分支。
一种更复杂的策略是像gitolite这样的授权层,它可以保护存储库的特定分支(甚至是特定的文件夹或文件),而无需在自己的存储库中隔离生产分支。
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |