498

我有一个本地分支跟踪远程/主分支。运行git-pulland后git-log,日志将显示远程跟踪分支以及当前分支中的所有提交。但是,由于对远程分支进行了如此多的更改,我只需要查看对当前本地分支所做的提交。

用于仅显示特定分支的提交的 Git 命令是什么?

笔记:

配置信息:

[branch "my-branch"]
  remote = origin
  merge = refs/heads/master
4

9 回答 9

659

假设您的分支是从 中创建的master,然后在分支中(即,您已签出分支):

git cherry -v master

或者

git log master..

如果您不在分支中,则可以将分支名称添加到“git log”命令中,如下所示:

git log master..branchname

如果您的分支是由 制成的origin/master,那么说origin/master而不是master

于 2011-01-10T17:07:39.083 回答
156

采用:

git log --graph --abbrev-commit --decorate  --first-parent <branch_name>

它只针对目标分支(当然--graph、--abbrev-commit --decorate 更加完善)。

关键选项是--first-parent:“在看到合并提交时仅关注第一个父提交”(https://git-scm.com/docs/git-log

它可以防止显示提交分叉。

于 2016-09-20T06:19:10.693 回答
32

如果您只想要那些由您在特定分支中完成的提交,请使用以下命令。

git log branch_name --author='Dyaniyal'
于 2018-02-03T10:10:39.607 回答
14

我遇到的问题,我认为与此类似,是 master 离我的分支点太远了,以至于历史记录没有用。(导航到分支点需要很长时间。)

经过一些试验和错误,这大致给了我想要的东西:

git log --graph --decorate --oneline --all ^master^!
于 2017-09-17T08:41:21.337 回答
9

赶紧跑git log origin/$BRANCH_NAME

于 2019-10-10T21:01:24.553 回答
1

develop分支上,想查看最近的 PR 列表。

PROMPT> git log --first-parent --pretty=oneline 0a805f46957a957161c5ed4e08081edeed9b91e7..6aae236484dc1881f5dbdef0f529eb95c6ef7bd5
0a805f46957a957161c5ed4e08081edeed9b91e7 Merged PR 1984/3: Fixed crash 2.
8d51abb53403e10e6484dc3c0569a5792f1x3734 Merged PR 1984/2: Fixed crash 1.
6aae236484dc1881f5dbdef0f529eb95c6efcbd5 Merged PR 1984/1: Downgraded from windows 11 to windows 3.11.
于 2021-06-28T13:53:54.400 回答
0

对于那些使用Magit的人,点击l=mto toggle--no-merges=pto toggle --first-parent

然后l再次点击以显示从当前分支的提交(没有任何提交合并到它)直到历史记录的结尾,或者,如果您希望日志在它从分支处结束master,请点击o并键入master..您的范围:

在此处输入图像描述

于 2020-11-26T12:23:10.897 回答
0

简单地:

git log <branch_name>
于 2022-03-03T00:39:16.293 回答
-1
git log $(git branch --show-current)
于 2021-12-02T05:24:59.003 回答