git显示提交消息之间的区别

时间:2016-01-08 10:29:04

标签: 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 log输出格式):

1c1
< 65fb678 - (HEAD, test) add bcdef (Fri, 8 Jan 2016 11:23:51 +0100) <Chris Maes>
---
> 7f9c3ee - (master) add bcd (Wed, 6 Jan 2016 11:28:10 +0100) <Chris Maes>

是否有 git 命令允许只看到提交消息的区别(有或没有正常的git输出)?

注意我的问题重新解决this question,但我正在寻找一个允许这样做的 git 命令。

1 个答案:

答案 0 :(得分:3)

这对我有用:

diff -w <(git rev-list --max-count=1 --format=%B SHA1) <(git rev-list --max-count=1 --format=%B SHA2)
  • -w忽略空白差异。
  • <( ... )语法创建一个临时命名管道,使git show命令的stdout外观和行为类似于文件,允许diff对预期的输入类型进行操作。
  • --format=%B显示提交消息的原始邮件标题+正文

您可以将diff -w替换为wdiff,以便每个单词比较一个单词。

修改

如果您真的需要git命令,请将此git别名添加到~/.gitconfig

[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