在eclipse中删除文件,如何让它们恢复

时间:2015-01-11 18:26:30

标签: java git

在eclipse中,我删除了一些java文件,但现在我需要它们,这是我的git日志:

  

commit efc5c0af442a8419eec19997b84c71ebae1b1be4作者:jack_Git    日期:2015年1月11日星期日10:17:28 -0800

screwed up
     

commit 735349994c3150de90b539031644b8e42c03f277作者:jack_Git    日期:Sun Jan 11 10:07:03 2015 -0800

manifest changed
     

commit cc4c33778e333ea15577c6794e42fc2856d9bee1作者:jack_Git    日期:2015年1月11日星期日10:02:34 -0800

merged the asynctask
     

commit 781a8f41e1168abd3b6e44d17df0f117b78b7a26作者:jack_Git    日期:Sun Jan 11 08:55:28 2015 -0800

我想回滚到“manifest changed”提交。

以下是我的尝试:

git revert 735349994c3150de90b539031644b8e42c03f277

但现在它声明我正在合并!

2 个答案:

答案 0 :(得分:1)

您似乎对git revert的含义感到困惑。它生成一个新的commit ,它可以恢复(撤消)特定的提交。在您的情况下,它将撤消中的更改 “manifest changed”提交。这可能是导致合并的原因。 如果要撤消“搞砸”提交,则应执行git revert efc5c0af44。或者你可以做一个git reset 735349994c31,因为它会改变历史,这会有点暴力和安全性。

如果您只想要特定文件,还可以尝试git checkout <commit> -- <filename>

有关git还原的更多信息,请参阅本教程:https://www.atlassian.com/git/tutorials/undoing-changes/

答案 1 :(得分:0)

首先确保你的HEAD干净,然后再恢复。

其次,在恢复之后,某些文件可能包含HEAD&amp ;;旧的提交, 您首先需要git status查看哪些文件存在冲突,然后打开这些文件,手动合并以解决如下行:

<<<<<<< HEAD
=======
>>>>>>> parent of 97d2375... ...

也许您可以git checkout提交,复制已删除的文件,然后返回HEAD添加这些文件,然后提交。