Git陷入写作对象

时间:2016-01-04 22:48:44

标签: git github git-push

我正在尝试git push --all,它只是挂起写作对象

10.0-final-project git:(master) ✗ git push --all
Counting objects: 134, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (129/129), done.
Writing objects:  32% (44/134), 321.56 MiB | 231.00 KiB/s

321.56 MiB和231.00 KiB / s继续上涨。

我尝试过使用git config --global http.postBuffergit config --global sendpack.sideband false

什么都没有用。解决此问题的方法是什么?

2 个答案:

答案 0 :(得分:6)

您似乎已向GIT添加了 HUGE 二进制文件或文件夹。

这不是你应该用git做的事。

如果是这种情况,请考虑以下解决方案:Git Large File Storage

Another relative article可以在这里找到一些清洁回购的示例代码。

第1步:识别大文件。

  

我们需要搜索所有历史记录,以找到适合删除的文件。据我所知,这是非常重要的,所以这里有一个复杂的命令,列出了超过一百万字节的所有文件修订版本的大小总和。在Mac上运行它。

git rev-list master | while read rev; do git ls-tree -lr $rev | cut -c54- |     grep -v '^ '; done | sort -u | perl -e '
  while (<>) {
      chomp;
      @stuff=split("\t");
      $sums{$stuff[1]} += $stuff[0];
  }
  print "$sums{$_} $_\n" for (keys %sums);
 ' | sort -rn >> large_files.txt

第2步:删除它们,就像它们从未在那里一样。

这是有趣的部分。如果large_files.txt仍然与以前格式相同,请执行以下操作:

git filter-branch --tree-filter 'rm -rf `cat /full/path/to/large_files.txt |
    cut -d " " -f 2` ' --prune-empty <BRANCHES>

答案 1 :(得分:0)

背景:
我的一个同行错误地上传了一堆由 CocoaPods 在 Pods 目录下生成的大文件和相关更改(是的,它通常被 git-ignored,但由于一些路径更改,它被上传了。)。所以我尝试的是改变最后一次提交并尝试强制更新远程分支。

它的上传速度很慢,就像 OP 的帖子描述中显示的那样。显然,我等待了大约 30 分钟,以为它会完成,但我不确定变化有多大,因为我之前无法检查。

我做了什么?
我只是通过点击停止上传:CTRL + C然后重试git push -f(在我的例子中它是一个强制更新,因此标志-f

它运行迅速并上传。令人惊讶的是,上传大小并没有很大,而是 22MB。