[英]Where do docs explain why "git log" output differs based on checked-out branch?
来自git log
的 output 根据我当前签出的分支而有所不同。 git 文档在哪里解释了这种行为?
我查看了git log --help
和git rev-list --help
但没有看到任何解释git log
基于我签出的分支是上下文相关的。
编辑:
我已经阅读了@max 和@James 提到的以下部分,并且很清楚当省略其中一个提交并指定..
时会发生什么。 但是当两个提交都被省略时会发生什么是模棱两可的。 当一个提交被省略并且..
被省略时,它也是模棱两可的:
<从>..<直到>
仅显示指定的两个提交之间的提交。 当 <since> 或 <until> 被省略时,它默认为 HEAD,即当前分支的尖端。
因此,例如,以下内容是等价的:
git log master..
等价于:
git log master..HEAD
git log..master
等价于:
git log HEAD..master
但是,如果 <since> 和 <until>都被省略了,那又如何呢?
git log
不等同于:
git log HEAD..HEAD
那么,<since>..<until> 格式中的git log
等价于什么?
如果只列出了一个提交,但没有列出..
,那会怎样?
git log foo
等价于:
git log foo..HEAD
或
git log HEAD..foo
?
git-log 手册页的第一部分之一:
<从>..<直到>
仅显示指定的两个提交之间的提交。 当 <since> 或 <until> 被省略时,它默认为 HEAD,即当前分支的尖端。
git log
需要一个(或多个)点开始,所以当没有提供修订时,它默认为HEAD
,它指向当前分支。
Git 日志有一个隐含的参数 HEAD 所以当你这样做时
git日志
你实际上在做
git 日志头
这意味着您将从当前分支的尖端获取日志
从Git 日志手册中获取 since..until 选项
仅显示指定的两个提交之间的提交。 当 或 被 > 省略时,它默认为 HEAD ,即当前分支的尖端。 如需更完整的 > 拼写方式列表,请参阅 gitrevisions(7)。
根据更新的问题,以下应解释您所说的所有情况
例如,origin.. 是 origin..HEAD 的简写,并询问“自从我 > 从 origin 分支分叉后我做了什么?” 类似地,..origin 是 HEAD..origin 的简写,并且 > 询问“自从我从他们那里分叉后,origin 做了什么?” 请注意,.. 意味着 >HEAD..HEAD 是一个空范围,可以从 HEAD 到达和无法到达。
如果.. 被省略,那么它只是
git log <rev>
其中包括可从 rev (即祖先)访问的提交。 如手册中所述,这在git-rev-list谁的选项适用于 git-log 中进行了解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.