Ist es möglich, einen Bericht von git diff oder verwandten Befehlen abzurufen, der eine bestimmte Änderungskategorie ausschließt?
Ich wurde gebeten, eine Änderung zu überprüfen, bei der eine große Anzahl von Dateien das Äquivalent von s / 2016/2017 / g durchlaufen hat. (Wir haben ein Drittanbieter-Gefäß aufgerüstet, und aus diesem Grund beziehen sich viele unserer Importe jetzt auf ein anderes Paket.)
Gibt es Optionen zum Anzeigen dieses Unterschieds in der Befehlszeile, aber zum Unterdrücken aller Änderungen, die nur aus den folgenden Elementen bestehen, damit ich mich auf logische Änderungen konzentrieren kann?
Ignorieren:
-import com.example.2016_2.util.Utility
+import com.example.2017_2.util.Utility
Behalten:
-Utility util = new Utility();
+Utility util = Utility.create();
Wenn die Antwort darin besteht, mein eigenes Skript zu schreiben und über git diff --porcelain
oder durch Setzen zu integrieren GIT_EXTERNAL_DIFF
, bin ich mit Sicherheit ein Spiel; Ich frage mich nur, ob
- dies wird von Haus aus unterstützt und irgendwie habe ich es in der Manpage verpasst;
- Es gibt andere git diff * -Befehle, die ich dafür verwenden kann.
- wenn schon eine passende diff ausführbare Datei existiert, die ich über zur Verfügung stellen kann
GIT_EXTERNAL_DIFF
quelle
--word-diff
und--word-diff-regex
kann helfen, indem nur Änderungen auf 2016/2017 hervorgehoben werden, ohne die vollständige Zeile als geändert anzuzeigen.Antworten:
Es gibt viele Möglichkeiten, Dateien zu unterscheiden,
git diff
ist in Ordnung, aber es gibt andere. Vor der gleichen Aufgabe würde ich:kdiff3
unter Linux)quelle
new
, setzen Sie das Ersetzungs-Commit zurück und vergleichen Sie mitold
. Auf diese Weise kann Git helfen, Verschiebungen / Umbenennungen zu erkennen UND Sie können Ihre IDE verwenden.git worktree