Синхронизация репозитория .git между компьютерами вызывает проблему?

У меня есть настройка, при которой вся папка projects синхронизируется в режиме реального времени на нескольких компьютерах (например, Dropbox). Внутри этой папки у меня может быть отдельная папка проекта, например project-A. Затем внутри папки проекта у меня всегда есть папки source и documents.

Я хочу оставить под контролем версий папку source, но не папку documents. Поэтому я клонирую исходники в папку source. Это означает, что мой локальный репозиторий git будет синхронизирован между несколькими машинами (возможно, как с Linux, так и с Windows).

Это вызовет проблемы и испортит мой репозиторий git каким-то образом, о котором я не знаю? Я не знаю, смогу ли я отключить синхронизацию исходных папок, и даже если бы я мог, кто-то другой мог бы забыть это сделать и иметь проблемы. Я думал о том, чтобы разделить исходный код и документы на отдельные корневые папки, где синхронизируется только одна из них, а другая нет, но мне бы очень хотелось, чтобы все файлы проекта хранились в одной папке, если это возможно.

Любые идеи о том, как лучше всего это сделать?

[править] Для пояснения, репозиторий git клонирован из Kiln (онлайн-репозиторий git), но так уж получилось, что местоположение клонировано и синхронизировано между несколькими компьютерами.


git
person Community    schedule 19.12.2015    source источник


Ответы (3)


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

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

Я также пробовал это с Transporter с гораздо меньшим успехом. Наблюдатель за файлами Transporter выглядит не так хорошо, что приводило к конфликтам каждые несколько недель. Кроме того, синхронизация происходит намного медленнее — в то время как Dropbox, кажется, сопоставляет вещи в течение нескольких секунд, если обе машины подключены к одной сети, у Transporter среднее время составляет 30 секунд, но иногда доходит до нескольких минут.

person Drew Stephens    schedule 19.12.2015

Вообще говоря, синхронизация репозиториев Git/Mercurial с Dropbox — это плохо идея, так как вы можете довольно легко получить поврежденный и невосстановимый репозиторий. Используйте GitHub/BitBucket для совместного использования ваших репозиториев на нескольких компьютерах.

person Anton Gogolev    schedule 19.12.2015
comment
Я, вероятно, недостаточно точно объяснил, но представитель git уже находится в такой службе, как BitBucket, но папка, в которую я ее извлекаю / клонирую, синхронизируется на нескольких машинах. - person ; 19.12.2015

Если вы используете только исходники, а не git функции репозитория, то, конечно, это безопасно.

Однако, если вы на самом деле планируете использовать pull/push/diff или что-то еще, что на самом деле использует git, то это плохая идея.

rsync часто используется для синхронизации репозиториев git, и его безопасно использовать для этой цели, но Dropbox — нет, так как это может привести к повреждению.

person mkrufky    schedule 19.12.2015