Назад | Перейти на главную страницу

`git pull` уничтожает репозиторий git и усекает файлы

Я помещаю рабочие файлы в репозитории Git и синхронизирую между компьютерами / ноутбуками с помощью внешнего SSD. Так, например, если я хочу синхронизировать repo1 с моего ПК на мой ноутбук, вот шаги, которые нужно сделать:

  1. подключите и установите внешний SSD на ПК
  2. на ПК: cd /media/externalssd/repo1 && git pull ~/repo1
  3. отключить и отключить внешний SSD на ПК
  4. подключите и установите внешний SSD на ноутбук
  5. на ноутбуке: cd ~/repo1 && git pull /media/externalssd/repo1

Дополнительная информация: я использую ZFS в Linux, используя zfs-fuse.

Иногда, посреди тяги, соединение USB-кабеля не очень хорошее, поэтому файловая система «отключается» или иногда zfs-fuse демон умирает. После перезапуска zfs-fuse и перемонтировать файловые системы, иногда я получаю усечение нескольких файлов на ноутбуке, и репозиторий на ноутбуке больше не распознается как репозиторий git («фатальный: не репозиторий git (или любой родительский объект до точки монтирования / мля) "). Иногда повреждается и репозиторий на SSD.

Это меня пугает.

Какие элементы, вероятно, обрезают файлы? SSD? Linux? zfs-fuse? Git? Как мне избежать этого повреждения и получить надежный процесс синхронизации?

Мне кажется, что у вас проблемы с надежностью подключения SSD, что по сути вызовет проблемы с любым программным обеспечением, которое пытается читать или писать с этого диска. В вашем случае это ПО git.

Если вы не можете доверять своим соединениям при переходе с устройства на устройство, вам, вероятно, следует пересмотреть свой рабочий процесс.

Из приведенной выше информации я полагаю, что ваш компьютер и ноутбуки находятся в одном месте или, по крайней мере, могут быть подключены к одной и той же локальной сети. Почему вы не можете подключить SSD к ПК на постоянной основе, а затем использовать git для отправки / получения файлов по сети? Это решение должно быть относительно быстрым, как замена USB-накопителя, для всех намерений и целей управления версиями файлов.