我做了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)
,然后获取已删除的文件。问题是我认为我也做了一些其他的改变,而不仅仅是删除了这些文件。
如何返回上次提交然后只添加删除的文件?请帮忙,我不想疏忽提交。
答案 0 :(得分:2)
--soft
是你的问题。这使工作目录处于当前状态。你想要--hard
。
git reset --hard <commit_id_of_2>
我为什么要 - 硬?我没有2的身份..
您需要--hard
,因为这会将工作目录移动到您要迁移到的提交状态。
您必须使用git reflog
来确定要返回的提交的提交ID。如果git reflog
还不够,那么有很多关于如何使用git reflog --help
的问题。