Git Fugitive, wie man einen visuell ausgewählten Codeabschnitt hinzufügt

13

Ich würde gerne wissen, ob ich im visuellen Modus Code auswählen könnte und git addes?

Ich habe bei fugitive.vim nachgefragt, aber ich habe nicht gefunden, wie es geht.

Ist es möglich ? Oder gibt es ein anderes Plugin dafür?

albttx
quelle

Antworten:

12

Es mag andere Möglichkeiten geben, aber mit diesem Ansatz können Sie mehr als nur einen Block hinzufügen, weshalb ich ihn häufig verwende.

  1. :GdiffBefehl ausführen . Es wird ein Split mit der Version der aktuellen Datei geöffnet, die sich derzeit im Index links / oben im Originalfenster befindet.

  2. Führen Sie im Originalfenster (rechts oder unten) eine visuelle Auswahl der gewünschten Änderungen durch git add.

  3. Führen Sie den :diffputBefehl aus, der für einen Bereich ausgeführt werden kann. ( dpTaste funktioniert im visuellen Modus nicht.)

  4. Schließen Sie das zweite Fenster und speichern Sie die Änderungen an der Aktualisierungsdatei im Index. Hier können Sie es vor dem Speichern nach Ihren Wünschen bearbeiten. Es muss nicht genau mit der ursprünglichen oder neuen Version der Datei übereinstimmen.

Beachten :diffputSie, dass dies je nach Struktur der Änderungen möglicherweise nicht immer das bietet, was Sie erwarten würden (insbesondere, wenn Sie nur einen Teil eines zusammenhängenden Änderungsblocks festlegen). Vergessen Sie also nicht, das Commit zu validieren. In den meisten praktischen Situationen funktioniert es jedoch gut.

xaizek
quelle
7

Vimcasts hat eine großartige Serie auf Fugitive.vim . Die Episode Fugitive.vim - Arbeiten mit dem Git-Index wäre die hilfreichste für Ihre Frage.

Sie können :Gdiffnur Teile einer Datei bereitstellen. Beim Ausführen :Gdiffwird die aktuelle Datei "diff-ed" mit der Stufe / dem Index angezeigt. Sie können einfach Vims diff Befehle (verwenden Sie dp, do, :diffput, und :diffget) das große Stück auf die Bühne / Index zu bewegen. Dann schreiben Sie die Bühne / Index - Datei wie jeder anderen Puffer, :w/ :x.

Peter Rincker
quelle
Ich benutze :Gstatus+ D, um dasselbe mit Flüchtlingen zu tun. Auf diese Weise kann ich auch die Datei, mit der ich arbeite, aus der Liste der geänderten Dateien auswählen.
Luc Hermitte
6

Da Sie speziell nach Lösungen gefragt haben, die andere Plugins verwenden, können Sie auch visuelle Auswahlen mit vimagit durchführen , einem Git-Plugin (basierend auf dem beliebten Magit-Plugin des anderen Editors ), das sich auf das Anzeigen, Staging und Festschreiben von Änderungen konzentriert.

So inszenieren Sie eine visuelle Auswahl mit Vimagit:

  1. Führen Sie den :MagitBefehl aus, um einen neuen Puffer zu öffnen, in dem alle geänderten Hunks in Ihrem Repository angezeigt werden (nicht nur in einer Datei).

  2. Suchen Sie die Linien, die Sie inszenieren möchten, und führen Sie Ihre visualAuswahl durch.

  3. Drücken Sie die Zuordnung "Bühne" : S.

Reich
quelle
6

Stage Complete oder Partial Hunks mit vim-gitgutter

  1. Stage Complete Hunk

    • <Leader>hs oder
    • :GitGutterStageHunk
  2. Bühnenteil eines nur für Ergänzungen bestimmten Stücks (seit 8/2019)

    • Visueller Modus

      • {Visual}<Leader>hs
      • :'<,'>GitGutterStageHunk
        ( '<,'>werden wie immer für dich eingefügt)
    • Angebot

      • :42,45GitGutterStageHunk
  3. Bühnenteil eines Hunks über das Vorschaufenster (seit 8/2019)

    • Vorschau des Stücks, z <Leader>hp
    • Gehen Sie zum Vorschaufenster, z :wincmd P
    • Löschen Sie die Zeilen, die Sie nicht inszenieren möchten
    • Bühnen Sie die restlichen Zeilen, z. B. <Leader>hsoder:GitGutterStageHunk

Aktualisiert: 17.8.2019 aufgrund der letzten Commits bc1d28d und b036fcf

Hotschke
quelle