¿Cómo puedo personalizar el formato de git rebase --interactive mensajes de confirmación?

StackOverflow https://stackoverflow.com/questions/2480923

  •  21-09-2019
  •  | 
  •  

Pregunta

Puedo usar git para mi local de trabajo (y el amor es siempre mucho), y me sigue un flujo de trabajo similar a la descrita en este artículo.Así que, básicamente, cuando se inicia con una nueva característica, puedo crear una rama para ello, vaya a través de la costumbre hack, a continuación, confirmar ciclo, y cuando creo que he terminado con ella, yo la calabaza en un único commit usando git rebase --interactive master, y siempre termino edición de la multitud de mensajes de confirmación en algo parecido al ejemplo en el artículo, que reproducimos aquí:

[#3275] User Can Add A Comment To a Post

* Adding Comment model, migrations, spec
* Adding Comment controller, helper, spec
* Adding Comment relationship with Post
* Comment belongs to a User
* Comment form on Post show page

Por supuesto, que después de un montón de extracción de # This is the xth commit message líneas y copiar/pegar * delante de cada mensaje de confirmación.

Ahora, lo que me preguntaba, hay alguna forma de personalizar la forma en que git rebase -i salidas de la aplastado a los mensajes de confirmación así que no tengo que hacer todo lo que la piratería?

(Yo uso msysgit, si lo que importa.Mi editor Notepad++.)

Gracias!

¿Fue útil?

Solución

No hay manera (por debajo de la piratería de la fuente) para modificar la plantilla de mensaje de squash, no creo. Sin embargo, usted tiene un par de opciones:

  • Utilice un comando git log para obtener la lista, algo como `git log --pretty = "*% s" commit-1..commit-2 para conseguir que sus balas. En Linux, es muy posible hacer esto desde el interior de su editor -. No saben cómo que trabaja con msysgit

  • Haga que su editor de hacer el trabajo por usted! No sé lo que es su editor, por lo que no se puede decir lo que debe hacer, pero sin duda estaría muy posible en vim. (La idea de ser: la búsqueda de /# This is the .* commit message/, eliminar un par de líneas, guardar uno, borrar hasta el siguiente comentario)

Además, no es lo que desea en este caso, probablemente, pero en versiones bastante recientes de Git, hay un identificador fixup que se puede utilizar en lugar de la calabaza - que hace lo mismo, pero se descarta el mensaje de entrega, por lo si usted tiene uno comprometen con el mensaje real, entonces diez correcciones, sólo les puede marcar toda corrección y no tener que borrar sus mensajes de usar y tirar.

Otros consejos

A partir de Git 2.6+ (Q3 2015), realmente habrá una manera de configurar git rebase -i mensaje de confirmación.

Ver cometer 16cf51c (13 de Junio de 2015) por Michael Rappazzo (rappazzo).
(Fusionado por Junio C Hamano -- gitster -- en cometer 9f56db7, 03 de Agosto de 2015)

git-rebase--interactive.sh:añadir opción de configuración para personalizar la instrucción de formato

Una opción de configuración 'rebase.instructionFormat"puede reemplazar el valor predeterminado 'oneline formato del reajuste de la lista de instrucciones.

Ya que la lista se analiza el uso de la izquierda, derecha o en el límite de la marca además de la sha1, que se antepone a la instrucción de formato.

Pronto tendrás una nueva configuración:

rebase.instructionFormat

Una cadena de formato, como se especifica en git log, para ser usado para la lista de instrucciones durante un interactiva de reajuste.
El formato tendrá automáticamente el largo cometer hash antepone el formato.

Por ejemplo:

git config --add rebase.instructionFormat "[%an @ %ar] %s"

Nota: hay un bug/regresión después de la liberación de la función:
Ver "Comentario en el reajuste de la instrucción se ha convertido en demasiado rígido"

Me di cuenta de que el formato de las líneas de comentario en un reajuste de la hoja de instrucciones que se ha convertido en la más estricta - no pudo comenzar con espacios o tabulaciones.El comentario char ( " # " , por ejemplo) tiene que aparecer en la primera columna.


Jefromi comentarios a continuación:

parece es sólo la intención de afectar a la pantalla dentro de interactivos de reajuste, no la resultante de los mensajes de confirmación.

Me dio una oportunidad con su ejemplo de cadena de formato y de hecho se ve al autor de la información en mi editor, pero una vez que le dije a la calabaza, la resultante de la plantilla de mensaje de confirmación todavía era el habitual.

Así que esto no es un ajuste perfecto para el OP.

Puede hecho un --amend cuando desee. Puedes retirar en comprometerse anterior comprometerse desea cambiar y modificar la misma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top