git显示提交消息之间的差异

git显示提交消息之间的差异,git,git-diff,Git,Git Diff,假设我有两个执行完全相同但消息不同的提交,我如何在git中看到这一点 如何制作这个,;假设我是主人,在任何承诺上 git checkout -b test git commit --amend // now edit the commit message git diff master 这显示一个空输出。我发现在提交消息中看到这种差异的唯一方法是: git show --stat master > m git show --stat > t diff m t 这会产生如下输出(我

假设我有两个执行完全相同但消息不同的提交,我如何在git中看到这一点

如何制作这个,;假设我是主人,在任何承诺上

git checkout -b test
git commit --amend
// now edit the commit message
git diff master
这显示一个空输出。我发现在提交消息中看到这种差异的唯一方法是:

git show --stat master > m
git show --stat > t
diff m t
这会产生如下输出(我确实稍微修改了git日志输出格式):

1c1
<65fb678-(头部,测试)添加bcdef(2016年1月8日星期五11:23:51+0100)
---
>7f9c3ee-(主)添加bcd(星期三,2016年1月6日11:28:10+0100)
是否有任何git命令允许只查看提交消息中的差异(有或没有正常的git输出)


注意我的问题很复杂,但我正在寻找一个git命令来实现这一点。

这对我来说很有用:

diff -w <(git rev-list --max-count=1 --format=%B SHA1) <(git rev-list --max-count=1 --format=%B SHA2)
那你就可以了

git msgdiff SHA1 SHA2

仅线性提交消息之间的差异?最好是多行消息的解决方案;但仅仅对于线性消息可能是问题代码的一个很好的开始,但我的问题更多的是是否有git命令。可用。当然也欢迎其他选择,但您应该更喜欢使用
git rev list--format=%B--max count=1 SHAn
(管道)而不是使用
git show
(陶瓷)。@ChrisMaes这一切都取决于您希望在何处使用该命令。在脚本中,你应该坚持使用管道命令(尽可能多)。@Amadee:答案很好,可以做到这一点,但我希望有任何git命令可以做到这一点;这是拼凑:)@ChrisMaes
revlist
是一个“管道”(即低级)Git动词,而
show
是一个“瓷器”(即高级)Git动词。
git rev list
的输出在未来的git版本中不太可能改变;但是,
git show的输出可能会出现问题。因此,使用
rev list
可以使方法更加健壮。我刚给你做了个git别名。经过测试,对我有用。git msgdiff的输出与我之前给出的答案相同。
[alias]
        msgdiff = "!bash -c '[ $# = 2 ] && diff -w <(git rev-list --max-count=1 --format=%B \"$1\") <(git rev-list --max-count=1 --format=%B \"$2\")' -"
git msgdiff SHA1 SHA2