2

我正在学习如何使用 git,我想知道在 git fetch 命令因电源故障或连接问题而中断之前获取的文件会变成什么。在中断之前获取的文件会被复制到我的计算机吗?

4

2 回答 2

3

Agit fetch将从远程存储库传输对象。为了维护 Git 的完整性,只有完整的对象才会写入本地存储库。因此,如果提取中断,您将得到部分对象,这意味着提取未完成,但没有单个对象会损坏。在随后的提取中,Git 将再次计算丢失的对象并获取这些对象。

于 2012-12-02T17:11:53.407 回答
1

当 git fetch 开始接收对象时,它会在存储库的目录中创建一个临时文件 objects/pack来保存新对象。只有在获取完成后,该临时文件才会被重命名为其他 git 进程将遵循的名称。如果提取被中断,该临时文件将大部分被忽略,包括另一个提取;因此,在中断之前传输的任何内容都将再次传输。

及时(默认为 2 周)临时包文件将有资格被垃圾收集过程删除。您可以通过运行来强制执行此操作git gc --prune=now

于 2012-12-02T19:12:06.023 回答