2014-02-06 15 views
0

我使用EGit 2.2.0.20-1212191850-r和GitHub。我所有的本地文件都被提交併推送。只有主分支。我想將所有文件永久恢復到以前的提交(不是HEAD〜1)。我該怎麼做?如何使用EGit將所有文件恢復到之前的提交?

這是我曾嘗試:

  1. 我打開歷史窗格,在那裏我看到所有過去的提交。
  2. 我右鍵單擊早先的提交併選擇Reset> Hard。
  3. 我看到舊版本。我嘗試提交舊版本,但沒有任何已更改的文件顯示在Commit Changes窗口中,即使我明確將它們添加到索引中。

我也嘗試在第2步中籤出,結果相同。

Eclipse git checkout (aka, revert)不相關,因爲它只是恢復到HEAD,而不是先前的提交。

我真的很想做的是從早期的提交創建一個新的分支,但我會解決恢復。

回答

1

如果您已經推送提交,通常建議恢復提交。其原因在於,恢復會向歷史記錄添加新的提交,而不是替換歷史記錄,這使得其他人可以僅僅取而代之地替換歷史記錄。

因此,在歷史視圖中,選擇要撤消的最新提交,打開上下文菜單並選擇「還原」。重複父提交。完成後,推送結果。另外請注意,「git checkout」和「git revert」是不同的東西,「git revert」會創建一個新的提交,用於撤消之前提交的更改。另一方面,「git checkout」將工作目錄或當前分支更改爲提交。你可能會感到困惑,因爲「svn revert」會做什麼「git checkout」,而不是「git revert」。

+0

謝謝!我不確定我是如何錯過上下文菜單上的Revert Commit。 –

相關問題