繁体   English   中英

文档在哪里解释了为什么“git log” output 根据签出的分支而有所不同?

[英]Where do docs explain why "git log" output differs based on checked-out branch?

来自git log的 output 根据我当前签出的分支而有所不同。 git 文档在哪里解释了这种行为?

我查看了git log --helpgit 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)。

根据更新的问题,以下应解释您所说的所有情况

Git 修订

例如,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.

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