Git ignoriert BOM (verhindert, dass git diff Änderungen der Byte-Reihenfolgemarkierung anzeigt)

Lesezeit: 1 Minute

ich möchte git diff nicht zeigen Stückliste Änderungen.
Solche Änderungen werden normalerweise als angezeigt <feff> im diff:

-<feff>/*^M
+/*^M

Wie kann ich machen git diff sich so verhalten?
Am besten mit einem Kommandozeilenparameter.

git --ignore-all-space (aka git -w) geht nicht. Ich bin auf Mac OS X, falls das wichtig ist.

  • Möchten git diff -w (--ignore-all-space) arbeite besser?

    – VonC

    1. Dez. 14 um 8:00

  • @VonC: Es funktioniert leider nicht.

    – Nikolaus Raoul

    1. Dezember 14 um 8:02 Uhr

  • In Ordnung. Dann weiß ich es nicht. Git scheint BOM nicht zu berühren oder zu ignorieren (wie in stackoverflow.com/a/6418611/6309 zu sehen ist)

    – VonC

    1. Dezember 14 um 8:04 Uhr


Verwenden Sie den Git-Attributfilter

Eine mögliche Lösung wäre, einen BOM-Filter zu erstellen, wie zum Beispiel:

#!/bin/bash
sed '1s/^xEFxBBxBF//' "$1"

Speichern Sie es irgendwo in Ihrem Pfad (z. B removebom) und ausführbar machen.

Dann müssen Sie den Filter in Git konfigurieren, indem Sie Folgendes ausführen:

$ git config diff.removebom.textconv removebom

und Hinzufügen eines Attributs für Dateien, an denen Sie interessiert sind (z. B. cpp), zu Ihrem Repository:

*.cpp diff=removebom

Als ein .gitattributes Datei.

Mehr zum Thema finden Sie unter:

Oder entfernen Sie die Stückliste ein für alle Mal

… weil die Stückliste hoffentlich ein für alle Mal in Ihrem Projekt entfernt werden kann 🙂

  • Wie ich sehe, verwenden Sie möglicherweise eine UTF-16-BOM '1s/^xFExFF//' könnte das gewünschte sed-Muster sein … Aber im Falle von UTF-16 ist die BOM möglicherweise tatsächlich erforderlich und Sie konvertieren die gesamte Datei in UTF-8; hüte dich nur davor.

    – petrpulc

    11. September 17 um 8:50 Uhr


.

655040cookie-checkGit ignoriert BOM (verhindert, dass git diff Änderungen der Byte-Reihenfolgemarkierung anzeigt)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy