Zur nächsten geänderten Datei in Git Diff springen?
Lesezeit: 4 Minuten
Ich habe den Fehler gemacht, ein Visual Studio-Projekt von 2008 auf 2010 zu aktualisieren, ohne zuerst meine vorherigen Änderungen einzuchecken. Aus diesem Grund habe ich eine riesige systemgenerierte Datei (über 10.000 Zeilen), in der jede vierte Zeile geändert wurde.
Ich bin normalerweise ziemlich gut darin, Dinge oft einzuchecken, also benutze ich normalerweise nur die Abwärtstaste, um durch meine Änderungen zu blättern. In diesem Fall dauert es mehrere Lebenszeiten, um durch die Änderungen an der vom System generierten Datei zu scrollen.
Gibt es eine Möglichkeit, zur nächsten geänderten Datei zu springen, nachdem Sie a git diff damit Sie nicht jede Änderung an jeder Datei durchblättern müssen?
kannst du einfach verwenden git diff fileName wenn Sie ein kleines Änderungsset haben.
– zbrunson
19. November 2012 um 23:58 Uhr
Ich möchte alle Dateien sehen, die geändert wurden, überspringen Sie einfach die riesige …
– Abe Miessler
19. November 2012 um 23:59 Uhr
Standardmäßig, git diff leitet seine Ausgabe durch less. Sie können also die verwenden less Befehle, um nach dem nächsten Header zu suchen. Typ /^diff und drücke Eintreten um zur nächsten Datei zu springen.
Muss ich zuerst mein aktuelles Diff verlassen? Ich habe versucht, es von meinem aktuellen Diff aus zu tun, und es sagte Pattern not found
– Abe Miessler
20. November 2012 um 0:02 Uhr
Das / Befehl sucht von der aktuellen Position aus, die Sie gerade betrachten. Wenn Sie also diese Meldung erhalten, gibt es keine weiteren Zeilen, die mit beginnen diff in der Ausgabe.
– Greg Hewgill
20. November 2012 um 0:03 Uhr
Eigentlich klingt es wie das, was Sie Ja wirklich Was Sie tun möchten, ist, diese (nicht festgeschriebenen) Änderungen in zwei separate Festschreibungen aufzuteilen. Mach ein git add large.file.name und dann git commitdann sind alle verbleibenden Änderungen die anderen Dateien, die sind nicht der große.
– Greg Hewgill
20. November 2012 um 0:05 Uhr
Danach verwenden n um zum nächsten Vorkommen von zu gelangen ^diffund N für das vorherige. Dies sollte funktionieren, bis Sie ein anderes Suchmuster verwenden /.
– Gauthier
1. Juni 2017 um 11:14 Uhr
du hast mir viel Zeit gespart. Gesundheit
– Rückfall
1. Mai 2020 um 20:38 Uhr
Schmied
Während in git diffeinfach zuschlagen n um direkt zur nächsten Datei zu gehen, und wieder zur nächsten, und so weiter.
Sie können auch verwenden N um eine Datei zurückzugehen.
(Damit diese Befehle funktionieren, müssen Sie zuerst eingeben /^diff und drücke Eintretenwie in dieser Antwort erläutert.)
Drücken n findet den nächsten Suchbegriff. Sie müssen nach einem gemeinsamen Teil des Dateiheaders suchen, damit dies funktioniert.
– Aaron Schwan
14. Juli 2018 um 20:48 Uhr
Für andere nützliche Befehle geben Sie ein h um Hilfe (während in git diffdie drin ist less).
Im Speziellen:
SPRINGEN g < ESC-< * Gehe zur ersten Zeile in der Datei (oder Zeile N). G > ESC-> * Gehe zur letzten Zeile in der Datei (oder Zeile N). p % * Gehe zum Anfang der Datei (oder N Prozent in die Datei). t * Gehe zum (N-ten) nächsten Tag. T * Gehe zum (N-ten) vorherigen Tag. { ( [ * Find close bracket } ) ]. } ) ]* Offene Klammer finden { ( [.
ESC-^F <c1> <c2> * Find close bracket <c2>.
ESC-^B <c1> <c2> * Find open bracket <c1>
mgarciaisaia
I’d suggest you to use tig. It’s a curses interface for git, and a very good one.
With tig status you can see the index status, and by pressing Enter on any of the files, you see it’s diff. h shows you the help menu, but it’s a vi-shortcuts-based interface.
I think in any debian-based distro you can just apt-get install it, or you can make it from the linked site.
Another option is to call update-index command and tell it to pretend that one giant file didn’t change. There’s a more complete example here.
Arthur
I think you want:
:n * Examine the (N-th) next file from the command line.
See this in the help for less.
CHANGING FILES
:e [file] Untersuchen Sie eine neue Datei. ^X^V Gleich wie :e. :n * Untersuchen Sie die (N-te) nächste Datei von der Befehlszeile aus. :p * Untersuchen Sie die (N-te) vorherige Datei von der Befehlszeile aus. :x * Untersuchen Sie die erste (oder N-te) Datei von der Befehlszeile aus. :d Löschen Sie die aktuelle Datei aus der Befehlszeilenliste. = ^G :f Gibt den aktuellen Dateinamen aus.
12993400cookie-checkZur nächsten geänderten Datei in Git Diff springen?yes
kannst du einfach verwenden
git diff fileName
wenn Sie ein kleines Änderungsset haben.– zbrunson
19. November 2012 um 23:58 Uhr
Ich möchte alle Dateien sehen, die geändert wurden, überspringen Sie einfach die riesige …
– Abe Miessler
19. November 2012 um 23:59 Uhr