Sirop4ik Asked:2020-12-15 21:51:19 +0000 UTC2020-12-15 21:51:19 +0000 UTC 2020-12-15 21:51:19 +0000 UTC 如何在 git 分支中设置推送限制? 772 如何让自己成为 git 中的分支管理员? 我们有一个人在做合并和推送到主分支,我们要确保只有他有机会推送到主分支,其他人只能从中拉取。 如何在 git 中实现这一点? 重要的 我们有自己的服务器端,我们不使用gitlab,github等等。 我知道你可以在钩子的帮助下以某种方式做到这一点...... 有例子吗?教程 git 2 个回答 Voted Best Answer Anton M 2020-12-18T17:06:57Z2020-12-18T17:06:57Z 大约应该将这样的脚本扔到.git/hooks/update服务器中并赋予执行它的权利。 #!/bin/sh if [ "$USER" != "git-repo-admin" ] && [ "$1" == refs/heads/master ];then echo "Manual pushing to this repo is restricted" exit 1 fi A K 2020-12-17T00:09:28Z2020-12-17T00:09:28Z 没门。在vanilla git中,没有这样的机制,你只能使用组织的方法(按组织的命令禁止所有人除外)——你自己理解,马马虎虎的效率。 如果你真的想,看看 gitlab,它可以做类似的事情。 在 gitlab 中,你可以创建受保护的分支(protected branches),通常这些是某种发布分支。 您可以在 Repository - Branches 页面上看到它: 您可以通过单击项目设置中的链接来设置权限: 您可以指定谁有权合并此分支(这是在不发出拉取请求的情况下立即推送到它的权利) - 请参阅允许合并列。
大约应该将这样的脚本扔到
.git/hooks/update服务器中并赋予执行它的权利。没门。在vanilla git中,没有这样的机制,你只能使用组织的方法(按组织的命令禁止所有人除外)——你自己理解,马马虎虎的效率。
如果你真的想,看看 gitlab,它可以做类似的事情。
在 gitlab 中,你可以创建受保护的分支(protected branches),通常这些是某种发布分支。
您可以在 Repository - Branches 页面上看到它:
您可以通过单击项目设置中的链接来设置权限:
您可以指定谁有权合并此分支(这是在不发出拉取请求的情况下立即推送到它的权利) - 请参阅允许合并列。