如何限制git日志报告的提交范围?

如何限制git日志报告的提交范围?,git,Git,我正试图检查两次提交之间哪些分支被合并到原点,具体如下: git log --merges --first-parent --oneline origin 7284b1a6dea454c2023efb709a31ee9dbcde8de6..79764fa47dde40ed8aecf203a606e64409e3f895 其中7284b1a6dea454c2023efb709a31ee9dbcde8de6在origin的历史中早于79764fa47dde40ed8aecf203a606e6440

我正试图检查两次提交之间哪些分支被合并到原点,具体如下:

git log --merges --first-parent --oneline origin 7284b1a6dea454c2023efb709a31ee9dbcde8de6..79764fa47dde40ed8aecf203a606e64409e3f895
其中
7284b1a6dea454c2023efb709a31ee9dbcde8de6
origin
的历史中早于
79764fa47dde40ed8aecf203a606e64409e3f895
提交

但出于某种原因,它将所有内容都返回到头部,而不是将其限制在这两个SHA之间的提交范围内

建议将其限制在以下范围内:

仅显示指定修订范围内的提交。如果未指定任何
,则默认为HEAD(即导致当前提交的整个历史记录)。origin..HEAD指定可从当前提交(即HEAD)访问的所有提交,但不能从origin访问。有关拼写方法的完整列表,请参见gitrevisions[7]的“指定范围”部分

更多:

^r1 r2 set操作经常出现,因此有一个缩写。当您有两个提交r1和r2(根据上面指定修订中解释的语法命名)时,您可以请求可从r2访问的提交,但^r1 r2可从r1访问的提交除外,并且可以将其写入r1..r2

我做错了什么?如何防止在
79764fa47dde40ed8aecf203a606e64409e3f8
HEAD
之间发生的列表合并

[编辑]

为了清楚起见,历史看起来是这样的

  o   HEAD
  |  
  o  
  |  
  o   79764fa47dde40ed8aecf203a606e64409e3f895
  | 
  o 
  | 
  o 
  | 
  o 
  | 
  o 
  | 
  o   7284b1a6dea454c2023efb709a31ee9dbcde8de6
  | 
除了已经包含的选项之外,尝试使用选项“
--graph
”:

git log --graph --merges --first-parent --oneline origin 7284b1a6dea454c2023efb709a31ee9dbcde8de6..79764fa47dde40ed8aecf203a606e64409e3f895
EDIT:实际上,使用--first parent,它不应该显示更多信息)

首先,这取决于你的脑袋现在在哪里。事实上,你的日志回到头部可能是一个巧合。HEAD实际上指出了您最后一次使用git checkout签出的内容

另外,
git log a..b
log
或任何其他命令,实际上)返回“从b可访问的所有内容,以及从a不可访问的所有内容。这意味着如果您的历史看起来像这样:

  o     o b
  |     |
a o     o
  |     |
  o     o
  |     |
  o     o
  |     |
  o     o
  |     |
  o     o
  |     |
  o     o
   \   /
    \ /
     o
     |
     o
     |
     o
     |
     o
然后,
git log a..b
实际上会在合并点之后的右侧分支上为您提供全部7次提交。按时间顺序排列的时间戳在这里并不重要,这一点一开始并不强制清除,因为如果没有任何选项,日志将以平面列表的形式显示其提交集

我试图检查在两次提交之间,哪些分支合并到原点[…]我做错了什么


您正在将
origin
指定为提示。您使用
7284b1a6..79764fa4
指定了您真正想要的范围的底端和提示(任何解析为这两个提交的拼写都可以),
git log
不需要查找远程URL,这样它就不会在那里检查远程名称,它只会解析所有内容以提交ID。

那么我应该怎么做呢?省略
origin
参数?@JonCage是的,省略
origin
参数。列出多个正引用的功能通常是是的,但是在这种情况下你不想要它。