2011-09-06 58 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