How should I use git diff for long lines?

后端 未结 15 2486
庸人自扰
庸人自扰 2020-12-04 05:37

I\'m running git-diff on a file, but the change is at the end of a long line.

If I use cursor keys to move right, it loses colour-coding—and worse the lines do

15条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-04 06:05

    With full credit to Josh Diehl in a comment to this answer, I nevertheless feel like this ought to be an answer unto itself, so adding it:

    One way to deal with seeing differences in long lines is to use a word-oriented diff. This can be done with:

    git diff --word-diff
    

    In this case, you'll get a significantly different diff output, that shows you specifically what has changed within a line.

    For example, instead of getting something like this:

    diff --git a/test-file.txt b/test-file.txt
    index 19e6adf..eb6bb81 100644
    --- a/test-file.txt
    +++ b/test-file.txt
    @@ -1 +1 @@
    -this is a short line
    +this is a slightly longer line
    

    You might get something like this:

    diff --git a/test-file.txt b/test-file.txt
    index 19e6adf..eb6bb81 100644
    --- a/test-file.txt
    +++ b/test-file.txt
    @@ -1 +1 @@
    this is a [-short-]{+slightly longer+} line
    

    Or, with colorization, instead of this:

    result of just <code>git diff</code>

    You might get this:

    result of <code>git diff --word-diff</code>

    Now, if you're comparing a really long line, you may still have issues with the pager situation you originally described, and which has been addressed, apparently to satisfaction, in other answers. Hopefully this gives you a new tool, though, to more easily identify what on the line has changed.

提交回复
热议问题