Problemi con l'inserimento del messaggio di commit Git con Vim


146

Sistema operativo: Windows

Scrivo io

$ git commit

poi

"# Inserisci il messaggio di commit"

Scrivo del testo, tipo

"Aggiunta convalida modulo"

Premere Invio e non eseguito il commit. Quindi premo Maiusc + Invio, Ctrl + Invio, Alt + Invio - ancora non commesso.

Penso che sia un problema stupido, ma cosa devo fare?


Nessun problema. Ma la tua domanda probabilmente attirerebbe meglio l'attenzione di Super User, che è più in argomento per questo tipo di domanda non programmabile: superuser.com/questions/tagged/git
bzlm

Risposte:


232

Se è VIM per Windows, è possibile effettuare le seguenti operazioni:

  • inserisci il tuo messaggio seguendo le linee guida presentate
  • premere Escper assicurarsi di essere fuori dalla modalità di inserimento
  • quindi digitare :wqEntero ZZ.

Si noti che in VIM ci sono spesso diversi modi per fare una cosa. Qui c'è una leggera differenza però. :wqEnterscrive sempre il file corrente prima di chiuderlo, mentre ZZ, :xEnter, :xiEnter, :xitEnter, :exiEntere :exitEntersolo scriverlo se il documento viene modificato .
Tutti questi sinonimi hanno solo un numero diverso di tasti premuti.



1
Quando :wqentro visualizzo il seguente messaggio, ".git / COMMIT_EDITMSG" 54L, 2316C scritto Interruzione del commit a causa di un messaggio di commit vuoto.
Kanna,

Assicurati di aver aggiunto un messaggio. Quando ti viene richiesto, digita qualcosa come "il mio messaggio qui" (entrerai in modalità --inserimento-- presumo, premi esc per lasciarlo). Una volta terminato e fuori dalla modalità di inserimento, digita "ZZ" (maiuscola ZZ)
Kpmurphy91

22
Perché, chi l'ha inventato? : wq Enter o ZZ sembra folle.
Dezman,

1
il icomando per iniziare a inserire il testo del messaggio è stato estremamente utile. Grazie a @Matt Greer per quello. Questa risposta è stata buona per il resto dei passaggi.
ps2goat,

47

Presumo che tu stia usando msys git. Se lo sei, l'editor che si apre per scrivere il tuo messaggio di commit è vim. Vim all'inizio non è amichevole. Puoi preferire passare a un altro editor. Se vuoi usare un editor diverso, guarda questa risposta: Come posso usare Notepad ++ (o altro) con msysgit?

Se si desidera utilizzare vim, digitare iper digitare il messaggio. Quando felice premi ESC. Quindi digitare :wqe git sarà felice.

O semplicemente digita git commit -m "your message here"per saltare del tutto l'editor.


16
Vim è mai amichevole? O le persone si abituano alla sua ostilità?
Ryan Lundy,

8
vim è amichevole una volta capito come funziona. In realtà è molto logico e ben pensato.
Matt Greer,

Se voglio usare caratteri che richiedono l'escape (ad es. Apostrofi) nel messaggio di commit, uso sempre l'editor vim perché è molto meno fastidioso. Altrimenti scrivo quasi sempre il messaggio di commit come parte del comando commit.
David DeMar,

Questo è fantastico quando devi modificare un messaggio di commit
shinzou,

15

Hai appena provato: git commit -m "Messaggio qui"

Quindi nel tuo caso:

git commit -m "Form validation added"

Dopo aver aggiunto i tuoi file ovviamente.


1
La tua variante è buona. Ma voglio seguire la strada di quello che ho scritto (traduttore di Google)
aTei

Nessun problema, ho dimenticato che c'era un editor dopo quel comando. Raramente faccio git commit senza un "messaggio"
Tony

1

In genere, git commitvisualizza un editor interattivo (su Linux e possibilmente Cygwin, determinato dal contenuto della $EDITORvariabile di ambiente) in cui è possibile modificare il messaggio di commit. Quando si salva e si esce, il commit viene completato.

È necessario assicurarsi che le modifiche che si sta tentando di eseguire il commit siano state aggiunte all'indice Git; questo determina ciò che è commesso. Vedi http://gitref.org/basic/ per dettagli su questo.


0

Puoi modificare il carattere del commento in qualcosa oltre a # come questo:

git config --global core.commentchar "@"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.