2012-05-21 12 views
6

Kiedy taguję wersjonowany kod w git, lubię używać wypunktowań w wiadomościach z tagami.Jak dołączyć znaki nowej linii do wiadomości w tagach git

Można to łatwo zrobić z adnotacjami tagi:

git tag -a v1.0.0 

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

Jednakże jeśli próbuję ten sam tag z opcją -m, komunikat tag nie jest to, czego się spodziewać:

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

"\ N" interpretowano dosłownie jako znaki "\" i "n" zamiast znaku nowej linii. Chcę użyć opcji -m, aby zautomatyzować proces tagowania.

Czy istnieje sposób uwzględnienia rzeczywistych znaków nowej linii przy użyciu opcji git tag za pomocą opcji -m?

Odpowiedz

9

Najbliższym znalezionym rozwiązaniem jest użycie wielu opcji -m, po jednej dla każdej linii. Np

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

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

UPDATE: Sprawdzić "Add line break to git commit -m from command line" więcej roztworów powłokowych opartych.

+0

Dobra odpowiedź. Och, ukryte skarby, które można znaleźć na stronach man. Dzięki, Aziz! –

+1

Spowoduje to wstawienie dodatkowych znaków między wiadomościami, co może być niepożądane. –

+0

Moja komenda: 'git tag -a v1.1.0 -m" + dodała podświetlanie składni dla wyrażeń regularnych w celu znajdowania i zamiany konsol, "-m" + dodawała instrukcje dotyczące dostosowywania niektórych parametrów graficznych dla użytkowników systemu Windows 10. ". [** Wynik **] (https://github.com/Kristinita/SashaSublime/releases/tag/v1.1.0). Co robię źle? Dzięki. –

4

Inną opcją jest umieszczenie sformatowanej wiadomości w pliku (tymczasowym) i użycie git tag -F <filename> <tag> do odczytania wiadomości z tego pliku.

0

Zakładając, że używasz powłoki uniksowej, twoja składnia dla nowej linii jest błędna.

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

powinien działać.

Powiązane problemy