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


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

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

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

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

спасибо!

3 114

3 ответа:

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

git remote update

относительно коммитов, ссылок, ветвей и " и так далее", Магнус ответ просто работает (git remote update).

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

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

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

I узнал:

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

  • есть еще данные, например ".git / description" папка, которая не клонируется, так же как и крючки.

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

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

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

хорошо... Я просто забуду о клонировании крючков и буду придерживаться способа "git remote update".

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

спасибо! Улучшил немного свой собственный "ГИТ-фу"... : -)

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

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

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

этот ответ содержит подробные шаги о том, как достичь этого относительно легко: