variable - was sind git tags



Git diff-Ignoriere Neuordnung (1)

Die Diffing-Tools werden normalerweise in Bezug auf den Diff-Algorithmus von Myers implementiert. Es gibt nicht viel, was Sie tun können, um das Verhalten von GNU / git / diff zu kontrollieren. (Es gibt einige Schalter, die Sie an diff weitergeben können, um das Verhalten zu beeinflussen, aber in Ihrem Fall sind sie irrelevant.)

Sie könnten die Ausgabe einfach nachbearbeiten und die doppelten Zeilen entfernen, zum Beispiel können Sie Ihr Diff durch das folgende awk-Skript pipen, das (Duplikat) entfernt - / + neu anordnet.

git diff | awk '{ seen[substr($0,2)]++; l[i++] = $0; } END { for (j = 0; j < i; ++j) if (seen[substr(l[j],2)] < 2) print l[j] }'

Für Ihr Beispiel wäre die Ausgabe,

diff --git a/numbers b/numbers
index 5f5fbe7..d184fef 100644
--- a/numbers
+++ b/numbers
@@ -1,3 +1,3 @@
-1
+4
 2

Git Diff Zahlen

diff --git a/numbers b/numbers
index 5f5fbe7..d184fef 100644
--- a/numbers
+++ b/numbers
@@ -1,3 +1,3 @@
-1
+4
+3
 2
-3

Nummer 3 wird wiederholt, aber die Reihenfolge wird geändert. Irgendeine Möglichkeit, die Neuordnung in Git oder irgendeiner Grep-Lösung zu ignorieren? Ich möchte das Ergebnis nur der hinzugefügten und gelöschten Nummern, nicht der Reihenfolge der gleichen Nummern. Irgendwelche Hilfe?





sh