今天在使用git回退功能的時候,遇到以下錯誤:
解決git reset --soft HEAD^撤銷commit時報錯
問題: 在進行完commit后,想要撤銷該commit,于是使用了git reset --soft HEAD^命令,但是出現如下報錯:
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
查了下原因可能有兩種:
- 因為cmd控制臺中換行符默認是’^ ',而不是\ ,所以^符號被git編譯為換行符了,解決方案:
git reset --hard "HEAD^"
git reset --hard HEAD~[return times]
- 該倉庫到目前為止只有
commit
過一次代碼,故已經是head版本,也會報這樣的錯,無需關心直接commit
或者rm
即可
原因猜想: 想要撤銷的commit都是第一次的commit,此時使用git reset --soft HEAD^
命令就會報錯。因此,推測可能是第一次commit的原因,導致命令無法執行。
解決方法:可以使用git update-ref -d HEAD
命令來實現想要的效果。嘗試過后,發現commit被成功撤銷,仍然保留了add后的結果。
Git提示 fatal: Not a git repository 錯誤解決方法
fatal: Not a git repository (or any of the parent directories): .git
提示說沒有.git這樣一個目錄,解決辦法如下:
git init
然后在進行操作就可以了。
tips:輸入log id回退更方便
如下