在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
但现在它声明我正在合并!
答案 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
添加这些文件,然后提交。