git意外挂断(但推送有效)

时间:2009-07-12 06:14:07

标签: git ssh

我遇到了一些奇怪的行为,所以我希望有人可以帮助解决这个问题。当我执行 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

3 个答案:

答案 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钩子会出现错误,这使得它看起来像事务失败,但它仍然成功。

可能是类似的东西。