我正在为多个开发人员在共享服务器上设置开发环境。我将拥有一个存储库,其中包含生产中使用的所有代码,以及许多其他用于团队不同成员开发的代码。我想要的是生产 repo 是“只 pull ”。用户可以随时从中提取并在本地获取生产更改,但推送需要由生产管理员处理,或者至少需要密码。像这样的东西:
[user@machine /devroot/myrepo]$ git pull $PRODUCTION master
From <location>
*branch master -> FETCH_HEAD
Already up-to-date
[user@machine /devroot/myrepo]$ git push $PRODUCTION master
error: user `user` is not authorized for this action
或者
[user@machine /devroot/myrepo]$ git push $PRODUCTION master
HEAD @ `$PRODUCTION`-Please enter password:
我相信我可以使用文件权限来做到这一点,但这并不是一个优雅的解决方案。 git 是否内置了类似的东西?
最佳答案
如果您想要复杂的存储库访问控制,您可能需要查看 Gerrit .它的主要重点是代码审查(这也是完全值得拥有的!),但它也作为副作用进行访问控制。
否则,如果您只是想要一些非常简单的东西,文件权限是在一台机器上处理这个问题的完美方式。只要用户不能写入包含存储库的目录中的文件,他们就不能推送到它。我看不出有什么不雅之处!
关于git - 如何制作 git 存储库 'pull only',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17705862/