267 Stimmen

Wie kann ich eine Git-Übertragung stoppen, wenn VI auf dem Bildschirm auf eine Übertragungsnachricht wartet?

Ich habe Git gebeten, eine Übergabe aus der Git-Bash heraus durchzuführen, und es hat wie immer VI angezeigt.

Wie verhindere ich, dass die Übergabe von diesem Punkt an fortgesetzt wird?

414voto

Eugene Yarmash Punkte 130008

Sie haben zwei Möglichkeiten:

  • Geben Sie eine leere Commit-Nachricht an. Wenn es sich um eine neue Übertragung handelt und Sie die Nachricht noch nicht gespeichert haben, können Sie einfach :q! (Beenden ohne zu speichern). Wenn Sie bereits gespeichert haben (oder eine frühere Übertragung ändern), löschen Sie einfach die gesamte Protokollmeldung und speichern Sie erneut. Dies kann geschehen mit ggdG + :wq in Vim.

  • Der Editor soll mit einem Exit-Code ungleich Null beendet werden. In Vim können Sie :cq (Beenden mit einem Fehlercode).

Es ist erwähnenswert, dass Sie Ihre Arbeitskopie jederzeit auf den Zustand vor der Übergabe zurücksetzen können mit git reset HEAD^ .

129voto

Daniel Pinyol Punkte 1844
  • :q! funktioniert nicht, wenn ich eine Übertragung ändere. Es aktualisiert nicht die Commit-Nachricht, sondern führt die Änderung aus :-(
  • :cq wird die Änderung vollständig rückgängig gemacht.

12voto

Maciej Punkte 516

Zusammengefasst:

  • Beim Erstellen einer neuen Übertragung (d.h. git commit ) nicht mehr verwenden :q! .
  • Bei der Änderung von (d.h. git commit --amend ) entfernen Sie die Commit-Meldung (nur die ersten paar Zeilen no beginnend mit einem #), indem Sie z. B. v gedrückt halten und mit den Pfeiltasten auswählen und dann Löschen drücken. Beenden mit :wq um Änderungen anzuwenden ! Wenn Sie die :q! gehen die Änderungen verloren und es wird die vorherige Commit-Nachricht verwendet.

Wenn Sie VIM verwenden, ist es in beiden Fällen in Ordnung, mit :cq - VIM wird mit einem Fehlercode beendet und die Übertragung wird abgebrochen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X