git - 如何制作 git 存储库 'pull only'

标签 git networking repository

我正在为多个开发人员在共享服务器上设置开发环境。我将拥有一个存储库,其中包含生产中使用的所有代码,以及许多其他用于团队不同成员开发的代码。我想要的是生产 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/

相关文章:

git - 如何让 Git 知道移动的文件和编辑的文件是同一个文件?

git diff 返回不正确

Grails Release 插件未在远程 maven 存储库上部署插件

c# - 在转换到新供应商期间,如何有效地将一个应用程序映射到两个数据库后端?

android-studio - 构建 :gradle:2. 1.0-alpha3 在哪里?

git - 如何让 git 显示正在跟踪的文件列表?

git - TortoiseGit 图标覆盖桌面上的图标

linux - 转储和丢弃特定应用程序的网络数据包的最佳方法是什么?

networking - 将对外部 IP 的请求重定向到本地 IP

c# - 识别事件网络接口(interface)