如果 git pull 在中途不断中止,它最终会成功吗?

如果 git pull 在中途不断中止,它最终会成功吗?

我刚开始使用SparkleShare在计算机之间同步我的文档。SparkleShare 几乎在所有事情上都使用 Git。我最初的几个提交很大:每个都有几 GB。它们已成功推送到 Git 服务器。

我家里的网络现在很不稳定,所以我的第二台电脑很难完成 git pull:网络连接中途中断。

我的问题是:如果第二台计算机继续尝试拉取单个大型变更集,它最终会成功吗?这是一个累积动作,还是在网络连接中断时它会失去位置?

从我对 Git 协议的了解来看,每次成功下载每个 blob(文件)时,拉取操作似乎都会取得整体进展。提交只是指向 blob 的小文件。因此,我怀疑第二台 PC 最终会同步,尽管网络不稳定,除非网络不稳定到 PC 永远没有机会完整下载单个 blob。但我希望得到一些确认。

答案1

git pull只是运行的语法糖git fetch,然后git mergegit fetch单独下载提交,因此git pull再次运行应该从您上次中断的地方继续,因为 git 不需要重新下载已经下载的 blob。

相关内容