如何调试:git pull在git pull期间挂起(总是在54%)

时间:2012-11-01 12:16:56

标签: git debugging pull

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

  • 我该如何调试?

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

3 个答案:

答案 0 :(得分:1)

  

但即使从远程存储库中删除这两个文件,我也无法拉动。

您使用什么方法“删除这两个文件”?

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

为此,请参阅:How to remove/delete a large file from commit history in Git repository?

要检查@Override public int getItemCount() { return 1; } 是否真的停滞不前还是非常慢:检查计算机与托管中央存储库的服务器之间的网络流量。

如果您有其他方法可以获取2个大文件(例如:从usb棒中将它们复制到本地存储库中......),您可以运行git pull(不要运行git add)来自本地存储库的这些文件,然后git commit来取消它们。

这应该将这些文件添加到本地仓库中的已知对象列表中,git reset .不需要再次下载它们。

答案 1 :(得分:0)

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

所以,我不建议你每次都从头开始一次又一次地克隆一个回购,而是建议你在一个新创建的回购中进行一次获取。

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

cd repo_name && git init

将原始仓库添加为此仓库中的遥控器

git remote add origin url/to/repo

现在做一个git fetch

这样,即使你的克隆在中间断开,fetch也只会在下次运行中引入未被攻击的对象。

答案 2 :(得分:0)

增加Git缓冲区大小:

  

git config --global http.postBuffer 157286400

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