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

2 minutos de lectura

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 el -m ¿opción?

Avatar de usuario de Aziz
aziz

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"

de 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. (...)

ACTUALIZAR: marque “Agregar salto de línea a git commit -m desde la línea de comando” para obtener más soluciones basadas en shell.

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

    –Eric Peterson

    21 mayo 2012 a las 17:53

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

    – Max Nanosy

    4 sep 2012 a las 21:22

  • 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.

    – Саша Черных

    21/09/2016 a las 15:32

  • 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.

    – Саша Черных

    22 de septiembre de 2016 a las 6:57


Avatar de usuario de Muhammad Tarique
Mohamed Tarique

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 pulsa 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.

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.

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.

¿Ha sido útil esta solución?