如何限制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
参数。列出多个正引用的功能通常是是的,但是在这种情况下你不想要它。