git commit给出错误:传递了空提交集

时间:2014-07-14 05:42:05

标签: git github

当尝试恢复到之前的提交时,我尝试了:

git revert --no-commit 0766c053..HEAD

然而这给出了一个错误:

empty commit set passed

问题:错误是什么意思,以及revert命令出了什么问题?

2 个答案:

答案 0 :(得分:4)

在我看来,您滥用double dot注释来指定提交范围。

因此,您的范围不会返回任何提交,这意味着revert无法执行任何操作,因为您有效地说“ revert no commot ”。

gitpro book解释double dot annotation (link to chapter)相当坚实:

  

最常见的范围规范是双点语法。这基本上要求Git解决一系列提交,这些提交可以从一个提交到达,但是不能从另一个提交到达。例如,假设您有一个如图6-1所示的提交历史记录。

     

Figure 6-1. Example history for range selection.

     

您希望查看实验分支中尚未合并到主分支中的内容。您可以要求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