"Google Drive может повредить репозитории" в Github Desktop

Я в основном работаю из Google Drive папка, и она упоминается в GitHub Desktop при создании нового репозитория"Google Drive может повредить репозитории".

enter image description here

каковы конкретно проблемы и что можно сделать, чтобы избежать повреждения репозиториев?

2 ответов


мы поставили это предупреждение на место, потому что мы видели, что довольно много пользователей получают свои репозитории повреждены различными облачными решениями для хранения данных, такими как Google Drive и Dropbox.

проблема сводится к состоянию гонки, когда Git быстро создает и изменяет файлы, а решение для хранения пытается идти в ногу. В некоторых сценариях это может привести к тому, что файл IO не будет вести себя так, как ожидает Git. Решение для хранения также может ошибочно восстановить файл, который должен был быть удален. Хотя такие проблемы чаще всего возникают, когда Вы делитесь репозиторием с другими людьми, мы видели проблемы с людьми, которые используют хранилище только для резервного копирования.

лучший способ резервного копирования репозиториев Git-это совершать ранние и частые изменения в GitHub, даже если вы отправляете их в ветви незавершенного производства, а не в главные или другие долгосрочные ветви.

Если вы не используете GitHub или любой другой удаленный репозиторий является локальным, я бы рекомендовал создать "голый" репозиторий внутри вашего Google Диска, а затем клонировать репозиторий в место за пределами Google Диска и работать оттуда. Всякий раз, когда вы внесли изменения, вы можете переместить их в голый репозиторий. Таким образом, у вас будет две копии всех ваших данных в случае повреждения версии Google Диска.


Google Drive уже испортил мою жизнь два раза (да, мне нужно было увидеть второй, чтобы поверить).

мое решение, чтобы не забыть нажать на безопасное место, я создал несколько автоматических задач. Вы можете создать запланированную задачу для фиксации и переноса изменений каждые X часов / дней...так далее. одна работа-в-прогресс Бранш например. Используя системы на основе Unix (Mac / Linux), вы можете использовать crontab.

создать bash-скрипт, я.е: /home/myScripts/autoGit.sh

# add and commit changes
cd /home/myProject && /home/myGit commit -a -m "automated commit/push `date`"

# push git server
cd /home/myProject && /home/myGit push origin wip

затем вы создаете задание crontab по мере необходимости:

crontab -e

затем добавьте команды в файл

mailto: your@email.com
59 * * * 1,2,3,4,5 /home/myScripts/autoGit.sh

это будет совершать и толкать ваше РЕПО каждые 59 минут на пн, вт, ср, чт, пт.

надеюсь, что это помогает