如何调试:Git pull在Git pull期间挂起(始终为54%)

如何调试:Git pull在Git pull期间挂起(始终为54%),git,debugging,pull,Git,Debugging,Pull,我在我的存储库中添加了两个大文件(每个150MB),现在git pull总是挂起54%。我用ping检查了网络,试着用另一个,我做了一个git-fsck等等,没有任何帮助 我如何调试这个 有没有办法一次只取一个大文件?问题是我的本地git不知道最后一次提交=-( 我认为你的问题是你的克隆每次都在中间中断。 因此,与其每次都从头开始一次又一次地克隆回购协议,我建议您对新创建的回购协议进行取回 基本上,初始化一个空的存储库 cd repo_name && git init 将原始

我在我的存储库中添加了两个大文件(每个150MB),现在git pull总是挂起54%。我用ping检查了网络,试着用另一个,我做了一个git-fsck等等,没有任何帮助

  • 我如何调试这个

  • 有没有办法一次只取一个大文件?问题是我的本地git不知道最后一次提交=-(


  • 我认为你的问题是你的克隆每次都在中间中断。

    因此,与其每次都从头开始一次又一次地克隆回购协议,我建议您对新创建的回购协议进行取回

    基本上,初始化一个空的存储库

    cd repo_name && git init
    
    将原始回购添加为此回购中的远程回购

    git remote add origin url/to/repo
    
    现在执行一个git fetch

    这样,即使您的克隆在中间中断, > FETCH只会在下次运行时引入未获取的对象。

    但即使从远程存储库中删除了这两个文件,我也无法提取

    你用什么方法“删除这两个文件”

    您需要从存储库历史记录中的所有提交中删除它们

    要执行此操作,请参见示例:


    要检查您的
    git pull
    是否真的停止或非常慢:检查您的computer和承载中央repo的服务器之间的网络流量


    如果您有其他方法获取这两个大文件(例如:从U盘将它们复制到本地存储库…),您可以对本地存储库中的这些文件运行
    git add
    (不要运行
    git commit
    ),然后运行
    git reset.
    )以解除其存储


    这会将这些文件添加到本地repo中的已知对象列表中,并且无需再次下载它们。

    增加git缓冲区大小:

    git config--全局http.postBuffer 157286400


    应该将大小设置为解决此问题的最小值。

    可能值得考虑使用来高效地管理大型文件。有关更多详细信息,请参阅。谢谢!我肯定会这样做。但即使从远程存储库中删除这两个文件,我也无法提取。现在对象的数量更大。尽管如此,git Freegsy您可能会尝试更改git配置中的内存大小限制(例如pack.packSizeLimit core.packedGitLimit)试着运行
    git pull-v
    ,看看日志中是否有任何内容
    strace git pull
    的输出是什么?如果你在Linux上,你可能有这个命令,在Windows上,它在git for Windows的Bash shell中可用。