在git中,如何使用只读选项将repositroy克隆到另一个新存储库是否有任何方法可以执行此操作。是否有任何开关来执行此操作
git clone base-url new-url-with read only access
我不想用chmod命令
来做答案 0 :(得分:3)
chmod
命令是您的朋友,umask
命令也是如此。
Git本身没有任何访问控制,因为操作系统和/或访问协议已经有一个,因此它将是多余的。事实上,访问git存储库可能不涉及git (甚至可以使用rsync拉取甚至推送),因此git无法控制访问。
答案 1 :(得分:3)
不完全是结帐切换,但您可以通过设置pre-commit hook以git
方式阻止它。
但是,可以使用--no-verify
选项绕过挂钩,因此这种方式不如使用chmod
设置权限那样安全。
设置钩子非常简单:
pre-commit
下创建一个名为.git/hooks
的文件,该文件应该是只读的#!/bin/bash
exit 1
如果现在正在启动提交,则会调用该挂钩。脚本始终返回1并且提交被中止。摘录自git book:
从此脚本退出非零状态会导致' git-commit'中止。
简单易行。虽然它可以被绕过,但它应该足以防止意外提交。
如果您确实需要更安全的版本,请在recommended之后chmod
作为Jan Hudec。