2012-05-21 18 views
6

Cuando etiqueto código versionado en git, me gusta usar viñetas en el mensaje de la etiqueta.Cómo incluir caracteres de nueva línea en los mensajes de la etiqueta git

Esto se puede hacer fácilmente con las 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 etiqueta no es lo que espero:

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

La '\ n' se interpretó literalmente como los caracteres '\' y 'n' en lugar de una nueva línea. Deseo utilizar la opción -m para poder automatizar el proceso de etiquetado.

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

Respuesta

9

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

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

de git-tag man page:

-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: Check "Add line break to git commit -m from command line" de soluciones más basado en la cáscara.

+0

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

+1

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

+0

Mi comando: 'git tag -a v1.1.0 -m" + sintaxis resaltada resaltada para expresiones regulares en las consolas de búsqueda y reemplazo, "-m" + instrucciones agregadas sobre la personalización de algunos parámetros gráficos para usuarios de Windows 10 "'. [** Resultado **] (https://github.com/Kristinita/SashaSublime/releases/tag/v1.1.0). ¿Qué hice mal? Gracias. –

4

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.

0

Suponiendo que está utilizando un shell unix, su sintaxis para newline es incorrecta.

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

debería funcionar.

Cuestiones relacionadas