具有只读权限的git存储库

时间:2012-02-06 11:33:10

标签: git

在git中,如何使用只读选项将repositroy克隆到另一个新存储库是否有任何方法可以执行此操作。是否有任何开关来执行此操作

    git clone base-url new-url-with read only access 

我不想用chmod命令

来做

2 个答案:

答案 0 :(得分:3)

chmod命令是您的朋友,umask命令也是如此。

Git本身没有任何访问控制,因为操作系统和/或访问协议已经有一个,因此它将是多余的。事实上,访问git存储库可能不涉及git (甚至可以使用rsync拉取甚至推送),因此git无法控制访问。

答案 1 :(得分:3)

不完全是结帐切换,但您可以通过设置pre-commit hookgit方式阻止它。

但是,可以使用--no-verify选项绕过挂钩,因此这种方式不如使用chmod设置权限那样安全。

设置钩子非常简单:

  1. 在您的仓库中的pre-commit下创建一个名为.git/hooks的文件,该文件应该是只读的
  2. 文件的内容很简单:
    #!/bin/bash
    exit 1
  3. 如果现在正在启动提交,则会调用该挂钩。脚本始终返回1并且提交被中止。摘录自git book

      

    从此脚本退出非零状态会导致' git-commit'中止。

  4. 简单易行。虽然它可以被绕过,但它应该足以防止意外提交。

    如果您确实需要更安全的版本,请在recommended之后chmod作为Jan Hudec