2011-03-15 13 views
52

Estoy ejecutando un ciclo muy rápido de compilación de compilación de código en el que estoy modificando los cambios a mis compromisos con mucha frecuencia.Cómo omitir el paso del mensaje de compromiso en "git commit --amend"?

Por ejemplo:

# Make some changes 
$ git commit -m "Added feature X" 
# Compile, test 
# Fix bugs 
$ git commit -a --amend 

por lo general quieren el mismo mensaje de registro después de que me fijo mis errores. ¿Hay alguna manera de hacer que git skip encienda mi EDITOR y solo use el mensaje de confirmación original?

+3

duplicado posible de [Cómo modificar una confirmación sin cambiar mensaje de consignación (reutilización de la anterior)?] (Http://stackoverflow.com/questions/10237071/ how-to-amend-a-commit-without-changing-commit-message-reusing-the-previous-one) – gmauch

Respuesta

61

Puede agregar --no-edit para usar el último mensaje. Esta opción existía desde 2005, pero solo recientemente se ha habilitado para la opción --amend.

La otra forma es agregar -C HEAD al comando de confirmación con la opción modificar. Esto le permite no solo utilizar el mensaje de compromiso actual, sino que puede especificar cualquier otra referencia que desee, por lo que vale la pena recordarlo.

Esto es particularmente útil al construir un compromiso de varios lugares en el historial y al usar uno de esos mensajes de compromiso. Por ejemplo:

git checkout feature1^^ -- database/table1.sql 
git checkout feature1^^^^ -- logger.py 
git add -A && git commit -C feature1 

que sólo tiene que utilizar 2 confirmaciones de una feature1 y utilizar el mensaje de confirmación desde la última confirmación de feature1 - si eso era una buena descripción.

+11

Debe tener en cuenta que también copiará la marca de tiempo de la confirmación anterior, lo que puede no ser deseable. –

+0

actualizó la respuesta. –

+4

@Matthew Eso es cierto de '--amend' en general. –

5

También puede utilizar

--reuse-message=<commit> 
Take an existing commit object, and reuse the log message and the authorship 
information (including the timestamp) when creating the commit. 

que le permiten utilizar la confirmación anterior mensajes. Esto también puede ser parte de un script o git alias.

1
git commit --amend --reuse-message HEAD 

reutilizará mensaje desde la última confirmación

Cuestiones relacionadas