繁体   English   中英

'git log branchA branchB'是做什么的?

[英]What does 'git log branchA branchB' do?

我看了一个加利·伯恩哈特(Gary Bernhardt)运行git log master origin/master的屏幕录像,但我不知道该怎么做。 当给定两个分支时, log做什么? 我过去曾用它来显示正在开发中但尚未在master上的提交( git log development ^master ),并给出了一系列的修订版本( git log oldref..newref ),但这似乎是有些不同。

我也没有在文档中看到任何提及。 有什么帮助吗?

请参阅git-rev-parse(1) 指定范围 基本上,您要使用任意数量的正引用,负引用和范围来指定一组提交。

TL; DR

git log <ref1> <ref2>

打印日志条目为处于的所有联合提交<ref1>的祖先和<ref2>的祖先; 换句话说,所有<ref1><ref2>或两者均可到达的提交。

这种语法自然会扩展到两个以上的修订版。

在手册页中哪里可以找到该信息

git-log手册页中查找Description部分:

该命令采用适用于git rev-list命令的选项,以控制显示的内容以及如何[...]

这将引导您进入git-rev-list手册页。 在后者的“ 描述”部分下,您将找到以下段落,该段落应清除所有内容:

列出可通过遵循给定提交中的父链接来达到的提交 ,但排除可从其前面带有^ 的给定提交中实现的提交 默认情况下,输出以相反的时间顺序给出。

您可以将其视为固定操作 在命令行上给出的提交构成了一组可从它们中的任何一个到达的提交,然后从该集合中减去前面带^给出的任何一个可到达的提交。 其余的提交就是命令输出中显示的内容。 [...]

(我的重点)

这样就可以了:当您将(空格分隔的)引用列表传递给git log ,您将从至少一个指定的引用中获取所有可提交的提交的日志。

一个例子

作为一个示例(摘自gitrevisons手册页 ),如果您的仓库如下所示

   J
    \
I -- F -- C 
      \    \
  E -- B -- A
      /
H -- D
    /
   G

输出

git log D F

将包含从提交DF或从提交DF均可到达的所有提交的日志条目,即提交GHIJDF

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM