我很惊讶,在SO上找不到答案。
我们能在git中恢复/还原已删除的提交吗?
例如,这就是我所做的:
# Remove the last commit from my local branch
$ git reset --hard HEAD~1
# Force push the delete
$ git push --force
现在,是否有办法找回已删除的提交?Git内部记录(日志)删除吗?
我很惊讶,在SO上找不到答案。
我们能在git中恢复/还原已删除的提交吗?
例如,这就是我所做的:
# Remove the last commit from my local branch
$ git reset --hard HEAD~1
# Force push the delete
$ git push --force
现在,是否有办法找回已删除的提交?Git内部记录(日志)删除吗?
要回到那个提交,您可以使用reflog查找其引用。
参考日志或“reflogs”记录了本地存储库中分支和其他引用的提示何时更新。
运行此命令:
git reflog
扫描前几个条目,找到遗失的提交。跟踪该提交的标识符(您可以使用第1或第2列)。我们称此标识符为"ID"。
如果自执行reset --hard以来没有进行任何额外的操作,则可以执行以下操作:
git reset --hard ID
git push -f origin master
如果在重置之后进行了其他工作,您可以使用以下方法将其挑选到您的分支中:
git cherry-pick ID
git push origin master
是的,您可以使用reflog
找到您的提交记录:
git reflog
显示所有在您的仓库中创建的提交 - 然后您应该使用checkout命令检出已删除的提交。git checkout <your commit-SHA>
或者通过挑选它来进行精选:
git cherry-pick <your commit-SHA>