2011-09-06 29 views
9

因此,我正在做这个相当巨大的git-push,大约2 GB的数据被推送到我的服务器。突然我的wifi连接死亡。所以现在在通过慢速连接传输超过250 MB之后,我必须重新开始,只为了冒险整个事情。继续中断的git-push(恢复上传)

[/咆哮]

当执行GIT中推到的SSH远程,是否有任何的方式继续在转印后会失败?

如果没有,通过片状连接将存储库转移的最佳方式是什么,同时避免必须上传全部的文件?

谢谢!

+0

我很确定服务器端会在连接关闭时清除任何不完整的对象传输,但我不是100%确定的。 – cdhowie

+0

我想如果它被打断了,你必须再次从头开始。 – manojlds

回答

3

将您的.git的.git目录rsync复制到新目录,例如在服务器上使用newdir/.git。然后ssh到该服务器,并对任何你有的分支做git结账。然后添加您想要推送到本地的本地回购作为远程并执行本地推送。

由于rsync不受网络中断影响,因此只要发生这种情况,您应该可以继续使用。

+0

在启动rsync之前,您可以将服务器上的现有.git目录复制到newdir/.git目录,但由于git创建包文件的方式,可能无法为需要传输的数据节省很多。 – holygeek

+0

好主意,但我想这可能是低效的,如果回购甚至比推动要做的更大。 – a3nm

+1

请务必使用rsync -P,以允许部分传输。 – user1001630