Как остановить OneDrive от загрузки git .exe на Windows? - PullRequest
0 голосов
/ 18 марта 2020

Я некоторое время использовал Git на Windows, но недавно изменил настройку и получил это.

Почти для каждой команды для Git Bash (также для PowerShell и Github Desktop) я получаю

git.exe is being downloaded on OneDrive

(перевод может не совпадать)

Параметр, который недавно изменился, перемещает мои репозитории в папку OneDrive, чтобы синхронизировать их между двумя сеансами: рабочим столом и удаленной виртуальной машиной.

Я вижу, что это не может быть идеальным, но это действительно работает для меня, так как у меня одинаковые настройки в обеих сессиях, и я не привык к многим commit-pu sh - вытащить. Не главная топи c здесь, но не стесняйтесь комментировать.

(Правка): При чтении решения, есть другие способы установить эту синхронизацию, которая не портится с внутренними элементами Git , Ищите это вместо этого. Спасибо.

В любом случае странным является то, что уведомления происходят только на удаленной виртуальной машине, но не на рабочем столе.

Я видел некоторые уведомления о некоторых файлах в репозиториях, которые я затем приписываю OneDrive как любопытное внимание при каждом перемещении , которое я выполняю, при перемещении файла . Но потом я также видел файлы, о которых я не знаю, и к уведомлению всегда прикрепляется git.exe.

В первом сценарии я попытался настроить уведомления для OneDrive. Кто-то может сказать, что у Microsoft есть фон для запрета пользователям настраивать свои уведомления, поэтому я все еще ищу.

Спасибо.

1 Ответ

2 голосов
/ 19 марта 2020

Большинство инструментов синхронизации файлов, таких как 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 должны быть параметры конфигурации, позволяющие контролировать синхронизацию.

...