我正在为多个开发人员在共享服务器上设置一个开发环境。我将有一个存储库,其中包含生产中使用的所有代码,以及团队不同成员用于开发的许多其他代码。我想要的是生产存储库是‘拉只’。用户可以随时从其中拉出并在本地获取生产更改,但推送需要由生产管理员处理,或者至少需要密码。类似于:
[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有这样的内置功能吗?
发布于 2013-07-18 01:03:14
如果您想要复杂的存储库访问控制,您可能需要查看Gerrit。它的主要关注点是代码审查(这也是完全值得的!),但它也会产生访问控制作为副作用。
否则,如果你只是想要一些非常简单的东西,文件权限是在一台机器上处理这件事的一个完美的好方法。只要用户不能写入包含存储库的目录中的文件,他们就不能推送到存储库。我一点也不觉得这是不雅观的!
发布于 2016-07-27 15:05:37
一种更“成年人同意”的解决方案行得通吗?
例如,在git中,您只设置了远程获取,而将远程推送留给了一个不存在的虚拟URL,这样用户就不会意外地git push到它。
编辑:这类似于接受的in this question。
https://stackoverflow.com/questions/17705862
复制相似问题