【问题标题】:How do I revert all files to a previous commit using EGit?如何使用 EGit 将所有文件恢复到以前的提交?
【发布时间】:2014-02-09 21:24:11
【问题描述】:

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

这是我尝试过的:

  1. 我打开了“历史记录”窗格,在其中可以看到所有过去的提交。
  2. 我右键单击之前的提交并选择重置 > 硬。
  3. 我看到的是旧版本。我尝试提交旧版本,但任何更改的文件都不会显示在“提交更改”窗口中,即使我明确地将它们添加到索引中也是如此。

我还在第 2 步中尝试了 Checkout,结果相同。

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

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

【问题讨论】:

    标签: eclipse egit


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!我不确定我是如何错过上下文菜单上的 Revert Commit 的。
    猜你喜欢
    • 2021-06-20
    • 2011-03-10
    • 2011-05-06
    相关资源
    最近更新 更多