我已经在Ubuntu 14.04上安装了最新版本的GitLab,除了推送到遥控器外它工作正常。
正在运行ssh git@example.com "git-receive-pack repo.git"
效果很好。在〜/ gitlab-shell / gitlab-shell.log中,结果是
INFO - :gitlab-shell:为具有密钥-1的用户执行git命令git-receive-pack repo.git。
但是当我正在运行git push
时,日志会显示:
WARN - :gitlab-shell:用户使用密钥-1尝试执行不允许的命令git receive-pack'repo.git'。
输出是:
致命:协议错误:错误的行长字符:Disa
ssh git@example.com "git receive-pack repo.git"
的输出是
“不允许的命令”
因此,允许和不允许之间的区别是缺少破折号。
我的git版本:
我该如何解决?有配置参数吗?
答案 0 :(得分:6)
我遇到了同样的问题,编辑〜/ .gitconfig解决了这个问题。
在过去的某个时候,有些东西修改了我的本地〜/ .gitconfig文件并插入了这个条目:
[remote "origin"]
receivepack = git receive-pack
我将其修改为以下内容,现在一切正常。
[remote "origin"]
receivepack = git-receive-pack
答案 1 :(得分:0)
当我退回以下内容时,我自己花了很多时间处理这个问题:
fatal: protocol error: bad line length character: This
我读过这可能是因为服务器上的Shell访问问题(是否允许访问?)而发生这种情况。
查看那时帮助我的Git push results in fatal: protocol error: bad line length character: This可能会有用。
我希望它在某种程度上有所帮助.. :)