我最近在将 git 与 bitbucket.org 服务结合使用时遇到了问题。 我最近安装了一个新版本的 Ubuntu(完全删除后)。起初我复制了 ssh key ,但由于我认为这可能会导致问题,所以我生成了一个新的 key 对并将新的公钥复制到 bitbucket.org。旧 key 现已删除。
这是我在 git push
上得到的结果
Counting objects: 44, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (33/33), done.
Writing objects: 100% (33/33), 3.33 KiB, done.
Total 33 (delta 25), reused 0 (delta 0)
此时(实际上)需要永远才能最终显示:
Write failed: Broken pipe
fatal: The remote end hung up unexpectedly
fatal: recursion detected in die handler
这是我通过git remote show origin
显示的配置
* remote origin
Fetch URL: git@bitbucket.org:Username/name_of_repo.git
Push URL: git@bitbucket.org:Username/name_of_repo.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (fast-forwardable)
git pull
给出“已经是最新的”。正如预期的那样。
git fsck
的输出(如 user1471175 所建议)是
Checking object directories: 100% (256/256), done.
Checking objects: 100% (468/468), done.
之前一个非常小的推送成功了,我现在尝试推送的变更集有点大,但只涵盖大约 10 个文件,在重新安装操作系统之前这从来没有问题。
什么会导致这些问题?现在不是 bitbucket.org 服务,因为我的一位同事可以在他的机器上(在同一无线网络上)执行操作。
如果我将 git 配置为通过 https
而不是 ssh
上传,则完全没有问题,所以问题似乎与 ssh
有关>,虽然这对 ssh-keys 是全新的。
最佳答案
我遇到了类似的问题。在推送或获取之后,git 似乎挂起。将其置于该状态一段时间后(三十或四十分钟左右),我注意到它还在继续。 尝试放入 ~/.ssh/config; 主持人 * ServerAliveInterval 60 这意味着您的计算机每隔 60 秒就会尝试与您要连接的服务器保持连接。
我的设置(客户端): MBP,OS X 10.8.4 git 版本 1.8.3.1.448.gfb7dfaa
服务器: 抱歉,这件事我帮不了你。我只知道它是一个 linux VPS(并运行 cPanel)。
我希望这些信息可以帮助到别人。
关于git 卡在 ssh 上的推送(破管)上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17211647/