EGit“还原提交”会永久删除原始提交吗?

时间:2013-01-15 04:27:23

标签: eclipse git egit

我还在学习Git的工作流程,并意识到当我提交一些文件时,我不小心在错误的工作分支中。所以使用EGit,我列出了提交历史记录,并从上下文菜单中选择了Revert Commit来进行几次提交。

我已经意识到我想要那些提交,但无法在任何地方找到原始提交。好像最初的提交都被删除了。即使在整个git仓库上进行完整的日志列表也不会显示原始提交或恢复提交。

根据我对EGit文档的理解,还原提交只是通过在旧的提交上创建一个新的提交来“撤消”更改,撤消它所做的事情。但是,它似乎实际上删除了我的原始提交。

我吐司吗?我是否永远失去了这些变化?我正在使用EGit 2.1.0.20120919运行Eclipse 3.7。

2 个答案:

答案 0 :(得分:4)

正如您所说,

git revert不会删除提交。它只创建一个新的提交,撤消传递给它的某个提交的更改。因此,原始提交仍在存储库中。使用git log列出提交应该显示原始提交和撤消原始提交所做的提交。

这样,要恢复提交的原始内容,您可以在使用git reset --hard hash恢复之前恢复还原提交或将存储库状态更改为提交,其中hash表示hash的{​​{1}}在代表您commit

的提交之前{1}}

答案 1 :(得分:1)

你最好的选择是暂时离开eclipse和egit并使用命令行。

有一个名为git reflog的工具可以向您展示比git log更多的内容。我建议你尝试一下,看看你对存储库做了什么。