我看到了一个截屏,加里伯纳德跑了git log master origin/master
我无法弄清楚那是做什么的。 log
给出两个这样的分支时会做什么?我过去曾用它来显示正在开发但尚未在master(git log development ^master
)上提交的提交,并给出了一系列修订版本(git log oldref..newref
),但这似乎是是不同的东西。
我也没有在文档中看到任何提及。有什么帮助吗?
答案 0 :(得分:3)
请参阅git-rev-parse(1)
中的指定范围。基本上,您使用任意数量的正引用,否定引用和范围来指定一组提交。
答案 1 :(得分:2)
git log <ref1> <ref2>
为<ref1>
的祖先和<ref2>
的祖先的 union 中的所有提交打印日志条目;换句话说,所有可以从<ref1>
或<ref2>
或两者 到达的提交。
此语法自然会扩展到两个以上的版本。
在git-log
手册页中查找描述部分:
该命令采用适用于
git rev-list
命令的选项 控制所显示的内容以及如何[...]
这将引导您进入git-rev-list
手册页。在后者的 Description 部分下,您将找到以下段落,该段落应该清除:
通过跟踪来自的父链接可以访问的列表提交 给定提交,但排除可从中获取的提交 在他们面前以
^
给出的一个人。输出反向给出 按时间顺序排列。您可以将此视为设置操作。根据命令发出的命令 line形成一组可从其中任何一个访问的提交,以及 然后可以从前面
^
给出的任何一个提交到达 从该集中减去。剩下的提交就是出来的 在命令的输出中。 [...]
(我的重点)
所以你有它:当你传递一个(空格分隔的)git log
引用列表时,你得到了至少一个指定引用可以访问的所有提交的日志。
作为示例(取自gitrevisons man page),如果您的仓库如下所示
J
\
I -- F -- C
\ \
E -- B -- A
/
H -- D
/
G
的输出
git log D F
将包含可以从提交D
或F
或两者提交的所有提交的日志条目,即提交G
,H
,I
, J
,D
和F
。