当尝试恢复到之前的提交时,我尝试了:
git revert --no-commit 0766c053..HEAD
然而这给出了一个错误:
empty commit set passed
问题:错误是什么意思,以及revert
命令出了什么问题?
答案 0 :(得分:4)
在我看来,您滥用double dot
注释来指定提交范围。
因此,您的范围不会返回任何提交,这意味着revert
无法执行任何操作,因为您有效地说“ revert no commot ”。
gitpro book解释double dot
annotation (link to chapter)相当坚实:
最常见的范围规范是双点语法。这基本上要求Git解决一系列提交,这些提交可以从一个提交到达,但是不能从另一个提交到达。例如,假设您有一个如图6-1所示的提交历史记录。
您希望查看实验分支中尚未合并到主分支中的内容。您可以要求Git向您显示仅包含
master..experiment
提交的日志 - 这意味着“所有可通过实验到达的提交都是主服务器无法访问的”。为了简洁和清晰起见,我将使用图中提交对象的字母代替实际日志输出,按照它们显示的顺序:
$ git log master..experiment
D
C
另一方面,如果您希望看到相反的情况 -
master
中所有不在experiment
中的提交 - 您可以反转分支名称。experiment..master
向您显示master
无法访问的experiment
中的所有内容:
$ git log experiment..master
F
E
答案 1 :(得分:2)
删除..HEAD部分。至少在我的系统(git v2.7.4)上,这解决了这个问题。
git revert --no-commit 0766c053