`git pull` 会破坏 git 存储库并截断文件

`git pull` 会破坏 git 存储库并截断文件

我将工作文件放在 Git 存储库中,并使用外部 SSD 在计算机/笔记本电脑之间同步。例如,如果我想repo1从 PC 同步到笔记本电脑,请按照以下步骤操作:

  1. 在 PC 上插入并安装外部 SSD
  2. 在PC上:cd /media/externalssd/repo1 && git pull ~/repo1
  3. 在 PC 上卸载并拔下外部 SSD
  4. 在笔记本电脑上插入并安装外部 SSD
  5. 在笔记本电脑上:cd ~/repo1 && git pull /media/externalssd/repo1

附加信息:我在 Linux 上使用 ZFS zfs-fuse

有时,在拔出过程中,USB 电缆连接不好,因此文件系统会“断开连接”,或者有时zfs-fuse守护进程会死机。重新启动zfs-fuse并重新安装文件系统后,有时我会发现笔记本电脑上的几个文件被截断,笔记本电脑上的存储库不再被识别为 git 存储库(“致命:不是 git 存储库(或安装点 /blah 之前的任何父级)”)。有时,SSD 上的存储库也会损坏。

这让我害怕。

哪些元素可能会截断文件?SSD?Linux??zfs-fuseGit?我应该如何避免这种损坏并拥有可靠的同步过程?

答案1

在我看来,您遇到的问题是 SSD 连接的可靠性问题,这本质上会导致任何想要从该驱动器读取或写入数据的软件出现问题。就您而言,该软件是git

如果您在从一个设备移动到另一个设备时无法信任您的连接,那么您可能应该重新评估您的工作流程。

根据以上信息,我相信您的 PC 和笔记本电脑位于同一区域,或者至少可以连接到同一 LAN。为什么不能将 SSD 永久连接到 PC,然后使用 git 通过网络推送/拉取文件?对于文件版本控制的所有意图和目的而言,该解决方案应该与交换 USB 驱动器一样快。

相关内容