今天在使用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回退更方便
如下