我还在学习Git的工作流程,并意识到当我提交一些文件时,我不小心在错误的工作分支中。所以使用EGit,我列出了提交历史记录,并从上下文菜单中选择了Revert Commit来进行几次提交。
我已经意识到我想要那些提交,但无法在任何地方找到原始提交。好像最初的提交都被删除了。即使在整个git仓库上进行完整的日志列表也不会显示原始提交或恢复提交。
根据我对EGit文档的理解,还原提交只是通过在旧的提交上创建一个新的提交来“撤消”更改,撤消它所做的事情。但是,它似乎实际上删除了我的原始提交。
我吐司吗?我是否永远失去了这些变化?我正在使用EGit 2.1.0.20120919运行Eclipse 3.7。
答案 0 :(得分:4)
git revert
不会删除提交。它只创建一个新的提交,撤消传递给它的某个提交的更改。因此,原始提交仍在存储库中。使用git log
列出提交应该显示原始提交和撤消原始提交所做的提交。
这样,要恢复提交的原始内容,您可以在使用git reset --hard hash
恢复之前恢复还原提交或将存储库状态更改为提交,其中hash表示hash
的{{1}}在代表您commit
。
答案 1 :(得分:1)
你最好的选择是暂时离开eclipse和egit并使用命令行。
有一个名为git reflog
的工具可以向您展示比git log
更多的内容。我建议你尝试一下,看看你对存储库做了什么。