如何打印当前分支以外的分支的日志?

Posted

技术标签:

【中文标题】如何打印当前分支以外的分支的日志?【英文标题】:How can I print the log for a branch other than the current one? 【发布时间】:2015-09-30 20:03:41 【问题描述】:

我在一个有一些变化的分支上。更改分支很痛苦,因为某些文件被进程锁定,所以要更改分支,我必须停止所有有锁的进程,然后 stash 进行更改,然后再检查另一个分支以查看其日志。

是否可以查看不同分支的日志而无需检查?

【问题讨论】:

你试过git log <branch>,其中<branch>代表感兴趣的分支的名称? @Jubobs,不,我没有。在求助于搜索互联网并在cherryrev-list 周围寻找奇特的建议之前,我应该先尝试一下。 【参考方案1】:

TL;DR

使用

git log <branch>

其中&lt;branch&gt; 是感兴趣的分支的名称。

来自git-log 手册页...

that command's man page 中给出的git-log 概要的简化版本是

git log [<revision range>]

再往下,你可以找到以下段落:

当没有指定&lt;revision range&gt; 时,默认为HEAD(即导致当前提交的整个历史记录)

换句话说,git log 等价于git log HEAD。如果你在一个名为mybranch 的分支上,比如说,这个命令也相当于git log mybranch

您希望将日志限制为可从另一个分支访问的提交,即您当前不在的分支。最简单的方法是将感兴趣的分支的名称显式传递给git log

git log <branchname>

有关&lt;revision-range&gt; 参数可以采用的多种形式的更多详细信息,请参阅gitrevisions manpage。

【讨论】:

看来您必须先在本地签出分支才能像这样运行“git log”。至少 git 2.27.0 的行为是这样的。 @a_girl 不确定您所说的“本地签出”是什么意思。您可以在本地分支(例如master)上运行它,无论它是否被检出,也可以在远程分支上(例如origin/master)。 ooooohhh,现在我明白了。我尝试了git log mybranch,但它抛出了一个错误,但是当我运行git checkout mybranch; git checkout master; git log mybranch 时,即使没有“origin/”它也能正常工作。这就是为什么我认为我需要先检查我的分支。但我只需要使用“git log origin/mybranch”来查找远程分支的历史记录。谢谢。

以上是关于如何打印当前分支以外的分支的日志?的主要内容,如果未能解决你的问题,请参考以下文章

如何查看除 master 以外的分支的 GitHub Contributors Graph?

如何运行 git log 以仅查看特定分支的更改?

在 github 中的 master 分支以外的分支上搜索提交

如何使用SvnKit获取两个分支之间的日志?

Git:从 master 以外的分支克隆

如何找到远程git仓库的默认分支?