如何使用EGit将所有文件还原为先前的提交?

时间:2014-02-06 01:26:27

标签: eclipse egit

我正在使用EGit 2.2.0.20-1212191850-r和GitHub。我的所有本地文件都已提交并推送。只有主分支。我想永久地将我的所有文件恢复到之前的提交(不是HEAD~1)。我该怎么做?

以下是我的尝试:

  1. 我打开了历史记录窗格,在那里我看到了所有过去的提交。
  2. 我右键点击了之前的提交,然后选择了重置>硬。
  3. 我看到旧版本。我尝试提交旧版本,但是在Commit Changes窗口中没有显示任何已更改的文件,即使我明确地将它们添加到索引中。
  4. 我也在步骤2中尝试了Checkout,结果相同。

    Eclipse git checkout (aka, revert)不相关,因为它只是恢复到HEAD而不是早先的提交。

    我真正想做的是从早期的提交中创建一个新的分支,但我会满足于恢复。

1 个答案:

答案 0 :(得分:1)

如果您已经推送了提交,通常建议还原提交。原因是revert会在历史记录中添加新的提交而不是替换历史记录,这使得其他人可以直接拉取而不必更换已替换的历史记录。

因此,在“历史记录”视图中,选择要撤消的最新提交,打开上下文菜单并选择“还原”。重复父提交。完成后,按结果。

另请注意,“git checkout”和“git revert”是不同的东西,“git revert”会创建一个新的提交,撤消先前提交的更改。另一方面,“git checkout”将工作目录或当前分支更改为提交。您可能会感到困惑,因为“svn revert”会执行“git checkout”的操作,而不是“git revert”。