Как настроить Git для использования с Dropbox?

Я использую 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


person asdca    schedule 03.09.2010    source источник


Ответы (1)


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

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

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

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

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

  • простой процесс синхронизации (один или несколько файлов)
  • быстрый процесс сохранения (с дополнительными пакетами)
  • масштабирование: если существует более одного участника, то есть если несколько человек обновляют одну и ту же ветку, вы можете изолировать их вклад при извлечении из них, ссылаясь на их пакеты с использованием другого удаленного имени (поскольку каждый пакет является голое репо, из которого можно вытащить).
person VonC    schedule 03.09.2010
comment
@nevan: спасибо за различные правки, они понадобились этому посту! - person VonC; 04.08.2011