繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM