Другой подход:
Все ответы, включая @ Dan answer , который является самым популярным, посвящены идее использования Dropbox для централизации общего репозитория вместо использования службы, ориентированной на git, такой как github, bitbucket и т. Д. .
Но, поскольку в первоначальном вопросе не указано, что на самом деле означает «эффективно использовать Git и Dropbox вместе», давайте поработаем над другим подходом:
«Использование Dropbox для синхронизации только рабочего дерева.»
Руководство содержит следующие шаги:
внутри каталога проекта, создается пустой каталог .git
(например, mkdir -p myproject/.git
)
отменить синхронизацию каталога .git
в Dropbox. Если вы используете приложение Dropbox: перейдите в «Настройки», «Синхронизация» и «выберите папки для синхронизации», где каталог .git
должен быть не отмечен. Это удалит каталог .git
.
запустите git init
в каталоге проекта
Он также работает, если .git
уже существует, тогда выполните только шаг 2. Dropbox сохранит копию файлов git на веб-сайте.
Шаг 2 заставит Dropbox не синхронизировать структуру git-системы, что является желаемым результатом для этого подхода.
Почему можно использовать этот подход?
У изменений, которые еще не помещены, будет резервная копия Dropbox, и они будут синхронизироваться между устройствами.
В случае, если Dropbox завинчивает что-то во время синхронизации между устройствами, git status
и git diff
будет полезно разобраться.
Экономит место в учетной записи Dropbox (там не будет храниться вся история)
Это позволяет избежать проблем, высказанных @dubek и @Ates в комментариях к ответу @ Dan, и проблем @clu в другом ответе .
Существование удаленного где-то еще (github и т. Д.) Будет нормально работать при таком подходе.
Работа в разных ветках приносит некоторые проблемы, о которых нужно позаботиться:
Одна потенциальная проблема заключается в том, что Dropbox (неоправданно?) Синхронизирует потенциально много файлов, когда проверяются разные ветви.
Если на двух или более синхронизированных устройствах Dropbox проверены разные ветви, несущественные изменения на обоих устройствах могут быть потеряны,
Одним из способов решения этих проблем является использование git worktree
для хранения проверок филиалов в отдельных каталогах.