[英]Does EGit “Revert Commit” permanently delete the original commit?
我仍在学习Git的工作流程,并意识到当我提交一些文件时,我偶然进入了错误的工作分支。 因此,使用EGit,我列出了提交历史记录,并从上下文菜单中选择了Revert Commit,进行了两次提交。
从那以后,我意识到我想要这些提交,但是在任何地方都找不到原始的提交。 似乎所有原始提交都被删除了。 即使对整个git repo进行完整的日志列表也不会显示原始提交或还原提交。
从我对EGit文档的理解来看,还原提交只是应该通过在旧版本的基础上创建一个新的提交来“撤消”更改,而撤消所做的工作。 但是,它似乎实际上删除了我的原始提交。
我是烤面包吗? 我是否永久丢失了这些更改? 我正在使用EGit 2.1.0.20120919运行Eclipse 3.7。
如您所说, git revert
不会删除提交。 它只会创建一个新的提交,以撤消传递给它的某个提交的更改。 因此,原始提交仍在存储库中。 用git log
列出提交时,应显示原始提交以及撤消原始提交所做的操作的提交。
这样,要恢复提交的原始内容,您可以使用git reset --hard hash
还原还原的提交或将存储库状态更改为提交之前的提交状态,其中hash表示表示您的commit
之前的提交的hash
git revert
。
最好的选择是暂时离开eclipse和egit并使用命令行。
有一个名为git reflog
的工具,可以比git log
展示更多。 我建议您尝试查看对存储库所做的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.