restore-Git-我们可以恢复已删除的提交吗?
这个问题已经在这里有了答案:
- 如何恢复在Git中丢失的提交? 3个答案
我很惊讶,在SO上找不到答案。
我们可以在git中恢复/恢复已删除的提交吗?
例如,这就是我所做的:
# Remove the last commit from my local branch
$ git reset --hard HEAD~1
# Force push the delete
$ git push --force
现在,是否有办法找回已删除的提交? git是否在内部记录(记录)删除?
Atri asked 2020-01-07T22:23:24Z
3个解决方案
122 votes
要返回到该提交,可以使用reflog查找其引用。
参考日志或“ reflogs”记录分支的提示和 其他参考已在本地存储库中更新。
运行以下命令:
git reflog
扫描前几项,并找到丢失的提交。 跟踪该提交的标识符(可以使用第一列或第二列)。 我们将标识符称为“ ID”。
如果自从进行重设-硬以来没有做任何额外的工作,则可以执行以下操作:
git reset --hard ID
git push -f origin master
如果自重设以来您还进行了其他工作,则可以像下面这样重新选择分支:
git cherry-pick ID
git push origin master
14 votes
是的,您可以在reflog
中找到您的提交,请使用:
git reflog
以显示所有/已经在您的存储库中创建的提交-在此之后,您应该通过checkout命令检出以删除提交
git checkout <your commit-SHA>
或通过以下方式挑选它:
git cherry-pick <your commit-SHA>
4 votes
尝试使用git reflog
(又称为参考日志),它可以让您返回本地存储库中的历史记录。
[https://git-scm.com/docs/git-reflog]