Как обновить клон git --mirror?
Я создал репозиторий git для зеркального отображения живого сайта (который представляет собой не-голый репозиторий git):
git clone --mirror ssh://user@example.com/path/to/repo
Теперь, чтобы сохранить этот клоун зеркала обновленным всеми изменениями из его удаленного источника, какую команду или команды я должен использовать?
Я бы хотел, чтобы все обновлялось: коммиты, ссылки, перехваты, ветки и т.д.
Спасибо!
Что касается коммитов, ссылок, веток и "et cetera", Магнус отвечает просто работает (git remote update
).
Но, к сожалению, нет способа clone
/зеркало/update
крючки, как я хотел...
Я нашел эту очень интересную тему о клонировании/зеркалировании крючков:
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
Я научился:
-
Перехватчики не считаются частью содержимого репозитория.
-
Существует больше данных, таких как папка
.git/description
, которая не клонируется, так же, как и крючки. -
Крюки по умолчанию, которые появляются в
hooks
поступают изTEMPLATE_DIR
-
Существует этот интересный
template
функции на мерзавца.
Таким образом, я могу либо игнорировать это "клонировать предмет крючков", либо пойти на стратегию rsync
, учитывая цели моего зеркала (только резервное копирование + источник для других клонов).
Ну... Я просто забуду о клонировании клонов и придерживаюсь способа git remote update
.
- Sehe только что указала, что не только "перехватчики" не управляются процессом
clone
/update
, но также stashes, rerere и т.д. Итак, для строгой резервной копииrsync
или эквивалент действительно будет способом. Поскольку это действительно не обязательно в моем случае (я могу позволить себе не иметь крючков, задержек и т.д.), Как я уже сказал, я буду придерживатьсяremote update
.
Спасибо! Улучшилось немного моего собственного "git-fu"... :-)
Смотрите здесь: Git не клонирует все ветки на последующих клонах?
Если вы действительно этого хотите, потянув ветки вместо push --mirror
, вы можете посмотреть здесь:
"fetch -all" в git голом репозитории не синхронизируются локальные ветки с удаленными
Этот ответ содержит подробные инструкции о том, как добиться этого относительно легко:
Другие вопросы по меткам git git-remote git-fetch git-clone или Задайте вопрос