Ответ 1
Это команда, которую нужно выполнить в зеркале:
git remote update
Я создал репозиторий git для зеркального отображения живого сайта (который представляет собой не-голый репозиторий git):
git clone --mirror ssh://[email protected]/path/to/repo
Теперь, чтобы сохранить этот клоун зеркала обновленным всеми изменениями из его удаленного источника, какую команду или команды я должен использовать?
Я бы хотел, чтобы все обновлялось: коммиты, ссылки, перехваты, ветки и т.д.
Спасибо!
Это команда, которую нужно выполнить в зеркале:
git remote update
Что касается коммитов, ссылок, веток и "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
.
clone
/update
, но также stashes, rerere и т.д. Итак, для строгой резервной копии rsync
или эквивалент действительно будет способом. Поскольку это действительно не обязательно в моем случае (я могу позволить себе не иметь крючков, задержек и т.д.), Как я уже сказал, я буду придерживаться remote update
.Спасибо! Улучшилось немного моего собственного "git-fu"... :-)
Смотрите здесь: Git не клонирует все ветки на последующих клонах?
Если вы действительно этого хотите, потянув ветки вместо push --mirror
, вы можете посмотреть здесь:
"fetch -all" в git голом репозитории не синхронизируются локальные ветки с удаленными
Этот ответ содержит подробные инструкции о том, как добиться этого относительно легко: