在旧commit上提交代码后切回main分支,如何找回该提交?
找回步骤
- 第一步:执行
git reflog查看HEAD变更历史
你之前的提交是在*分离头指针(detached HEAD)*状态下完成的,没有绑定任何本地分支,所以git log --all无法扫描到这类悬空提交,而git reflog会记录所有HEAD指向过的提交记录,默认会保留90天。执行命令后找到提交信息为Login corrections对应的commit哈希值。 - 第二步:将提交合并到main分支,有两种可选方案:
- 直接拣选提交到当前main分支:执行
git cherry-pick <你找到的对应commit哈希值>,即可把该提交的修改直接合并到当前的main分支。 - 先提取为独立分支再合并:如果你需要保留完整的提交上下文,可以执行
git branch <自定义分支名> <对应commit哈希值>,后续再把这个分支合并到main即可。
- 直接拣选提交到当前main分支:执行
注意事项
在找到提交前不要执行git gc这类清理Git悬空对象的命令,避免提交被永久清理。
内容的提问来源于stack exchange,提问作者Hector Trivino
相关产品推荐
相关产品推荐

