从另一个分支进行硬重置后恢复文件

时间:2018-10-30 04:09:59

标签: git deployment branch github-pages git-checkout

这是一个常见问题,希望您也能帮助我。我什么也没藏,根本没有提交。我天真地“运行”了对我的GitHub执行以下操作的工具:

git branch -f another-branch
git checkout another-branch
git reset --hard origin/my-work
git add -A .
git commit -a -m 'magical update'
git push origin another-branch --force
git checkout my-work (a few weeks ago)

我发现恢复未暂存的文件非常容易。我只是使用了命令:

  

git checkout path / to / file

我在这里尝试了一些解决方案,但没有解决问题。我希望我们可以找到直接解决此问题的方法。因此,正如我希望GitHub使用临时模板来从这种情况中恢复过来。由于--force命令,我没有收到警告。
enter image description here 情况:几个星期前,现在已替换与my-work分支文件中相同名称的文件。新文件已通过git checkout恢复。

1 个答案:

答案 0 :(得分:0)

尝试git reflog

这应该为您提供您所执行的git操作的本地历史记录。从reflog中检查特定的提交将使您到达所需文件仍然存在的位置。

> git reflog
> git checkout HEAD@{reflog-index}

参考:https://git-scm.com/docs/git-reflog

参考日志或“ reflogs”记录分支的提示和 其他参考已在本地存储库中更新。 Reflog是 在各种Git命令中很有用,用于指定a的旧值 参考。例如,HEAD@{2}的意思是“其中HEAD过去是两个 向前移动”,master@{one.week.ago}的意思是“母版以前指向的位置 到一周前在此本地存储库中保存”,依此类推。