2011-12-06 16 views
14

Powiel możliwe:
How do I enter an exclamation point into a git commit message from the command line?Nie można dodać "!" symbol w moim git commit wiadomość

Jestem nowym do git, i zrobiłem to polecenie:

git commit -m "First Commit!" 

to zgłasza błąd tak:

bash: !": event not found 

Dlaczego to się dzieje? Czy to w Git, nie powinienem używać symboli ! w commit?

Czy są inne symbole, których nie powinienem używać lub które powinny być unoszone w dowolnej sekwencji ucieczki?

+3

Można znaleźć to przydatne: http: //superuser.com/questions/133780/in-bash-how-do-i-escape-an-exclamation-mark. –

+0

Przepraszam, szukałem z "Git dodawanie!", Ale nie uzyskałem odpowiednich wyników .. –

+0

@DavidAlber: +1 za komentarz;) dziękuję –

Odpowiedz

26

Nic wspólnego z git, więcej do czynienia z bash - uciec ! lub użyj apostrofów, czyli

$ git commit -m "First Commit\!" 

albo lepiej:

$ git commit -m 'First Commit!' 
+10

Uciekając z ukośnikiem odwrotnym, jak w twojej pierwszej metodzie, pozostawisz brzydki dosłowny ukośnik odwrotny w rzeczywistym komunikacie zatwierdzenia. Odpowiedź na [post to jest dupe] (http://stackoverflow.com/questions/5131948/use-of-an-exclamation-mark-in-a-git-commit-message-via-command-line) jest lepiej. –

2

Nie, jest to możliwe z linią poleceń git i podwójnymi cudzysłowami. Prostą łatką jest wstawienie spacji po !.

git commit -m "First Commit! " 

Innym sposobem, aby obejść ten problem jest użycie git gui czy tylko git commit a następnie określenie wiadomość w edytorze, który otwiera.

Ograniczenie jest wyraźnie ograniczeniem basha, a nie problemem git. Możesz tego uniknąć, używając pojedynczego cudzysłowu:

git commit -m 'First Commit!' 
+4

To nie jest * ograniczenie *, to funkcja * *! –

+0

Nieprawdziwe, jak pokazano w [ta odpowiedź] (http://stackoverflow.com/a/5131960/298389): jest to możliwe, po prostu użyj pojedynczych cudzysłowów –

10

To nie jest git związany w ogóle, ale związany z bash. Za pomocą ! w ciągu znaków spowoduje, że bash spróbuje rozszerzyć historię. Jeśli tego nie chcesz, użyj ciągów cytowanych w jednym cudzysłowie lub uciec przed wykrzyknikiem z ukośnikiem odwrotnym.