当我试图恢复到之前的提交时,我试过:
git revert --no-commit 0766c053..HEAD
Run Code Online (Sandbox Code Playgroud)
但是这给出了一个错误:
empty commit set passed
Run Code Online (Sandbox Code Playgroud)
问题:错误意味着什么,revert命令出了什么问题?
在我看来,您误用了double dot注释来指定提交范围。
所以你的范围不会返回任何提交,这意味着revert不能做任何事情,因为你有效地说“不恢复提交”。
该gitpro本书解释了double dot注解(链接到章)相当扎实:
最常见的范围规范是双点语法。这基本上要求 Git 解决一系列提交,这些提交可从一个提交访问但无法从另一个提交访问。例如,假设您有一个类似于图 6-1 的提交历史记录。
您想查看您的实验分支中尚未合并到您的主分支中的内容。你可以让 Git 向你显示那些提交的日志
master..experiment——这意味着“所有提交都可以通过实验访问,但主服务器无法访问。” 为了在这些示例中简洁明了,我将使用图中提交对象的字母代替实际日志输出,按它们显示的顺序:
$ git log master..experiment
D
C另一方面,如果你想看到相反的情况——所有的提交
master都不在experiment——你可以反转分支名称。experiment..master向您显示master无法访问的所有内容experiment:
$ git log experiment..master
F
E