【问题标题】:Git push takes foreverGit推送需要永远
【发布时间】:2013-02-17 00:22:34
【问题描述】:

当我试图推送到我的远程 git 存储库时,它需要很长时间并且没有任何反应。我等了这么久,但推送永远不会完成。我的操作系统是 Ubuntu 12.10。谢谢。

【问题讨论】:

  • 可以手动浏览github吗?你在代理后面吗?添加--verbose 时会发生什么?我们需要更多信息来帮助您
  • 是的,我可以做其他所有事情,Pull、fetch、本地提交和浏览 github。唯一的问题是在推动时。我等了这么久,这么多次,从来没有发生过。有时我没有快进错误,但后来我从存储库中提取来解决它,当我推送时,它只是继续但永远不会结束。
  • 请提供更多信息。您使用的是ssh 还是https 远程网址?你的存储库有多大?有没有可能是因为你最近对一个巨大的二进制文件进行了一些提交,所以存储库有数百兆字节?
  • “永远”有多长?
  • @WaleedKhan ∞ 秒。 :-)

标签: git ubuntu github


【解决方案1】:

尝试使用--verbose 选项来查看实际发生的情况。即使你做了一些小的改动,一些内部的事情也可能导致 git 推送更多的数据。

看看git gc。它会清理您的本地存储库并可能会加快速度,具体取决于您的问题。强烈建议备份。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。如果您使用的是 Bitbucket.org,我不知道为什么,但禁用 IPV6 连接解决了问题。

    【讨论】:

    • 您是如何禁用 IPV6 的?
    • 这取决于您使用的 SO。在 Ubuntu 中,使用 UI,它将是:设置 > 网络 > Ipv6 选项卡 > 禁用。但还有其他方法。
    • 谢谢!这可能与某些路由器配置阻止特定的 ipv6 流量有关,甚至与本地互联网提供商阻止它有关。 如果您不需要使用任何 ipv6 服务,禁用它会使其正常工作(在 Ubuntu 上,请务必通过 /etc/sysctl.conf 禁用它)。 如果您需要 ipv6,则通过将其添加到主机文件中来强制您的 PC 使用 bitbucket 的 ipv4:104.192.143.3 bitbucket.org
    【解决方案3】:

    确保您使用的是正确的协议。

    根据您设置本地配置的方式,您可能需要使用https 进行连接。为此,请将远程存储库的协议从 git@github.com:[user]/[repo] 协议切换到 https://github.com/[user]/[repo].git 协议。

    此外,如果您无法使用https 协议,反之亦然。在较旧的配置中,较旧的 git@github 用户身份验证通常允许您作为后备连接。

    【讨论】:

    • 今天又对我有用了。但它正在切换到有效的 git@github 协议。对我来说,这可能与 GitExtensions 上的一些配置选项有关,这是我正在使用的 git 客户端。
    • 我将遥控器更改为从 https 使用 ssh,然后这个问题就开始了,我现在回到 https 并为我工作。
    【解决方案4】:

    确保您已通过 github 身份验证:对我来说,这是我的身份验证。我在 Windows 上使用 git bash 运行命令,出于某种原因,它没有提示我进行身份验证。 当我用命令提示符运行它时,我得到了这个

    Select an authentication method for 'https://github.com/':
    1. Web browser (default)
    2. Personal access token
    option (enter for default):
    

    我成功验证后,它工作正常

    【讨论】:

      【解决方案5】:

      我在使用 git bash 时遇到过类似的问题。使用这些命令很有帮助。

      git config --global core.preloadindex true  
      git config --global core.fscache true 
      git config --global gc.auto 256
      

      https://blog.praveen.science/solution-to-git-bash-is-very-slow-in-windows/

      【讨论】:

        【解决方案6】:

        请检查远程目录的权限。在我的情况下,通过chown -R user.group /dir 设置正确的权限后,提交正确完成:

        $ git push --verbose
        Pushing to ssh://user@domain.zone:port/dir
        user@domain.zone's password:
        Counting objects: ...
        ...
        Total 123 (delta 21), reused 16 (delta 12)
        To ssh://domain.zone:port/dir
         * [new branch]      master -> master
        updating local tracking ref 'refs/remotes/origin/master'
        

        【讨论】:

          【解决方案7】:

          一种可能性可能是您在最新提交中提交了大型二进制文件。 git 不擅长处理二进制文件。如果提交二进制文件是一个错误,你可以参考following answer 来摆脱提交中的二进制文件。

          https://stackoverflow.com/a/58987943/8694152

          【讨论】:

            【解决方案8】:

            每次我重新安装或升级 Ubuntu(全部 3-4 次)时,我都必须转到我的互联网连接(以太网和 Wifi)的 DNS 设置,删除 Automatic 并添加 8.8.8.8 和 1.1.1.1 .在重置 git push 和所有其他 git-origin-accessing 命令后,从 1 分钟缩短到几秒钟。

            【讨论】:

              【解决方案9】:

              删除这些目录中与关键字“vcs”和“git”相关的每个设置文件(在搜索栏中搜索“vcs”和“git”并删除您在结果中看到的每个文件):

              1. C:/Users/%USER%/AppData/Local/Google/AndroidStudio%VERSION%

              2. C:/Users/%USER%/AppData/Roaming/Google/AndroidStudio%VERSION%

              然后重启IDE!

              【讨论】:

              • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。
              猜你喜欢
              • 2013-01-27
              • 2021-08-31
              • 1970-01-01
              • 1970-01-01
              • 2013-12-08
              • 1970-01-01
              • 2016-06-14
              • 2021-03-17
              • 2014-02-24
              相关资源
              最近更新 更多