1

我的问题是我需要从使用 gitolite 创建远程存储库的服务器执行克隆和提交。

当我使用 www-data user 执行手动克隆时:

git clone ssh://git@git-repo.fr/client_1_foo /tmp/client_1_foo

该项目是克隆的。

但是当我的脚本(PHP)调用相同的命令时,我收到错误 128(SSH 错误)。

编辑:(执行脚本的用户是 www-data)知道吗?

gitolite conf :

repo client_1_foo
    RW+ = @client_1_foo_ADMIN @all www-data
    RW = @client_1_foo_DEV Jenkins
    R = daemon
4

1 回答 1

0

如“ git ls-remote 在任何 repo 上返回 128 ”,脚本很可能没有正确构建 ssh url。

git://host:repo (correct)
# instead of 
git@host/repo (incorrect)

ssh url的SCP 语法通常涉及一个~/.ssh/config文件,该文件会将 ' ' 之前的字符串解析:为服务器、用户、端口和 ssh 密钥(如“当我推送到有效的 SSH 地址时,为什么 git 无法解析主机名? ”)。

于 2013-09-12T14:55:19.980 回答