我的任务是改变Git,并且未能在互联网上找到任何相关内容 - 而且我迫切需要指示。
我们拥有什么:
一堆分支,主要是test
(基本上是develop
)和master
分支。 master
大多数时候都没有动过。
现在,我使用TeamCity,Jira和Crucible创建了一个持续集成环境,以及我自己编写的服务。
我们想要实现的目标:
test
- 除非是TeamCity 现在, ad1)我不知道这样的事情是如何实现的。我可能只是误解了Git帮助者对我说的话,但是当我读到时,我可以完全禁止,或完全允许。
ad2)名义上很简单,因为我知道必须使用预推钩子脚本,但它也必须放在每个开发人员的本地git存储库中,或者我可以以某种方式强制执行吗?
答案 0 :(得分:2)
正如@chicks所说,你可以使用像GitLab这样的东西绝对获得你想要的功能。用户限制(如“只有teamcity
具有对此分支的写访问权限”)可以直接使用,并且通常支持服务器端挂钩,您可以使用它来实现第二个要求。
肯定可能自己实现相同的限制,只需通过ssh提供git存储库,但它需要您的一些开发工作。一般模型是:
.ssh/authorized_keys
用户配置git
,以包含可用于识别与传入推送关联的用户的元数据,这里和那里都有做这些事情的例子;例如,this是我写的一个较旧的答案,描述了如何确保提交时的电子邮件地址与连接用户的身份相匹配。
使用像GitLab这样的预先打包的解决方案几乎不会比试图自己动手更有意义。