【发布时间】:2018-02-20 10:31:56
【问题描述】:
我在一个发展中国家,我在此期间正在努力继续从事一个大型项目。我目前正在尝试通过不可靠的 100 kbps 连接推送大约 10 GB 的更改。我不知道到底出了什么问题,但我无法完成推送,现在已经结束了几次,出现此错误:
fatal: The remote end hung up unexpectedly
fatal: sha1 file '<stdout>' write error: Broken pipe
过去有几次我可以使用这个命令推送我的更改:
while ! git push; do sleep 30; done
我通常让它在一夜之间运行,然后我醒来发现在几次失败后推动完成了。但这一次,我已经尝试了好几天,但由于管道破裂,推动一直失败。我认为我的提交太大了,在停电和互联网中断之间的几个小时内它无法工作。
有没有办法以较小的增量推送我的提交?或者有没有一种方法可以从上一次断管的地方开始,这样我就不必每次都从头开始?
【问题讨论】:
-
如果您能够在您本国的可靠互联网系统上运行 Git 命令,您可以使用
git bundle在不可靠互联网系统上构建一个捆绑文件(大致相当于git push将发送的内容),然后使用一些可重新启动的传输(ftp、curl 等)来发送捆绑包。一旦你有了可靠的捆绑包,你就可以在上面运行git fetch。
标签: git push broken-pipe