If you use both "--word-diff" and "--color-moved", regardless of the order of arguments, "--word-diff" takes precedence and "--color-moved" isn't allowed to do anything. I think "--color-moved" should have precedence over "--word-diff". I cannot think of a scenario where a user would supply both options, and actually want "--word-diff" to take precedence. If I'm not thinking of a scenario where this wouldn't be desired, perhaps whichever is first as an argument could take precedence. (The same behavior happens if 4+ lines are moved and "--color-moved{default=zebra}" is used, but below "--color-moved=plain" is used to be a smaller testcase.) Given the following setup: $ cat << EOF > file > a > b > c > EOF $ git add file $ git commit -m "Added file." $ cat << EOF > file > b > c > a > EOF You can have moved lines colorization: $ git diff --color-moved=plain ... [oldMovedColor]-a b c [newMovedColor]+a You can diff based on words: $ git diff --word-diff ... [oldColor][-a-] b c [newColor][+a+} But, you cannot diff based on words, and have moved lines colorization: $ git diff --color-moved=plain --word-diff $ git diff --word-diff ... [oldColor][-a-] b c [newColor][+a+}