我希望在共享系统上克隆另一个(受信任的)用户拥有的 git 存储库。简单地尝试在不对 git 配置进行任何更改的情况下克隆它是行不通的,因为最新版本的 git 引入了一项安全检查,该检查会阻止搜索其他用户拥有的 git 存储库:
git clone /path/to/repo/owned/by/other ./here
fatal: detected dubious ownership in repository at '/path/to/repo/owned/by/other'
To add an exception for this directory, call:
git config --global --add safe.directory /path/to/repo/owned/by/other/.git
运行这个
git config
命令可以有效地解决问题,但是(由于我不想在这里解释的原因)我希望能够在不修改 git 配置文件的情况下克隆存储库。
git 手册页讨论了一个选项
-c
,它允许用户在运行 git 命令时覆盖 git 配置选项:
man git
...
-c <name>=<value>
Pass a configuration parameter to the command. The value given will override values from configuration files. The <name> is expected in the same format as listed by git config (subkeys separated by dots).
...
所以我尝试了:
git -c safe.directory=/path/to/repo/owned/by/other/.git clone /path/to/repo/owned/by/other ./here
但我仍然收到可疑的所有权错误。我尝试了上述命令的不同变体,但没有成功。
谢谢您的帮助。
使用
--config
运行克隆命令并指定 safe.directory
-
GIT_CONFIG_GLOBAL=/dev/null git -c safe.directory=/path/to/repo/owned/by/other clone /path/to/repo/owned/by/other ./here