你可以使用`git log`命令来获取单词差异吗?

7

我知道git diff --word-diff=color可以显示工作区和HEAD之间的单词差异,但是有没有一种方法可以在git log中获得相同类型的输出呢?


你使用的是哪个版本的Git?在1.5.5.6版本中,git diff --color-words rev1..rev2只会输出预期的彩色结果。如果我尝试使用git diff --word-diff=color rev1..rev2,它会显示git-diff的用法。 - yasouser
你可能需要编写一个小脚本--以这样的方式执行git log,使其仅打印SHA1值,然后遍历这些SHA1值并执行git diff --word-diff=color $SHA1^ $SHA1。然后,你当然可以为此分配一个git别名。 - Tyler
2个回答

10

那么 --color-words 怎么样?另外你需要激活差异。

git log --color-words -p

显示一种有色差异的效果。


这将输出行差异,而不是单词差异。 - dan
1
在1.7.1版本中,根据我的设置(除了color.ui=auto之外没有其他与diff相关的设置),它会输出单词差异。当且仅当您的源代码包含单词级别的差异时才会输出。(即差异小于整个添加/删除行的差异) - Paŭlo Ebermann

1

好的,我想我已经让它工作了

git log -m -p --word-diff=plain

这给了我一个错误:fatal: unrecognized argument: --word-diff=plain。你的 git 版本是什么 (git --version)? - Paŭlo Ebermann
git版本为1.7.3.2。但是在我的Linux系统上,当前安装的是1.7.0.4版本,我遇到了相同的错误。 - dan
看起来他们在这些版本之间为git log添加了对--word-diff的支持(这是有道理的,因为该选项已经可以用于git diff)。 - Paŭlo Ebermann
不错。如果git能在实际补丁中使用它,缩进一块代码就不会导致合并冲突了! - joeytwiddle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接