Probleme bei der Eingabe der Git-Commit-Nachricht mit Vim

146

Betriebssystem: Windows

Ich schreibe

$ git commit

dann

"# Bitte geben Sie die Commit-Nachricht ein"

Ich schreibe einen Text wie

"Formularvalidierung hinzugefügt"

Drücken Sie die Eingabetaste und nicht festgeschrieben. Dann drücke ich Umschalt + Eingabetaste, Strg + Eingabetaste, Alt + Eingabetaste - immer noch nicht festgeschrieben.

Ich denke, es ist dummes Problem, aber was muss ich tun?

aTei
quelle
Kein Problem. Aber Ihre Frage würde sich wahrscheinlich besser Aufmerksamkeit über auf Super User, die für diese Art von nicht-Programmierung Frage mehr beim Thema ist: superuser.com/questions/tagged/git
bzlm

Antworten:

232

Wenn es sich um VIM für Windows handelt, können Sie Folgendes tun:

  • Geben Sie Ihre Nachricht gemäß den angegebenen Richtlinien ein
  • Drücken Sie Esc, um sicherzustellen, dass Sie den Einfügemodus verlassen
  • Geben Sie dann :wqEnteroder ein ZZ.

Beachten Sie, dass es in VIM häufig mehrere Möglichkeiten gibt, eine Sache zu tun. Hier gibt es allerdings einen kleinen Unterschied. :wqEnterimmer schreibt die aktuelle Datei , bevor es zu schließen, während ZZ, :xEnter, :xiEnter, :xitEnter, :exiEnterund :exitEnteres nur schreiben , wenn das Dokument geändert .
Alle diese Synonyme haben nur eine unterschiedliche Anzahl von Tastendrücken.

mousio
quelle
1
Bei der Eingabe wird die :wqfolgende Meldung angezeigt: ".git / COMMIT_EDITMSG" 54L, 2316C geschrieben Abbruch des Commits aufgrund einer leeren Commit-Nachricht.
Kanna
Stellen Sie sicher, dass Sie eine Nachricht hinzugefügt haben. Wenn Sie dazu aufgefordert werden, geben Sie etwas wie "Meine Nachricht hier" ein (Sie gehen in den Einfügemodus - ich nehme an, drücken Sie die Esc-Taste, um sie zu verlassen). Wenn Sie fertig sind und den Einfügemodus verlassen haben, geben Sie 'ZZ' (Hauptstadt ZZ)
Kpmurphy91
22
Warum, wer hat sich das ausgedacht? : wq Enter oder ZZ klingt verrückt.
Dekman
1
Der iBefehl zum Einfügen von Nachrichtentext war äußerst hilfreich. Vielen Dank an @Matt Greer dafür. Diese Antwort war gut für den Rest der Schritte.
ps2goat
47

Ich gehe davon aus, dass Sie msys git verwenden. Wenn ja, ist der Editor, der auftaucht, um Ihre Commit-Nachricht zu schreiben, vim. Vim ist zunächst nicht freundlich. Möglicherweise möchten Sie lieber zu einem anderen Editor wechseln. Wenn Sie einen anderen Editor verwenden möchten, sehen Sie sich diese Antwort an: Wie verwende ich Notepad ++ (oder einen anderen) mit msysgit?

Wenn Sie vim verwenden möchten, geben Sie iIhre Nachricht ein. Wenn Sie glücklich sind, drücken Sie ESC. Dann tippe :wqund git wird dann glücklich sein.

Oder geben Sie einfach ein git commit -m "your message here", um den Editor insgesamt zu überspringen.

Matt Greer
quelle
16
Ist vim jemals freundlich? Oder gewöhnen sich die Leute einfach an ihre Unfreundlichkeit?
Ryan Lundy
8
vim ist freundlich, sobald Sie verstehen, wie es funktioniert. Es ist eigentlich sehr logisch und gut durchdacht.
Matt Greer
Wenn ich in der Festschreibungsnachricht Zeichen verwenden möchte, die ein Escapezeichen erfordern (z. B. Apostrophe), verwende ich immer den VIM-Editor, da dies weniger ärgerlich ist. Ansonsten schreibe ich fast immer nur die Commit-Nachricht als Teil des Commit-Befehls.
David DeMar
Dies ist großartig, wenn Sie eine Commit-Nachricht ändern müssen
Shinzou
15

Haben Sie versucht, einfach zu gehen: git commit -m "Nachricht hier"

Also in deinem Fall:

git commit -m "Form validation added"

Nachdem Sie Ihre Dateien hinzugefügt haben, natürlich.

Tony
quelle
1
Deine Variante gut. Aber ich möchte den Weg gehen, den ich geschrieben habe (Google Übersetzer)
aTei
Keine Sorge, ich habe vergessen, dass es nach diesem Befehl einen Editor gab. Ich mache selten nur Git Commit ohne eine -m "Nachricht"
Tony
1

Ruft git commitnormalerweise einen interaktiven Editor (unter Linux und möglicherweise Cygwin, der durch den Inhalt Ihrer $EDITORUmgebungsvariablen bestimmt wird) auf, in dem Sie Ihre Festschreibungsnachricht bearbeiten können. Wenn Sie speichern und beenden, wird die Festschreibung abgeschlossen.

Sie sollten sicherstellen, dass die Änderungen, die Sie festschreiben möchten, zum Git-Index hinzugefügt wurden. Dies bestimmt, was begangen wird. Weitere Informationen hierzu finden Sie unter http://gitref.org/basic/ .

Emil Setz dich
quelle
0

Sie können das Kommentarzeichen in etwas anderes als # ändern:

git config --global core.commentchar "@"
Matt Spradley
quelle