Antworten:
Sie haben zwei Möglichkeiten:
Geben Sie eine leere Festschreibungsnachricht an. Wenn es sich um ein neues Commit handelt und Sie die Nachricht noch nicht gespeichert haben, können Sie sie einfach verwenden :q!(beenden ohne zu speichern). Wenn Sie bereits gespeichert haben (oder ein vorheriges Commit ändern), löschen Sie einfach die gesamte Protokollnachricht und speichern Sie sie erneut. Dies kann mit ggdG+ :wqin Vim erfolgen.
Lassen Sie den Editor mit einem Exit-Code ungleich Null beenden. In Vim können Sie verwenden :cq(mit einem Fehlercode beenden).
Es ist erwähnenswert, dass Sie Ihre Arbeitskopie jederzeit auf den Zustand zurücksetzen können, in dem sie sich vor dem Festschreiben befand git reset HEAD^.
git reset HEAD^mehr verlangen , interpretiert Ihre Shell ^ möglicherweise als Zeilenfortsetzung. Versuchen Sie git reset "HEAD^", git reset HEAD^^oder git reset HEAD~1stattdessen gemäß dieser Antwort: stackoverflow.com/questions/14203952/git-reset-asks-more
:q!funktioniert nicht beim Ändern eines Commits. Die Festschreibungsnachricht wird nicht aktualisiert, die Änderung wird jedoch ausgeführt :-(:cq bricht die Änderung vollständig ab.Um zusammenzufassen:
git commit), beenden Sie die Verwendung von :q!.git commit --amendEntfernen Sie beim Ändern (dh ) die Festschreibungsnachricht (nur die ersten Zeilen, die nicht mit einem # beginnen), indem Sie beispielsweise v gedrückt halten und sie mit den Pfeiltasten auswählen und dann Entf drücken. Beenden Sie mit :wq, um Änderungen zu übernehmen ! Wenn Sie :q!die Änderungen verwenden, gehen sie verloren und die vorherige Festschreibungsnachricht wird verwendet.Wenn Sie VIM verwenden, ist es in beiden Fällen in Ordnung, mit zu beenden. :cqVIM wird mit einem Fehlercode beendet und das Festschreiben wird abgebrochen.
:q!drücken müssen, um vim zu verlassen.