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
получить журнал для удаленных филиалов.