我克隆了一个存储库,进行了一些更改并提交了一些文件,然后使用git pull
来获取远程修改。意识到它已经自动修改了一些更改,我想回到我的最新(本地)提交,只需git fetch
远程并手动合并。
所以,我使用git log
来查找我的最新提交,git reset --hard my_commit_hash
。但现在,我回到了第一个方向,我的每一个提交都丢失了。我怎样才能回到最近的那个?
答案 0 :(得分:3)
如果您实际提交了提交,并以某种方式进行了实际上并非最新的提交,那么您可以使用reflog返回到原来的位置。但听起来更像是您添加了git add
的文件,而实际上并没有git commit
这些文件。在这种情况下,你的问题要困难得多。添加的文件将在对象数据库中创建对象,您可以使用git fsck
找到它们,但恢复它们需要的工作量比您需要的多一些。那你在哪种情况?
修改强>
一旦你在reflog中看到了你想要的提交,比如说HEAD@{3}
,你所要做的就是git reset --hard HEAD@{3}