Problemas ao inserir a mensagem de confirmação do Git no Vim


146

SO: Windows

Eu escrevo

$ git commit

então

"# Por favor, digite a mensagem de confirmação"

Eu escrevo algum texto, como

"Validação de formulário adicionada"

Pressione Enter e não confirmado. Então eu pressione Shift + Enter, Ctrl + Enter, Alt + Enter - ainda não confirmado.

Eu acho que é um problema estúpido, mas o que devo fazer?


Sem problemas. Mas a sua pergunta provavelmente iria ficar melhor atenção ao longo de Super User, que é mais sobre o tema para este tipo de pergunta não-programação: superuser.com/questions/tagged/git
bzlm

Respostas:


232

Se for o VIM para Windows, você pode fazer o seguinte:

  • digite sua mensagem seguindo as diretrizes apresentadas
  • pressione Escpara verificar se você está fora do modo de inserção
  • depois digite :wqEnterou ZZ.

Observe que no VIM muitas vezes existem várias maneiras de fazer uma coisa. Aqui há uma ligeira diferença. :wqEntersempre grava o arquivo atual antes de fechá-lo, ao mesmo tempo ZZ, :xEnter, :xiEnter, :xitEnter, :exiEntere :exitEntersó escrevo isso se o documento for modificado .
Todos esses sinônimos têm apenas números diferentes de pressionamentos de tecla.



1
Quando entro :wq, vejo a seguinte mensagem, ".git / COMMIT_EDITMSG" 54L, 2316C gravada Abortando confirmação devido à mensagem de confirmação vazia.
kanna

Verifique se você adicionou uma mensagem. Quando solicitado, digite algo como "minha mensagem aqui" (você entrará no modo - inserção - presumo, pressione esc para deixá-la). Assim que estiver pronto, e sair do modo de inserção, em seguida, digite 'ZZ' (ZZ de capital)
Kpmurphy91

22
Por que, quem inventou isso? : wq Enter ou ZZ parece insano.
Dez13

1
o icomando para começar a inserir o texto da mensagem foi extremamente útil. Obrigado a Matt Greer por esse. Essa resposta foi boa para o restante das etapas.
Ps2goat

47

Estou assumindo que você está usando o msys git. Se estiver, o editor que está aparecendo para gravar sua mensagem de confirmação é o vim. Vim não é amigável no começo. Você pode preferir mudar para um editor diferente. Se você deseja usar um editor diferente, veja esta resposta: Como uso o Notepad ++ (ou outro) com o msysgit?

Se você deseja usar o vim, digite ipara digitar sua mensagem. Quando feliz, pressione ESC. Então digite :wq, e git ficará feliz.

Ou apenas digite git commit -m "your message here"para pular o editor completamente.


16
O vim é sempre amigável? Ou as pessoas simplesmente se acostumam com sua hostilidade?
Ryan Lundy

8
O vim é amigável quando você entende como funciona. Na verdade, é muito lógico e bem pensado.
Matt Greer

Se eu quiser usar caracteres que exijam escape (por exemplo, apóstrofos) na mensagem de confirmação, eu sempre uso o editor vim porque é muito menos irritante. Caso contrário, quase sempre escrevo a mensagem de confirmação como parte do comando de confirmação.
David DeMar

Isso é ótimo quando você precisa alterar uma mensagem de commit
Shinzou

15

Você já tentou apenas ir: git commit -m "Message here"

Então, no seu caso:

git commit -m "Form validation added"

Depois de adicionar seus arquivos, é claro.


1
Sua variante é boa. Mas eu quero seguir o caminho do que eu escrevi (google tradutor)
Atei

Não se preocupe, eu esqueci que havia um editor após esse comando. Eu raramente apenas fazer git commit sem um -m "mensagem"
Tony

1

Normalmente, git commitabre um editor interativo (no Linux e, possivelmente, Cygwin, determinado pelo conteúdo do seu$EDITOR variável de ambiente) para você editar sua mensagem de confirmação. Quando você salva e sai, a confirmação é concluída.

Você deve se certificar de que as alterações que você está tentando confirmar foram adicionadas ao índice Git; isso determina o que está comprometido. Veja http://gitref.org/basic/ para detalhes sobre isso.


0

Você pode alterar o caractere de comentário para algo além de # assim:

git config --global core.commentchar "@"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.