首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将git存储库设置为“pull only”

如何将git存储库设置为“pull only”
EN

Stack Overflow用户
提问于 2013-07-18 00:57:53
回答 6查看 3.2K关注 0票数 7

我正在为多个开发人员在共享服务器上设置一个开发环境。我将有一个存储库,其中包含生产中使用的所有代码,以及团队不同成员用于开发的许多其他代码。我想要的是生产存储库是‘拉只’。用户可以随时从其中拉出并在本地获取生产更改,但推送需要由生产管理员处理,或者至少需要密码。类似于:

代码语言:javascript
复制
[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

代码语言:javascript
复制
[user@machine /devroot/myrepo]$ git push $PRODUCTION master
HEAD @ `$PRODUCTION`-Please enter password:

我相信我可以通过文件权限做到这一点,但这并不是一个优雅的解决方案。git有这样的内置功能吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-07-18 01:03:14

如果您想要复杂的存储库访问控制,您可能需要查看Gerrit。它的主要关注点是代码审查(这也是完全值得的!),但它也会产生访问控制作为副作用。

否则,如果你只是想要一些非常简单的东西,文件权限是在一台机器上处理这件事的一个完美的好方法。只要用户不能写入包含存储库的目录中的文件,他们就不能推送到存储库。我一点也不觉得这是不雅观的!

票数 3
EN

Stack Overflow用户

发布于 2016-07-27 15:05:37

一种更“成年人同意”的解决方案行得通吗?

例如,在git中,您只设置了远程获取,而将远程推送留给了一个不存在的虚拟URL,这样用户就不会意外地git push到它。

编辑:这类似于接受的in this question

票数 3
EN

Stack Overflow用户

发布于 2013-07-18 02:02:16

您可以使用gitolitegitosis。然后,您可以创建用户列表,这些用户可以拉取、推送每个分支,可以创建标签等。

我更了解人造石而不是人造石。该配置只是一个git存储库,其中包含简单的文件语法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17705862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档