Как обновить клон git --mirror?

Я создал репозиторий git для зеркального отображения живого сайта (который представляет собой не-голый репозиторий git):

git clone --mirror ssh://user@example.com/path/to/repo

Теперь, чтобы сохранить этот клоун зеркала обновленным всеми изменениями из его удаленного источника, какую команду или команды я должен использовать?

Я бы хотел, чтобы все обновлялось: коммиты, ссылки, перехваты, ветки и т.д.

Спасибо!

114
задан J. Bruni 27 мая '11 в 12:16
источник поделиться

3 ответов

Это команда, которую нужно выполнить в зеркале:

git remote update
173
ответ дан ralphtheninja 27 мая '11 в 14:12
источник поделиться

Что касается коммитов, ссылок, ветвей и "et cetera", Магнус отвечает просто работает (git удаленное обновление).

Но, к сожалению, нет способа клонировать/зеркало/обновлять крючки, как я хотел...

Я нашел эту очень интересную тему о клонировании/зеркалировании крючков:

http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread

Я узнал:

  • "Крючки" не считаются частью содержимого репозитория.

  • Существует больше данных, таких как папка ".git/description", которая не клонируется, как и крючки.

  • Крюки по умолчанию, которые появляются в каталоге "hooks", происходят из TEMPLATE_DIR

  • Есть эта интересная функция "шаблона" на git.

Итак, я могу либо игнорировать это "клонировать предмет крючков", либо идти за стратегией rsync, учитывая цели моего зеркала (только резервное копирование + источник для других клонов).

Ну... Я просто забуду о клонировании клонов и придерживаюсь способ "git удаленного обновления".

  • Sehe только что указала, что не только "крючки" не управляются процессом клонирования/обновления, но также stashes, rerere и т.д. Итак, для строгой резервной копии rsync или эквивалент действительно будет способом идти. Поскольку это не обязательно в моем случае (я могу позволить себе не иметь крючков, задержек и т.д.), Как я уже сказал, я буду придерживаться "удаленного обновления".

Спасибо! Улучшено немного моего "git -fu"...: -)

6
ответ дан J. Bruni 27 мая '11 в 17:55
источник поделиться

Смотрите здесь: Git не клонирует все ветки на последующих клонах?

Если вы действительно этого хотите, потянув ветки вместо push --mirror, вы можете посмотреть здесь:

"fetch -all" в git голом репозитории не синхронизируются локальные ветки с удаленными

Этот ответ содержит подробные инструкции о том, как добиться этого относительно легко:

3
ответ дан sehe 27 мая '11 в 14:56
источник поделиться

Другие вопросы по меткам