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.