3

我将EGitEclipse Indigo SR 2 Build 20120216-1857 一起使用

几乎所有东西都运行良好,除了Replace With -> Commit...功能。事实上,它可以工作,但不能完全恢复项目,因为它留下了我添加的新文件。

看起来它在当前 HEAD 和我选择恢复的提交之间做了一种混合。我真正想要的是用以前的提交替换我的项目的内容,就像在分支之间切换时所做的那样。

有什么解决办法吗?有谁知道最新版本的 Eclipse 是否提供了完整的 EGit 版本?

还是我误解了这个功能?

4

3 回答 3

3

@VonC 向我指出了一种解决方案,但这并不是我真正想要的。

我尝试了重置命令,但首先,我必须标记提交才能选择它。然后它会更改整个master分支并取消下一次提交。事实上,我不想更改任何分支或删除任何提交,我只想能够返回到前一个以查看整个代码并最终运行它。

最后,我可以让它在提交时使用Checkout来工作。查看所有提交:Right click on your project -> Show In -> History

它不会修改您正在处理的任何分支,而只是将项目的内容替换为提交保存的内容。

于 2013-02-01T09:35:29.077 回答
3

Replace with我在 Egit 中知道的“ ”是关于 git checkout的(而不是git revert像下面的robinst 评论)。
而且checkout 和 reset 不一样

我真正想要的是用以前的提交替换我的项目的内容,就像在分支之间切换时所做的那样。

那将更接近“重置”功能
选择“硬重置”将删除任何私有文件并将索引和工作树完全恢复到选定的提交。

在 Egit 中重置

(来自“如何使用 Egit 删除提交? ”)

hard- HEAD 现在指向新的提交,索引和工作树被更新。

您也可以在本教程中看到它:

在 Egit bis 中重置

于 2013-02-01T07:03:18.797 回答
0

除非您将新创建的文件添加到其中,否则新创建的文件不在 git index 中(未跟踪)。由于您将工作区恢复为提交,因此只会修改您跟踪的文件(添加到 git 索引)。不触及新创建的文件。

如果要删除未跟踪的文件:

git clean -f -d会做的。

于 2013-01-31T22:29:55.383 回答