Git: remove leading plus/minus from lines in diff

后端 未结 4 1802
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-23 13:26

My question is rather simple, though I have had no luck finding an answer.

I\'d like to remove the leading plus/minus symbols from each line in git diff

相关标签:
4条回答
  • 2020-12-23 13:55

    One option is to use sed to remove the undesired character from diff, while preserving the color:

    git diff --color | sed -r "s/^([^-+ ]*)[-+ ]/\\1/" | less -r
    

    (Note that you need to remove the leading space as well, as it is emitted by diff.)

    0 讨论(0)
  • 2020-12-23 13:56

    The simple way I have seen is this.. Much easy to remember (The text format changes. So you need to know the code change)

    git diff --color-words



    Here is a way to make it default
    If you are using linux add the following command to your ~/.bashrc file
    Then you can use gitdiff without space as another command .

    alias gitdiff='git diff --color-words'
    


    Update:
    To set alias directly through git config (Without the help of ~/.bashrc)
    https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
    Thank you @dylankb for this.

    Example: If you enter the command git config --global alias.ci commit;
    then you can use git ci for rest of your life for committing!!

    Happy Gitting :)

    0 讨论(0)
  • 2020-12-23 13:57

    For mac users you'll have to use the below command:

    git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r

    caleb531 provided it in the accepted answer but there was a small typo.

    Then if you want to throw this in an alias you can do the following:

    alias gitdiff='git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r'

    0 讨论(0)
  • 2020-12-23 14:09

    If I may answer my own question, I ultimately settled on using a tool called diff-so-fancy. It not only strips the +/- from my diffs, but it also streamlines the file headers and highlights the changes within each line.

    0 讨论(0)
提交回复
热议问题