2012-02-06 66 views
1

在混帐混帐存储库,如何克隆repositroy与只读选项另一个新的资料库有没有办法做到it.are有任何开关要做到这一点具有只读权限

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

我不想用chmod命令执行

+3

chmod有什么问题? – Jasper 2012-02-06 11:36:59

+0

我想知道开关。因为我知道它可以使用chmod命令 – Rajeev 2012-02-06 11:43:30

+0

完成我认为git只是决定不重新发明轮子。您可以通过正确设置文件系统权限来创建一个只读存储库,因此他们只是确保使用权限可以正常工作,而不是使自己的版本成为只读存储库。 – Jasper 2012-02-06 11:49:10

回答

3

chmod命令是你的朋友,同样也是umask命令。

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

3

不完全是结帐开关,但您可以通过设置pre-commit hook使用git的方式阻止它。

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

设置挂钩是很容易的:

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

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

简单和容易。虽然它可以被绕过,但它应该足以防止意外的提交。

如果您确实需要更安全的版本,请致电chmod作为recommended通过Jan Hudec