返回重置本地提交

时间:2014-02-04 15:38:12

标签: git commit reset

我克隆了一个存储库,进行了一些更改并提交了一些文件,然后使用git pull来获取远程修改。意识到它已经自动修改了一些更改,我想回到我的最新(本地)提交,只需git fetch远程并手动合并。

所以,我使用git log来查找我的最新提交,git reset --hard my_commit_hash。但现在,我回到了第一个方向,我的每一个提交都丢失了。我怎样才能回到最近的那个?

1 个答案:

答案 0 :(得分:3)

如果您实际提交了提交,并以某种方式进行了实际上并非最新的提交,那么您可以使用reflog返回到原来的位置。但听起来更像是您添加了git add的文件,而实际上并没有git commit这些文件。在这种情况下,你的问题要困难得多。添加的文件将在对象数据库中创建对象,您可以使用git fsck找到它们,但恢复它们需要的工作量比您需要的多一些。那你在哪种情况?

修改

一旦你在reflog中看到了你想要的提交,比如说HEAD@{3},你所要做的就是git reset --hard HEAD@{3}