Большинство инструментов синхронизации файлов, таких как OneDrive и Dropbox, работают путем синхронизации файлов данных по файлам. Это отличный подход, если вы работаете с одним документом или таблицей. Тем не менее, это не так хорошо, когда вы работаете с Git хранилищем.
При переключении между ветвями или создании коммита, Git изменяется и создает множество файлов одновременно. Для правильной синхронизации все созданные файлы должны быть записаны в одинаковом порядке: все BLOB-объекты должны быть записаны, затем деревья, затем коммиты, а затем ссылки могут быть обновлены. Если вы делаете это не по порядку, ваш репозиторий может быть поврежден, поскольку у вас могут быть ветви, ссылающиеся на несуществующие объекты (или объекты, ссылающиеся на другие несуществующие объекты).
In Кроме того, эти инструменты могут в конечном итоге удалить файлы, которые вы хотели иметь в рабочем дереве, или воссоздать файлы, которые вы не делали. Таким образом, в целом, вы не хотите синхронизировать c любой Git репозиторий, используя один из этих инструментов.
Вы можете написать пакетный файл с git bundle
и syn c, или вы можете используйте rsync
для синхронизации c хранилища при условии, что оно бездействует (не изменяется), когда вы это делаете. Обратите внимание, что если вы синхронизируете c рабочее дерево, Git потребуется обновить sh всех файлов, когда вы синхронизируете c его с новым компьютером, а также Git не пытается защитить от ненадежных пользователи, которые имеют доступ к рабочему дереву.
Также не очень хорошая идея синхронизировать c вашу Git саму установку через OneDrive, что, как кажется, может происходить. Вместо этого установите Git для Windows на каждой машине независимо и не пытайтесь синхронизировать c между ними. В OneDrive должны быть параметры конфигурации, позволяющие контролировать синхронизацию.