2

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

从那以后我意识到我想要那些提交,但在任何地方都找不到原始提交。似乎原始提交几乎都被删除了。即使在整个 git repo 上列出完整的日志,也不会显示原始提交或还原提交。

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

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

4

2 回答 2

4

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

这样,要恢复提交的原始内容,您可以还原还原提交或将存储库状态更改为还原之前的提交,git reset --hard hash其中哈希表示代表您hash的.commitgit revert

于 2013-01-15T05:23:51.017 回答
1

最好的办法是暂时离开 eclipse 和 egit 并使用命令行。

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

于 2013-01-15T05:24:47.477 回答