如何恢复已git add暂存未提交、强制切换分支后丢失的代码?
恢复未提交暂存代码的方法
未提交的暂存内容,Git会在本地保留临时对象,可通过以下步骤尝试恢复:
1. 查找悬空对象
运行命令列出本地Git数据库中所有未关联到任何提交的悬空对象,其中包含你之前暂存的内容:
git fsck --lost-found
2. 验证对象内容
对输出里的每个blob类型对象,用以下命令查看内容,确认是否为丢失的代码:
git show <blob哈希值>
3. 恢复内容
确认目标对象后,可选择两种方式恢复:
- 直接导出到指定文件:
git show <blob哈希值> > 目标文件名.后缀
- 恢复到当前分支的暂存区(还原到之前暂存的状态):
git update-index --add --cacheinfo 100644 <blob哈希值> 目标文件名.后缀
注:100644对应普通文件权限,可执行文件用100755
额外提醒
- 后续切换分支前,建议用
git commit提交暂存内容,或git stash暂存未提交修改,避免强制切换导致内容丢失。 - 未提交的内容不会同步到远程仓库,只能从本地Git数据库恢复。
内容的提问来源于stack exchange,提问作者Anny Hira
相关产品推荐
相关产品推荐

