為何無法正確執行git reset --hard HEAD^

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。

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *