Git обновление журнала пустого хранилища

Мне нужно регулярно извлекать журналы git для всех веток нескольких репозиториев. В то время как я мог их клонировать, а затем выполнить git fetch, я подумал о том, чтобы сэкономить место на диске и время и клонировать их только как голые:

git clone --bare repoUrl

После клона все журналы и ветки обновлены. Я могу выдать git log --all и я вижу все изменения до момента клонирования.

Однако я не могу получить изменения из удаленного репо, когда он обновляется. Т.е. если я выдаю:git fetch --all а потом git log --allЯ не вижу изменений, произошедших в удаленном репо.

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

Я пытался:

  • git fetch но, кажется, не получить никакого обновления (т.е. git log --all не показывает никаких изменений).
  • git fetch origin master:master только обновляет мастер ветку
  • git branch -r ничего не показывает
  • git branch -a показывает только ветки доступные на момент клона
  • git remote -v показывает правильно URL удаленного хранилища.

2 ответа

Решение

Я нашел решение, читая этот ответ, связанный с похожим вопросом (мне нужно только извлечь журналы, а не извлекать код).

После клонирования я должен добавить:

git config remote.origin.fetch "+*:*"

так что git может отслеживать все ветви, даже удаленные. Затем, выдав git fetch --all --prune а также git log --all Я вижу все изменения.

Использование git log --remotes после git fetch --all получить журнал для удаленных филиалов.

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