限制用户修改远程存储库上的主分支

时间:2013-05-20 06:34:43

标签: git

我有一种情况,我必须限制一些用户推送到远程仓库的主分支。我发现任何用户都可以在他的机器上更改“git config user.name”,将其推送到远程仓库的主分支。如何验证用户登录帐户(ssh / http)和git config user.name是否相同?

4 个答案:

答案 0 :(得分:2)

你有两个完全不同的问题:

1。如何限制允许推送给定分支的用户?

首先,您需要一种方法来验证您的用户。最简单的方法是使用个性化的ssh密钥。然后,您需要一层授权来确定允许谁推送哪个分支。这可以通过像gitolite这样的软件来完成。请阅读此链接以获取更多信息。

2。如何确保人们不通过git config user.name使用假身份?

首先,您无法阻止人们在本地存储库中提交时使用任意名称。您只能在尝试将这些提交推送到中央存储库时进行检查。

单次推送能够传输多个提交。如果要确保每个提交包含正确的用户名和邮件地址,首先必须确保知道当前正在推送的人。然后,您需要检查所有推送的提交以获取正确的用户名和邮件地址。

您可以再次使用gitolitegerrit也可以this kind of checks

答案 1 :(得分:0)

Git本身无法强制执行这种限制。

您需要一些像gitolite这样的身份验证层。

答案 2 :(得分:0)

如果你正在考虑这种限制,也许是时候改变你的项目组织了。

您可以要求开发人员分叉项目并在自己的存储库中工作。

您将完全控制项目中合并的内容(在所有分支上)。每个开发人员都会抓住一个分支并开展工作。工作完成后,您(来自主仓库)将合并其修改。

答案 3 :(得分:0)

请参阅我提到的答案,作为类似问题的答案https://stackoverflow.com/a/40759794/950944