我遇到了一些奇怪的行为,所以我希望有人可以帮助解决这个问题。当我执行 git push 时,它以“致命:远程端意外挂断”结束,但检查git日志和远程repo似乎表明推送完成了。重新运行 git push 会返回“一切都是最新的”。
所以有一点背景知识,我在Palm Pre上安装了dropbear和git,并尝试将更改提交给有效的回购。由于dropbear有点棘手,我不得不创建一个shell脚本(称为sssh),它相当于
ssh -i ~/.ssh/id_rsa $*
因为dropbear不会自动扫描publickey。另外,我已将GIT_SSH定义为/ opt / bin / sssh。
所以在这一点上,所有似乎都可以工作但我不确定为什么“致命”消息会不断出现。有什么想法吗?
更新:编辑以显示我在.git / config中的内容。
root@castle:/opt/src/modifications# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = git@gitorious.org:webos-internals/modifications.git
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "all"]
url = git@gitorious.org:webos-internals/modifications.git
url = git@github.com:jauderho/webos-hacks.git
答案 0 :(得分:1)
这只是一个猜测(你可能应该问Git For Human Beings Mailinglist或者这对开发者邮件列表没有帮助(git@vger.kernel.org))。
我的猜测是,Dropbear本身或你的包装脚本以这样的方式退出,即Git认为连接有问题。它可能是一件微不足道的事情,因为Git尝试在OpenSSH返回的某些字符串上进行模式匹配,这些字符串在Dropbear上不是100%相同,或者是错误的退出代码,或类似的东西。
答案 1 :(得分:0)
如果您使用其他ssh客户端,则会出现同样的错误?
我认为这可能是一个问题,而不是Git的问题。
参考号用于使用git push origin master
代替git push ssh://server/path/to/git/repository master
答案 2 :(得分:0)
我在Mercurial中使用post-commit钩子会出现错误,这使得它看起来像事务失败,但它仍然成功。
可能是类似的东西。