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

83

Нахожусь на ветке с некоторыми изменениями. Смена ветки - это боль, поскольку некоторые файлы заблокированы процессами, поэтому для изменения ветки мне пришлось бы остановить все процессы, у которых есть блокировки, а затем stashизменения, прежде чем проверять другую ветку, чтобы увидеть ее журнал.

Можно ли просмотреть журнал другой ветки, не проверяя его?

БэнксиСан
источник
1
Пробовали git log <branch>, где <branch>стоит название интересующей отрасли?
jub0bs
2
@Jubobs, нет, не знал. Я должен просто попробовать очевидное, прежде чем прибегать к поиску в Интернете и поиску экзотических предложений вокруг cherryи rev-list.
BanksySan

Ответы:

126

TL; DR

Использовать

git log <branch>

где <branch>- название интересующей отрасли.

На git-logстранице руководства ...

Упрощенная версия git-logконспекта приведены в справочной странице этой работы команды является

git log [<revision range>]

Ниже вы найдете следующий отрывок:

Если нет <revision range>, по умолчанию используется HEAD(т.е. вся история, ведущая к текущей фиксации)

Другими словами, git logэквивалентно git log HEAD. Если вы находитесь в ветке с именем mybranch, скажем, эта команда также эквивалентна git log mybranch.

Вы хотите ограничить журнал коммитами, доступными из другой ветки, то есть ветки, в которой вы в данный момент не находитесь. Самый простой способ сделать это - явно передать имя интересующей ветки git log:

git log <branchname>

См. Справочную страницу gitrevisions для получения более подробной информации о многих формах, которые <revision-range>может принимать аргумент.

jub0bs
источник
Похоже, что для запуска "git log", подобного этому, у вас должна быть локальная проверка ветки. По крайней мере, git 2.27.0 так себя ведет.
a_girl
@a_girl Не понимаю, что вы подразумеваете под "выписано на месте" здесь. Вы можете запустить это в локальной ветке (например master), независимо от того, извлечена она или нет, и в удаленной ветке (например origin/master).
jub0bs
1
ooooohhh, теперь я понял. Я попробовал, git log mybranchи он выдает ошибку, но затем, когда я запустил, git checkout mybranch; git checkout master; git log mybranchон работал даже без "origin /". Вот почему я подумал, что мне нужно сначала проверить свою ветку. Но мне просто пришлось использовать «git log origin / mybranch», чтобы искать историю удаленной ветки. Спасибо.
a_girl