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

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

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


person BanksySan    schedule 12.07.2015    source источник
comment
Вы пробовали git log <branch>, где <branch> означает название интересующей ветки?   -  person jub0bs    schedule 12.07.2015
comment
@Jubobs, нет, я этого не делал. Я должен просто попробовать очевидное, прежде чем прибегать к поиску в Интернете и находить экзотические предложения вокруг cherry и rev-list.   -  person BanksySan    schedule 12.07.2015


Ответы (1)


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>.

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