2010-11-12 27 views
30

Estoy usando Git Bash y estoy tratando de descubrir qué sucede cuando escribo 'git commit -a'.git commit -a confusion

Parece que VIM se abre para editar mi mensaje de compromiso, pero ¿cómo puedo guardar y completar este compromiso? Tecleo el editor y presiono enter pero simplemente crea otra línea.

FYI: Estoy utilizando VM Fusión en mi mac por lo que algunos de mis llaves podría ser un poco diferente

+1

Esto puede ayudar: http://stackoverflow.com/questions/7154936/ultimate-vim-tutorial – Daenyth

Respuesta

25

acaba de salir de VIM ( modo de comando ->:wq).

-a bandera funciona como:

git add -u 
git commit ... 

-m opción indica el mensaje del informe. Ese mensaje es obligatorio, por lo que si no lo pasa (git commit -m "My message") se abrirá el editor de texto predeterminado (puede cambiarlo en la configuración de git) y tendrá que escribir un mensaje de confirmación, luego guardar y salir del editor.

+5

'git commit -a' no funciona como' git add .', funciona como 'git add -u' – knittl

+0

Por supuesto que tienes razón. Fijo. – Crozin

+2

"luego guarde y salga del editor" NOTA: al salir del editor, se guarda el mensaje de confirmación. – Pup

42

esta es una pregunta sobre VIM y no GIT en sí (si no me equivoco)

VIM usa múltiples modos, para salir del modo de inserción, presione ESC o^C. para guardar y salir del archivo usar ZZ, :x o :wq

sólo para estar completa: git commit -a se añada primero todo seguido y cambiado contenido de los ficheros de índice y luego crea una confirmación (después de especificar el mensaje de confirmación dentro de vim - o su editor de elección)

+0

bien, solo estaba tratando de salvar un paso y entender cómo trabajar en vim - gracias – Slee

+3

Usted acaba de arreglar una hora de dolores de cabeza para mí .. jaja Gracias.el ESC hizo el truco;) – Bono

+0

Esta debería ser la respuesta aceptada – Arel

14

Para guardar su confirmación, guarde y salga del archivo como lo haría normalmente en vim.

 
:wq 

Si cambia de opinión y desea cancelar, salga sin guardar.

 
:q! 

Usted no tiene que usar VIM embargo, puede configurar el editor, por ejemplo, el siguiente cambiaría el editor de Git utiliza para textmate.

 
git config --global core.editor textmate 
+0

también funciona con 'pico' - probablemente también 'nano', pero no probado – toblerpwn

3

Como han dicho otros, se abre Vim para que agregue un mensaje con información sobre los cambios que está realizando. Parece que el editor predeterminado en tu sistema es Vim. Git está configurado de modo que incluya cualquier mensaje que escriba y guarde en Vim, después de cerrar Vim con: wq,: x o algún otro comando.

Además de método Andrew Myers sugiere de cambiar el editor de ser llamado por Git, puede incluir un mensaje simple en la línea de comandos con algo como esto:

git commit -am 'This is my message for the commit. . . ' 

Si lo haces de esa manera Git No te moleste abriendo un editor de texto.