Git入門書裡都會提到放棄最後一次的commit而回復到再上一次commit的指令:
git reset --hard HEAD^
但是這個指令在Windows的命令提示字元cmd.exe裡卻無法執行,會出現錯誤:
D:\git-root\test>git reset --hard HEAD^ More? More? fatal: ambiguous argument 'HEAD ': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git[ ...] -- [ ...]'
今天終於弄清楚了:^是cmd.exe的escape字元,屬於特殊字元,命令裡要用到文字 ^ 時必須用雙引號把它夾起來,因此只要如下就可以正確執行:
git reset --hard HEAD"^"
或者:
git reset --hard "HEAD^"
或許有人會覺得奇怪:為何不直接使用bash就好,因為幾乎所有的教學或書籍都是在bash環境裡展示的。最主要的原因是團隊成員程度參差不齊,為能有效推廣學習,還是先讓大家能在既有的環境裡把動作先做好,行有餘力者再自行去使用別的環境吧,畢竟要操作的是Git而不是再多去學另一個Shell。
##
您可能也會有興趣的類似文章
- 撰寫git info工具以模擬svn info功能 (0則留言, 2014/09/01)
- 將Git分支名稱加到提示字元(Prompt)裡 (0則留言, 2014/09/02)
- Git的Staging Area的中文翻譯探討 (0則留言, 2014/09/12)
- Linus談Git與TortoiseGit (0則留言, 2008/12/19)
- Subversion changelist命令行操作 (0則留言, 2013/06/13)
- [Windows] 使用setx指令快速建立共用環境變數 (0則留言, 2014/06/30)
- clink:擴充cmd.exe成為Bash readline命令行的強大編輯功能 (0則留言, 2014/04/26)
- DOS (命令提示字元) 的巨集功能 (3則留言, 2005/01/18)
- 替Prompt加上顏色 (0則留言, 2004/12/03)
- [WordPress] Google Chrome瀏覽器無法正確顯示SyntaxHighlighter外掛的程式碼 (1則留言, 2012/08/22)
- [Tools] 自動重新啟動電腦的工具:Smart Shutdown (0則留言, 2005/05/11)
- [Tool] 快速編輯環境變數:Rapid environment Editor (0則留言, 2008/04/30)
- 開始使用Cygwin以取代cmd.exe (2則留言, 2007/01/11)
- 用檔案總管的網址列執行命令 (1則留言, 2013/03/11)
- [Subversion] 可重覆使用的性質設定批次命令 (1則留言, 2006/07/13)
The post 為何無法正確執行git reset --hard HEAD^ appeared first on 簡睿隨筆.