Git с Dropbox - PullRequest
       22

Git с Dropbox

13 голосов
/ 03 сентября 2010

Я использую git в течение полугода или около того, и я не знаю, использую ли я git полностью.

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

  1. У меня есть рабочий стол и ноутбук. И то и другое есть Dropbox.
  2. Я инициализировал свои репозитории Dropbox делает git init --bare. А потом в пост-коммит скрипте моего рабочего стола, У меня есть git push --mirror dropbox.

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

Мой реальный вопрос: как мне настроить свой ноутбук? Я слышал несколько предложений:

  1. Потяните с моего рабочего стола, чтобы мой Происхождение ноутбука - настольный компьютер.
  2. Вытащить прямо из Dropbox, чтобы мой Происхождение ноутбука - Dropbox.

Я занимался номером 2, и я не знаю, правильно ли я поступаю. Мой рабочий процесс включает в себя:

  1. Каждый раз, когда я на своем ноутбуке, я делаю git pull (так как источником ноутбука является сам dropbox, а сам dropbox обновляется)
  2. Тогда, когда я проверяю ветку от dropbox до локальной ветки.
  3. После того, как я закончу с работой, я обязуюсь.
  4. Вот где я в замешательстве: я должен также вставить --mirror в мои репозитории dropbox (репозитории моего ноутбука)? У меня возникают некоторые трудности в этой области: иногда Dropbox не очень хорошо синхронизируется и т. Д.

В настоящее время выполнение git branch -r на моем рабочем столе после выполнения git push --mirror origin на моем ноутбуке не показывает моего недавнего коммитов на ноутбуке. Может кто-нибудь сказать мне, почему?

Я упоминал о вытягивании со своего рабочего стола напрямую, потому что таким образом я всегда могу инициализировать извлечение и я на 100% уверен, что синхронизация выполнена. С Dropbox я никогда не могу быть уверен на 100%, было ли обновление отправлено на сервер Dropbox

1 Ответ

20 голосов
/ 03 сентября 2010

Если вы хотите добавить промежуточный контейнер репо, Dropbox прекрасно подходит:

  1. Вы используете формат git bundle : он генерирует голое репо только с одним файлом (то есть Dropbox, скорее всего, будет правильно синхронизироваться это на любой из ваших компьютеров: это просто копирование одного файла, а не "всей структуры", из которой вы не уверены, что получите все назад).

  2. Вы используете инкрементный пакет для каждого из ваших сохранений (опять же, один файл за сохранение, легко вытащить с другой стороны, чтобы вернуться к тому, что было сделано).
    Назовите свой прирост после источника (ноутбука или настольного компьютера) и с указанием даты.
    По сути, вы извлечете из любого xxx.bundle, который вы еще не вытянули.

  3. Вы регулярно очищаете все промежуточные инкрементные пакеты, заменяя их полным пакетом из любого источника, который наиболее актуален

Эта модель позволяет:

  • простой процесс синхронизации (один или очень мало файлов)
  • быстрый процесс сохранения (с добавочными пакетами)
  • масштабирование : если существует более одного действующего лица, т.е. если несколько человек обновляют одну и ту же ветку, вы можете изолировать их вклады при извлечении из них, ссылаясь на их комплекты, используя разные удаленные имена (поскольку bundle - это голый репозиторий, из которого можно вытащить).
...