我们将git用作小型开发团队的VCS。我将主存储库作为一个裸git存储库保存在我们的服务器上。
管理层和没有参与项目的人员需要能够在不知道git的情况下查看代码和文档,因此我还在我们的服务器上保留了一个用于浏览的克隆。为了使克隆保持最新,我安装了一个钩子,只要有人提交到裸存储库,就会更新克隆的主分支。
问题在于:有些傻瓜总是进入浏览克隆并开始修改代码,导致主分支推送操作失败。我想找到一种方法来对这个克隆强制执行只读策略,或找出另一种方法来保持它是最新的。
答案 0 :(得分:4)
处理这些情况的最佳方法是与有问题的傻瓜谈谈。
否则最简单的方法是简单地使用操作系统的权限系统,这样除了从裸存储库更新它的脚本之外,所有文件都是只读的。
您还可以重置 - 硬和 git clean -f ,然后再从裸仓库中取出。
(哎呀,抱歉,脚本消失了2周的工作????)
答案 1 :(得分:3)
为什么不通过 gitweb , cgit 或其他基于HTTP的存储库浏览界面提供访问权限?
答案 2 :(得分:0)
没有办法让git clone只读。有两种解决方法可以达到类似的效果。
一种方法是更改文件和文件夹的权限,以便它们是只读的。
我能想到的另一种方法是在服务器上使用权限系统
您可以使用gitolite来允许使用存储库对特定用户/组进行读写或只读访问。
这里有一个其他git管理软件列表:https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Access_control_.2F_Project_hosting