Użycie wykrzyknika w komunikacie zatwierdzenia Git za pośrednictwem wiersza poleceń


152

Jak wprowadzić wykrzyknik w komunikacie zatwierdzenia Git z wiersza poleceń?

Możliwe jest zastąpienie wykrzyknika ukośnikiem odwrotnym, ale wówczas ukośnik odwrotny również kończy się w komunikacie zatwierdzenia.

Chcę coś takiego:

git commit -am "Nailed it!"

6
Aby uzyskać wyjaśnienie, dlaczego ten problem istnieje w pierwszej kolejności: askubuntu.com/questions/434832/…
Mark Amery

Odpowiedzi:


226

Użyj apostrofów zamiast podwójnych cudzysłowów

git commit -am 'Nailed it!'

Alternatywnie, jeśli z jakiegoś powodu chcesz użyć podwójnych cudzysłowów, ale nadal chcesz literału, !wyłącz rozwijanie historii na górze skryptu za pomocąset +H


48
Lub po prostu wymieszaj swoje cytaty:git commit -am "$FOO: Nailed it"'!'
Cascabel,

4
To nie działało dla mnie w OS X, więc użyłem git commit(no -m), aby otworzyć edytor tekstu dla mojej wiadomości.
Kevin C.

W OSX użyj, git commit -m "This is the best code ever"!jak opisano w @Ryan H. answer.
mljrg

42

Innym sposobem rozwiązania tego problemu jest dodanie spacji po ! lubić:

git commit -am "Nailed it! "

Zwróć uwagę na spację między ! i ostatni .

(Spacja nie zostanie uwzględniona w komunikacie o zatwierdzeniu - Git automatycznie usuwa końcowe białe znaki z komunikatów o zatwierdzeniu).


3
Wydaje mi się, że jest to najprostsze rozwiązanie i pozwala na cudzysłowy ze zmienną interpolacją: git commit -m "$(sillyname) $(buzzphrase). $(superb)! ":)
Alex Hall

4

Zamiast tego nie musisz pamiętać, jakich cudzysłowów lub znaków specjalnych użyć

  1. Wpisz polecenie (lub jego część)
  2. W linii poleceń wciśnij Ctr X E»otworzy twój" zewnętrzny edytor ".
  3. Edytuj polecenie i zamknij edytor.

… Polecenie zostanie wykonane, a wszelkie znaki specjalne pojawią się poprawnie w komunikacie zatwierdzenia Git!

(Uwaga: wiele innych zastosowań: wpisywanie złożonych poleceń, dodawanie znaków końca linii w komunikacie zatwierdzenia itp.)


4

Jeśli musisz użyć podwójnych cudzysłowów, a !ostatni znak w wiadomości jest ostatnim znakiem, po prostu zachowaj !zewnętrzną część cudzysłowów , ponieważ używamy tylko cudzysłowów, aby spacje zostały uwzględnione w wiadomości.

git commit -m "Reverting last commit because I don't like it"!

Jeśli chcesz dołączyć !środkowy ciąg, możesz użyć pojedynczych cudzysłowów, ale jeśli potrzebujesz dosłownie pojedynczego cudzysłowu, musisz zamknąć cytat, a następnie umieścić 'zewnętrzną część ciągu , wprowadzając znak zmiany znaczenia . Więc powiedzmy, że twoja wiadomość jest I don't like it! Reverting again!taka, że ​​można to skomponować za pomocą 'I don'+ \'+'t like it! Reverting again!'

git commit -m 'I don'\''t like it! Reverting again!'

Cokolwiek bardziej skomplikowanego niż to, prawdopodobnie lepiej będzie z git commiti pozwól gitowi wywołać domyślny edytor tekstu :)


1

Możesz również wpisać:

git commit -am "Nailed it
!
"

Po prostu naciśnij enter i umieść wykrzyknik w nowej linii, a następnie zamknij komunikat o zatwierdzeniu. Znalazłem to przypadkiem któregoś dnia.


6
Spowoduje to wstawienie dosłownego znaku nowej linii przed wykrzyknikiem do komunikatu o zatwierdzeniu, co jest brzydkie. -1.
Mark Amery,

-3

Hmm. Użycie ukośnika nie pojawia się w komunikacie zatwierdzenia.

git commit -m "Nailed it\!"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.