2017-05-27 2 views
4

Ich habe rekursiv viele einzelne Wortmuster in meiner Codebasis ersetzt. Bevor ich begehe, muss ich jedes für falsche Ersetzungen überprüfen. Es würde mir sehr helfen, git add -p das Format zu verwenden, das --word-diff mit git diff verwendet, wo nur die geänderten Wörter markiert werden und nicht die gesamte Zeile.Kann ich git hinzufügen -p zeige Änderungen wie git diff --word-diff?

Jemand hat das gleiche hier gefragt, aber vielleicht wurde es seit dem implementiert? https://groups.google.com/forum/#!topic/git-users/7uO2OUJGvP0

Antwort

4

Seit Git 2.9 können Sie die Eigenschaft interactive.diffFilter (wie ich weiter unten this answer erwähnt)

So versuchen, mindestens:

git -c interactive.diffFilter="git diff --color-words" add -p 

Oder git diff --word-diff:

git -c interactive.diffFilter="git diff --word-diff" add -p 
+0

Das '--color-words' Beispiel scheint nicht richtig zu funktionieren. Es zeigt jeden Chunk für das Staging mehrere Male an und selbst wenn bestimmte Chunks während der Interaktivität abgelehnt wurden, werden sie letztendlich inszeniert. – dionyziz

+0

@dionyziz Welche Version von Git verwenden Sie? – VonC

+0

Ich verwende git Version 2.13.3. – dionyziz

0

Hinzufügen diff-highlight zu dem interactive.diffFilter Config-Schlüssel ist das Easi est Option (seit Git 2.9). Die folgende comand funktioniert der Trick auf Debian/Ubuntu:

git config interactive.diffFilter "perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight" 

Dinge wie git -c interactive.diffFilter="git diff --color-words" add -p oder git config interactive.diffFilter "git diff --color-words" funktionieren nicht richtig: add -p hält immer was auf die erste geänderte Datei.

Verwandte Themen