Ich habe eine Datei in meinem Repository, die von einem Softwareprogramm generiert wird.
Dieses Programm ändert manchmal die Zeilen in dieser Datei, was nicht wirklich wichtig ist, da die Reihenfolge der Zeilen keine Rolle spielt. Das Problem ist, dass es bei der Durchführung von git-diff sehr schwierig ist zu erkennen, ob sich etwas tatsächlich geändert hat oder nicht.
Gibt es trotzdem ein Diff, in dem die Zeilenreihenfolge nicht berücksichtigt wird? Oder, wenn nicht mit git-diff möglich, irgendeinen Shell-Befehl, an den Sie denken könnten?
Danke!
Am Ende des Tages führe ich diesen Befehl manuell aus, bevor ich festlege, ob sich die Datei tatsächlich geändert hat oder ob es sich nur um eine Nachbestellung handelt. Vielleicht richte ich einen Gitarrehaken ein.
%Vor%Dieser Befehl vergleicht die Datei im Arbeitsverzeichnis mit der Datei im letzten Commit Ihrer Verzweigung, ohne die Zeilenreihenfolge zu berücksichtigen.
In meinem Fall verwende ich -w
und -B
, um Leerzeichen und Zeilen zu ignorieren, die das Programm ebenfalls hinzufügt. Von man diff
:
%Vor%
Hier ist ein ziemlich hässlicher Hack mit DIFF_EXTERNAL_TOOL:
%Vor% Dies kann mit aufgerufen werden, vorausgesetzt, Sie werfen das obige Skript in das wdiff-sort
-Programm in Ihrem $PATH
:
Hier zum Beispiel, wie ich das verwendete, um eine Menge Änderungen mit den Zonendateien zu verbinden:
%Vor%Das muss total wahnsinnig aussehen, aber es funktioniert wirklich gut und erlaubt es, die Dateien auf verschiedene Arten zu bereinigen, bevor sie sich entfernen.