我在 Eclipse Indigo SR 2 Build 20120216-1857 中使用 EGit 。
除Replace With -> Commit...
函数外,几乎所有内容都运行良好。事实上它可以工作,但不会像现在这样恢复项目,因为它留下了我之后添加的新文件。
看起来它在当前HEAD和我选择恢复的提交之间有一种混合。 我真正想要的是用之前的提交替换我的项目内容,就像在分支之间切换一样。
有什么解决方案吗?有没有人知道最新版本的Eclipse是否提供了EGit的完全可用版本?
或者我误解了这个功能?
答案 0 :(得分:3)
我在Egit中知道的“Replace with
”是 about git checkout (而不是git revert
,robinst comments below)。
并且checkout is not the same than reset。
我真正想要的是用之前的提交替换我的项目内容,就像在分支之间切换一样。
这将更接近 feature "Reset" 选择“硬重置”将删除任何私有文件,并将索引和工作树完全恢复到选定的提交。
(来自“How to delete commits with Egit?”)
hard
- HEAD现在指向新提交,索引和工作树都会更新。
您也可以在this tutorial中看到它:
答案 1 :(得分:3)
@VonC向我指出了一个解决方案,但这并不是我想要的。
我尝试了重置命令,但首先,我必须标记提交才能选择它。然后它更改整个master
分支并取消下一个提交。实际上我不想更改任何分支或删除任何提交,我只是希望能够返回到前一个以查看整个代码并最终运行它。
最后,我可以在提交时使用 Checkout 。要查看所有提交:Right click on your project -> Show In -> History
它不会修改您正在处理的任何分支,而只是用提交保存的项目替换项目的内容。
答案 2 :(得分:0)
新创建的文件不在git索引(未跟踪)中,除非您将它们添加到。由于您要将工作区恢复为提交,因此仅修改跟踪的文件(添加到git索引)。不会触及新创建的文件。
如果您要删除未跟踪的文件:
git clean -f -d
会这样做。