Git Push Hangs 挂起

有时开发人员会遇到这样一种情况,他们想使用命令 git push 将一些更改推送到存储库,并且在应用此命令后,他们开始知道他们的系统已经开始挂起,他们对这种情况感到无能为力。

这种情况发生在开发人员拥有一台技术非常陈旧的个人计算机,并且他们的内存没有足够的支持来管理这些操作时。

解决此问题的正确且长期的解决方案之一是升级个人计算机或系统并毫无问题地使用 Git 命令。

本文将帮助我们解决使用 Git 命令对大文件进行 git push 时的挂起问题。


Git Push 挂起解决方案

开发人员通常会遇到这些问题,因为文件体积庞大,需要很长时间才能上传。 这就是为什么在第一次运行时不应在 push 命令中添加该文件的原因。

$ git config --global http.postBuffer 524288000

以下命令仅适用于 ssh。

  1. 在这里,我们必须制作一个类似于 ~/sshv.sh 的脚本。
    #!/bin/bash
    ssh -vvv "$@"
    

    然后,我们必须通过以下命令添加权限。

    chmod u+x ~/sshv.sh
    

    然后将其推送到您推送代码的仓库。

    GIT_SSH=~/sshv.sh git push <rest of your command>`
    

    使用 Git askpass

    我们还可以使用以下命令行脚本解决这个挂起问题。

    $ git config --global core.askpass "git-gui--askpass"
    

    上面的命令多用于命令没有正确获取到节点的第一个参数,导致 Git 中 git push 命令挂起的问题。

重启 SSH 代理

如果问题还是没有解决,那么最终解决这个问题的办法就是在Git中使用如下命令重启SSH代理。

$ killall ssh-agent; eval `ssh-agent`

这些 SSH 密钥主要保存在 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub 位置。 如果将来仍然出现该问题,我们也可以将这些密钥转移到另一个位置。

但是上面的命令会重置你的 SSH 相关问题,挂起的问题最终会得到解决。