Cómo incluir caracteres de nueva línea en mensajes de etiquetas git

Cuando etiqueto el código versionado en git, me gusta usar viñetas en el mensaje de la etiqueta.

Esto se puede hacer fácilmente con etiquetas anotadas:

git tag -a v1.0.0

* Change number 1
* Change number 2
#
# Write a tag message
#

Sin embargo, si intento la misma etiqueta con la opción -m, el mensaje de la etiqueta no es lo que esperaba:

git tag -a v1.0.0 -m "* Change number 1\n* Change number 2"

git show v1.0.0

...

* Change number 1\n* Change number 2
....

El '\n' se interpretó literalmente como los caracteres '\' y 'n' en lugar de una nueva línea. quiero usar el -m opción para que pueda automatizar el proceso de etiquetado.

¿Hay alguna forma de incluir caracteres de nueva línea reales usando git tag con -m ¿opción?

preguntado el 21 de mayo de 12 a las 18:05

4 Respuestas

La solución más cercana que encontré es usar múltiples -m opciones, una para cada línea. Por ejemplo:

git tag -a v1.0.0 -m "* Change number 1" -m "* Change number 2"

del página de manual de git-tag:

-m <msg>
   Use the given tag message (instead of prompting). If multiple
   -m options are given, their values are concatenated as separate
   paragraphs. (...)

ACTUALIZACIÓN: Cheque "Agregue un salto de línea a git commit -m desde la línea de comando" para obtener más soluciones basadas en shell.

contestado el 23 de mayo de 17 a las 13:05

Buena respuesta. Oh, los tesoros escondidos que se pueden encontrar en las páginas man. ¡Gracias, Azitz! - Eric Peterson

Esto pondrá nuevas líneas adicionales entre los mensajes, lo que puede no ser deseable. - max nanasy

Mi comando: git tag -a v1.1.0 -m "+ added highlight syntax for regular expressions in find and replace consoles," -m "+ added instructions about customization some graphic parameters for Windows 10 users.". Resultado. ¿Qué hice mal? Gracias. - Саша Черных

Ayuda para mi: tag -a st3-1.1.0 -m "Version 1.1.0" -m "+ added highlight syntax for regular expressions in find and replace consoles," -m "+ added instructions about customization some graphic parameters for Windows 10 users.". Resultado. Gracias. - Саша Черных

La mejor solución es escribir sus mensajes de confirmación y etiqueta directamente desde su editor de código predeterminado.

  • Usar comando git tag -a v1.0.0 y presiona enter. No escribas -m
  • Abrirá su editor de código predeterminado, escribirá un mensaje, guardará y cerrará el archivo.
  • Se reanudará la línea de comandos.

Respondido el 17 de enero de 20 a las 07:01

Otra alternativa sería poner el mensaje formateado en un archivo (temporal) y usar git tag -F <filename> <tag> para leer el mensaje de ese archivo.

contestado el 21 de mayo de 12 a las 18:05

Suponiendo que está utilizando un shell de Unix, su sintaxis para nueva línea es incorrecta.

git tag -a v1.0.0 -m "* Change number 1
* Change number 2"

Deberia trabajar.

Respondido el 04 de Septiembre de 12 a las 22:09

Qué pasa git tag -a v1.0.0 -m $'* Change number1\n* Change number 2' ? - Damián Flament

@DamienFlament Eso también funciona, al menos en bash. Aunque acabo de probar la sintaxis de mi respuesta en csh, y no funciona allí, por lo que "unix shell" tampoco es exacto para mi respuesta: P - max nanasy

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.