Git ignore BOM (prevent git diff from showing byte order mark changes)

后端 未结 1 1706
情话喂你
情话喂你 2020-12-11 02:10

I want git diff to not show BOM changes.
Such changes typically show up as in the diff:

-/*^M
+/*^M


        
相关标签:
1条回答
  • 2020-12-11 02:53

    Use Git Attributes filter

    One possible solution would be to create a BOM filter such as:

    #!/bin/bash
    sed '1s/^\xEF\xBB\xBF//' "$1"
    

    store it somewhere in your path (as i.e. removebom) and make it executable.

    Then you need to configure the filter in Git by running:

    $ git config diff.removebom.textconv removebom
    

    and adding an attribute for files you are interested in (i.e. cpp) to your repository:

    *.cpp diff=removebom
    

    as a .gitattributes file.

    More on the topic can be found on:

    • https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_diffing_binary_files
    • https://unix.stackexchange.com/questions/381230/how-can-i-remove-the-bom-from-a-utf-8-file

    Or remove the BOM once for all

    ... because, hopefully, the BOM may be removed once and for all in your project :)

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