如何通过小批量获取Git提交

时间:2016-12-20 19:17:19

标签: git git-fetch

是否可以在不获取所有丢失的提交的情况下获取远程存储库,但是可以批量提交100个提交?

我的计算机上有一个存储库,用作其他存储库的参考,以加快部署时间。不幸的是,我没有更新它一段时间,它与远程存储库不同步。 GitHub非常慢(40-50kbps),下载约150mb。当Git停止下载81%时,这就更不好笑了。

有没有办法减少提取的提交数量?我正在考虑使用--depth参数,但我没有一个浅的Git存储库,我不希望它成为一个。此外,--depth似乎不能作为从此日期到此日期的提取提交(这也很好)。所以如果可能的话,我可以每天提交提交。

问题是当提取失败时,我必须从开始提取之前的地方重新启动。我希望能够获取更小的块,所以如果它失败了,我将不必一次又一次地低速下载150mb。

1 个答案:

答案 0 :(得分:1)

如果可以的话,我第二次@Vampire's suggestion尝试切换协议;我发现SSH在传输Git数据方面比HTTPS更可靠。

AFAIK,无法列出远程存储库中的提交(您只能获取给定分支的最新SHA)。 (如果是,那么我本来就修改了my answer to "How to set a maximum commit count on git push"。)但是,如果你有一个提交SHA方便,you can specify the commit to download使用:

git fetch origin 96de5297df870:refs/remotes/origin/master

(这会更新您的origin/master跟踪分支以指向该提交。)

由于您的代码托管在GitHub上,我建议您检查GitHub上的日志,并获取此类特定提交,直到您获得最新信息。另外,我建议您bisect提交一次,确定一次可以下载多少次提交,而不是一次提取一定数量的提交。