Frage

Ich bin mit git-diff auf eine Datei, aber die Änderung am Ende einer langen Reihe ist.

Wenn ich Cursor-Tasten verwenden, um nach rechts bewegen verliert Farbcodierung und schlechter die Linien überlagern sich nicht, so dass es schwieriger, die Änderung zu verfolgen.

Gibt es eine Möglichkeit, dieses Problem zu vermeiden, oder einfach die Linien statt wickeln machen?

(Lauf git 1.5.5 über mingw32)

War es hilfreich?

Lösung

Die Anzeige der Ausgabe von git diff behandelt wird durch was auch immer Pager Sie verwenden.

üblicherweise unter Linux, less verwendet werden würde.

Sie können git anweisen, einen anderen Pager zu verwenden, indem die GIT_PAGER Umgebungsvariable. Wenn Sie nicht über Paging nichts dagegen haben (zum Beispiel Ihr Terminal können Sie zurückblättern) explizit versuchen könnte GIT_PAGER Einstellung zu leeren, um ihn zu stoppen, einen Pager. Unter Linux:

$ GIT_PAGER='' git diff

Ohne einen Pager, werden die Zeilen umgebrochen.

Wenn Ihr Terminal nicht farbige Ausgabe nicht unterstützt, können Sie auch diese deaktivieren entweder mit dem --no-color Argumente, oder setzen Sie einen Eintrag in der Farbe Abschnitt Ihrer git config-Datei.

$ GIT_PAGER='' git diff --no-color

Andere Tipps

Oder wenn Sie weniger als Standard-Pager verwenden geben Sie einfach -S beim Betrachten des diff zu reaktivieren Verpackung in weniger.

Sie können auch git config einrichten Pager verwenden zu wickeln.

$ git config core.pager 'less -r' 

Setzt die Pager-Einstellung für das aktuelle Projekt.

$ git config --global core.pager 'less -r' 

Setzt den Pager global für alle Projekte

Mit vollem Kredit Josh Diehl in ein Kommentar href="https://stackoverflow.com/a/3107807/313756"> diese Antwort , ich fühle mich trotzdem wie dies sollte eine Antwort zu sich selbst sein, so dass das Hinzufügen es:

Eine Möglichkeit, mit dem Sehen Unterschiede in langen Linien zu behandeln ist einen wortorientierten diff zu verwenden. Dies kann gemacht werden:

git diff --word-diff

In diesem Fall werden Sie eine deutlich andere diff Ausgabe erhalten, das zeigt Ihnen speziell, was innerhalb einer Zeile geändert hat.

Zum Beispiel, statt so etwas wie diese bekommen:

diff --git a/test-file.txt b/test-file.txt
index 19e6adf..eb6bb81 100644
--- a/test-file.txt
+++ b/test-file.txt
@@ -1 +1 @@
-this is a short line
+this is a slightly longer line

Sie könnte so etwas wie diese:

diff --git a/test-file.txt b/test-file.txt
index 19e6adf..eb6bb81 100644
--- a/test-file.txt
+++ b/test-file.txt
@@ -1 +1 @@
this is a [-short-]{+slightly longer+} line

Oder mit Einfärben, statt dies:

Ergebnis von nur <code> git diff </code>

Sie können diese:

Ergebnis von <code> git diff --word-diff </code>

Nun, wenn Sie eine wirklich lange Linie sind zu vergleichen, können Sie immer noch Probleme mit der Pager-Situation, die Sie ursprünglich beschrieben, und die angegangen wurde, offenbar zur Zufriedenheit, in anderen Antworten. Hoffentlich ein neues Werkzeug gibt, obwohl, um leichter zu erkennen, was auf der Linie geändert hat.

weniger als Pager verwenden und Zeilenumbruch machen permanent Sie können einfach die Klapplangleinen Option aktivieren:

git config --global core.pager 'less -+S'

Auf diese Weise müssen Sie es nicht geben, während weniger verwendet wird.

Prost

Nur diese eine gegoogelt auf. GIT_PAGER='less -r' funktioniert für mich

Mac OSX: Keiner der anderen Antworten außer someone45 des ‚-S‘, während weniger läuft für mich gearbeitet. Es dauerte folgendes word-wrap persistent zu machen:

git config --global core.pager 'less -+$LESS -FRX'

Da Git 1.5.3 ( September 2007 )

a --no-pager Option wurde zur Verfügung.

git --no-pager diff

Wie verhindere ich git diff von einem Pager?

Beispiel

mit v2.1 Starten, Wrap ist die Standardeinstellung

Git v2.1 Veröffentlichung Hinweise

Acht Jahre später finde ich eine bessere Antwort, von https://superuser.com/questions/777617/line-wrapping-less-in-os-x-specifically-for-use-with-git-diff :

git config core.pager `fold -w 80 | less`

Jetzt können Sie Rohr die git diff durch fold, zuerst, dann auf weniger:. Gewickelt, weniger Seitenhöhe korrekt ist, halten die Syntaxhervorhebung

Sie könnten einfach die Ausgabe des git diff mehr:

git diff | more

keine perfekte Lösung, aber gitk und git-gui können beide zeigen diese Informationen, und haben Bildlaufleisten.

Wenn Sie „git diff“ verwenden und es zeigt mehrere Seiten (Sie sehen „:“ am Ende der Seite) in diesem Fall können Sie „-S“ und drücken Sie die Eingabetaste (S sollte Kapital sein).. es wechselt fold lange Linien.

Noone wies darauf hin, dies bis jetzt. Seine ganz einfach zu merken und keine zusätzliche Konfiguration muss in der git Config getan werden

git diff --color | less -R

Liste der aktuellen / default config:

  $ git config --global core.pager  
    less -FXRS -x2

dann aktualisieren und den SICH auslassen wie:

  $ git config --global core.pager 'less -FXR -x2'

die ES. Verursacht Zeilen länger als die Bildschirmbreite eher gehackt werden, als gefaltet

Wenn in Schwierigkeiten, ich greifen oft zu DiffMerge. Ausgezeichnetes Diff-Tool, das in-line diff Hervorhebung hat. Auch in den neuesten Versionen sie hat einen Modus einen horizontalen Modus zu haben.

Ich habe nicht in der Lage gewesen git zu konfigurieren, es zu benutzen, though. Also muss ich um Dreck zuerst beide Versionen der Datei zu erhalten.

Der einfache Weg, es in meinem Fall zu tun, verwende ich Linux os

git diff > text.txt

Diese Befehlszeile erstellen und legt den git diff Ausgang innerhalb des text.txt dann können Sie es mit einem anderen Text-Editor zum Beispiel erhabenen Text öffnen.

sublime text.txt

Hoffe, dass es Ihnen helfen.

vergessen Sie es nach nicht löschen. = 0)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top