2011-12-06 57 views
14

可能重複:
How do I enter an exclamation point into a git commit message from the command line?無法添加「!」在我的git符號提交信息

我是新來的git,我做了這個命令:

git commit -m "First Commit!" 

這將引發錯誤像這樣:

bash: !": event not found 

這個錯誤爲什麼會發生?是在Git中,我不應該在commit中使用!符號?

是否有其他符號我不應該使用或應該用任何轉義序列逃脫?

+3

您可能會發現這個有用:HTTP: //superuser.com/questions/133780/in-bash-how-do-i-escape-an-exclamation-mark。 –

+0

對不起,我搜索「Git增加!」,但沒有得到相關結果.. –

+0

@DavidAlber:+1您的評論;)謝謝 –

回答

26

無關,與git的,更多的使用bash做的事 - 逃避!或使用單引號,即

$ git commit -m "First Commit\!" 

,或者更好:

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

在第一個方法中使用反斜槓進行轉義會留下難看的文字實際提交消息中的反斜槓。在[這篇文章是一個愚蠢的]的答案(http://stackoverflow.com/questions/5131948/use-of-an-exclamation-mark-in-a-git-commit-message-via-command-line ) 更好。 –

2

不,這是可能的與git命令行和雙引號。一個簡單的修復方法是在!之後放置一個空格。

git commit -m "First Commit! " 

另一種方式來解決這個問題是使用git gui或只是git commit,然後指定在打開的編輯器的消息。

該限制顯然是一個bash限制,而不是git的問題。你可以用單引號來避免它:

git commit -m 'First Commit!' 
+4

這不是*限制*,它是*功能*! –

+0

不正確,如[本答案](http://stackoverflow.com/a/5131960/298389)所示:有可能,只使用單引號 –

10

這不是git相關的,而是bash相關的。使用!在字符串中會導致bash嘗試歷史擴展。如果你不想這樣做,可以使用單引號字符串或用反斜槓轉義感嘆號。