提交后如何撤消git remove?

时间:2014-06-30 14:10:37

标签: git

我做了git rm -r path/。我承诺了,之后我看到我没有完成git rm --cached。我已经搜索了回去,我也做过:git reset --soft 'HEAD^' 2次。现在我看到我已经回到了我的git树上,但我没有看到删除的文件......

* <I_do_not_know_the_head> commit after removing files   (1)
* <I_do_not_know_the_head> commit before removing files  (2)
* <I_do_know_the_head> current commit                    (3)
* ... other commits                                      (4)

我现在在(3),我没有看到提交(1)(2)。我想回到(1),然后获取已删除的文件。问题是我认为我也做了一些其他的改变,而不仅仅是删除了这些文件。

如何返回上次提交然后只添加删除的文件?请帮忙,我不想疏忽提交。

1 个答案:

答案 0 :(得分:2)

--soft是你的问题。这使工作目录处于当前状态。你想要--hard

git reset --hard <commit_id_of_2>
  

我为什么要 - 硬?我没有2的身份..

您需要--hard,因为这会将工作目录移动到您要迁移到的提交状态。

您必须使用git reflog来确定要返回的提交的提交ID。如果git reflog还不够,那么有很多关于如何使用git reflog --help的问题。