我该如何打印当前分支以外的其他分支的日志?


82

我正在进行一些更改。更改分支是很痛苦的事情,因为某些文件已被进程锁定,因此要更改分支,我必须先停止所有有锁的进程,然后再stash更改,然后再签出另一个分支以查看其日志。

是否可以查看其他分支的日志而不必将其签出?


1
您是否尝试过git log <branch>,在哪里<branch>代表感兴趣的分支的名称?
jub0bs 2015年

2
@Jubobs,不,我没有。我应该先尝试一下显而易见的方法,然后再搜索互联网并在cherry和周围找到异乎寻常的建议rev-list
BanksySan

Answers:


123

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>


看来您必须首先在本地将分支检出,才能像这样运行“ 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.