我有一个本地分支跟踪远程/主分支。运行git-pull
and后git-log
,日志将显示远程跟踪分支以及当前分支中的所有提交。但是,由于对远程分支进行了如此多的更改,我只需要查看对当前本地分支所做的提交。
用于仅显示特定分支的提交的 Git 命令是什么?
笔记:
配置信息:
[branch "my-branch"]
remote = origin
merge = refs/heads/master
我有一个本地分支跟踪远程/主分支。运行git-pull
and后git-log
,日志将显示远程跟踪分支以及当前分支中的所有提交。但是,由于对远程分支进行了如此多的更改,我只需要查看对当前本地分支所做的提交。
用于仅显示特定分支的提交的 Git 命令是什么?
笔记:
配置信息:
[branch "my-branch"]
remote = origin
merge = refs/heads/master
假设您的分支是从 中创建的master
,然后在分支中(即,您已签出分支):
git cherry -v master
或者
git log master..
如果您不在分支中,则可以将分支名称添加到“git log”命令中,如下所示:
git log master..branchname
如果您的分支是由 制成的origin/master
,那么说origin/master
而不是master
。
采用:
git log --graph --abbrev-commit --decorate --first-parent <branch_name>
它只针对目标分支(当然--graph、--abbrev-commit --decorate 更加完善)。
关键选项是--first-parent
:“在看到合并提交时仅关注第一个父提交”(https://git-scm.com/docs/git-log)
它可以防止显示提交分叉。
如果您只想要那些由您在特定分支中完成的提交,请使用以下命令。
git log branch_name --author='Dyaniyal'
我遇到的问题,我认为与此类似,是 master 离我的分支点太远了,以至于历史记录没有用。(导航到分支点需要很长时间。)
经过一些试验和错误,这大致给了我想要的东西:
git log --graph --decorate --oneline --all ^master^!
赶紧跑git log origin/$BRANCH_NAME
在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.
对于那些使用Magit的人,点击l
和=m
to toggle--no-merges
和=p
to toggle --first-parent
。
然后l
再次点击以显示从当前分支的提交(没有任何提交合并到它)直到历史记录的结尾,或者,如果您希望日志在它从分支处结束master
,请点击o
并键入master..
您的范围:
简单地:
git log <branch_name>
git log $(git branch --show-current)