Git - Wie schließe ich den Commit-Editor?

209

Ich bin neu in Git und lerne aus einem PDF. Ich habe gerade einen Befehl ausgeführt $ git commitund er öffnet einen neuen Editor. Aber ich versuche, diesen neuen Commit-Editor zu schließen. Wie macht man das? Ich benutze Git unter Windows.

aniskhan001
quelle
Keine vollständige Antwort, aber eine Möglichkeit, den Editor zu umgehen, ist die Verwendung der Option "-m". ZB nach $ git <Ihre_Änderungen> hinzufügen, dann $ git festschreiben -m "meine Änderungen; ich vermeide den Editor!"
Quetzalcoatl

Antworten:

242

Speichern Sie die Datei im Editor. Wenn es Emacs ist: um CTRLX CTRLSzu speichern, dann um CTRLX CTRLCzu beenden oder wenn es vi ist::wq

Drücken Sie esczuerst, um die Bearbeitung zu beenden. (in windows / vi)

tpg2114
quelle
3
Der Benutzer muss den Editor zusätzlich zum Speichern der Datei schließen, für Emacs also tatsächlich Ctrl-X Ctrl-C.
user4815162342
1
Aktualisiert ... Ich wusste das, aber wie die meisten Emacs-Befehle sind sie so tief in mir verwurzelt, dass ich vergesse, was sie sind ... ich mache sie einfach.
tpg2114
Wenn Sie emacsclient verwenden, können Sie es mitC-x #
azzamsa
1
danke, auf Windows Bash ist es nicht klar, dass Sie 1: beenden und 2: die Änderungen speichern müssen
Juan Monsalve
Kann ich diesen Einfügemodus auf meinem Windows-Computer deaktivieren?
Rez.Net
199

Hatte auch Probleme. Unter Linux habe ich Ctrl+ X(und Yzur Bestätigung) verwendet und war dann wieder auf der Shell, um zu ziehen / drücken.

Unter Windows würde GIT Bash Ctrl + Xnichts tun und fand heraus, dass es ganz wie vi / vim funktioniert. Drücken Sie i, um den Inline-Einfügemodus aufzurufen. Geben Sie die Beschreibung ganz oben ein, drücken Sie esc, um den Einfügemodus zu verlassen, geben Sie dann ein :x!(jetzt befindet sich der Cursor unten) und drücken Sie , um enterzu speichern und zu beenden.

Wenn Sie :q!stattdessen tippen , wird der Editor ohne Speichern beendet (und das Festschreiben wird abgebrochen).

Marc Compte
quelle
18
Dies ist die Antwort für mich für Windows
Lode
1
esc: x! - Dies ist nicht nur unentdeckbar, als würde jemand Verstecken mit Funktionalität spielen.
Tristan
45

Drücken Sie nach dem Schreiben der Festschreibungsnachricht einfach die Esc- Taste und schreiben Sie dann : wq oder : wq! und dann Enter , um die Unix-Datei zu schließen.

Chandan Gupta
quelle
6
Diese Lösung ist diejenige, die an Git Gui Bash für
Windows
! Dies erinnerte mich an die Tage an der Universität, als wir einige Unix vi-Bearbeitungsaufgaben erledigten, nachdem wir lange einige :wqBefehle geschrieben hatten
Irf
:xist eine Abkürzung für :wqin Vim.
Rnevius
19

Besser noch, konfigurieren Sie den Editor auf etwas, mit dem Sie vertraut sind (gedit als Beispiel):

git config --global core.editor "gedit"

Sie können die aktuelle Konfiguration folgendermaßen lesen:

git config core.editor

Sie können die Festschreibungsnachricht auch über die Befehlszeile hinzufügen.

git commit -m "blablabla"

und der Editor wird überhaupt nicht geöffnet.

Martin G.
quelle
7

Nach dem git commitBefehl haben Sie den Editor iaufgerufen. Drücken Sie also zuerst und beginnen Sie dann mit der Eingabe. Nach dem Festschreiben Ihrer Nachricht drücken Sie Ctrl + cdann:wq

Mohammad Hashemi
quelle
4

Alternativen zu Nano (könnte Ihnen das Leben erleichtern):

Verwenden Sie unter Windows den Editor. Geben Sie in der Eingabeaufforderung Folgendes ein:

git config core.editor notepad

Verwenden Sie unter Ubuntu / Linux den Texteditor (gedit). Geben Sie im Terminalfenster Folgendes ein:

git config core.editor gedit

ggootz
quelle
1

Alternativ zu 'Speichern & Beenden' können Sie die Funktion git-commit-commitvon git-commit verwenden , die standardmäßig an gebunden ist C-c C-c. Die Datei wird gespeichert und geschlossen. Danach müssen Sie noch Emacs mit schließen C-x C-c, wie bereits erwähnt. Ich versuche gerade herauszufinden, wie Emacs automatisch beendet werden können.

Martin
quelle
1

Ich hatte dieses Problem. Ich erhielt eine Aufforderung ">" und konnte mich nicht festlegen. Ich ersetze das "im Kommentar durch" und es funktioniert.

Ich hoffe das hilft jemandem!

Mariano Cali
quelle
Aha! Ich war auch mit dieser ">" Eingabeaufforderung festgefahren. Beim Lesen Ihres Kommentars stellte ich fest, dass das Terminal darauf wartete, das Zitat zu schließen, da ich in meinem Kommentar ein Apostroph in einer Kontraktion verwendet hatte! Endlich bin ich frei!
Kevin Scharnhorst
0

Ich bin mir nicht sicher, welche Tastenkombination Sie zur Eingabeaufforderung> führt, aber es ist keine Bash-Eingabeaufforderung, die ich kenne. Ich bekomme es normalerweise aus Versehen. Strg + C (oder D) bringt mich zurück zur Eingabeaufforderung $.

Dubfaktor
quelle
0

Beachten Sie, dass Sie, wenn Sie Sublime als Commit-Editor verwenden, die -n -wFlags benötigen . Andernfalls denkt git immer wieder, dass Ihre Commit-Nachricht leer ist und abgebrochen wird.

Siddhartha
quelle
0

In Mac 1.Drücken Sie Shift + Z Shift + Z (Großbuchstabe Z zweimal).

A_Mo
quelle