git log和git rev-list的结果不同

问题描述 投票:0回答:1

我试图获得分支A中存在的提交,但是在分支B中不存在。我认为这两个命令会给我相同的结果,但它们不会。

git rev-list A ^B --no-merges | wc -l
git log A ^B --no-merges | wc -l

第一个给我370,而log返回8000.这两个有什么区别?

bash git
1个回答
1
投票

git rev-list的输出(默认情况下至少)只是提交哈希:

$ git rev-list HEAD^..HEAD
e3a80781f5932f5fea12a49eb06f3ade4ed8945c

git log的输出默认情况下更加冗长:

$ git log HEAD^..HEAD
commit e3a80781f5932f5fea12a49eb06f3ade4ed8945c
Author: Junio C Hamano <[email protected]>
Date:   Wed Feb 21 12:45:35 2018 -0800

    Fourth batch for 2.17

第一行是一行(对于一次提交),第二行是五行(对于其日志消息只有一行的提交)。因此,最小比例为5比1,并且:

$ echo 10k 8000 370 / p | dc
21.6216216216

显示您的比率几乎是22比1,这表明您的大多数日志消息平均长约18行。

© www.soinside.com 2019 - 2024. All rights reserved.