切换Git分支后未提交修改丢失,如何恢复本地更新文件?
恢复未提交的Git修改
先检查新分支是否保留了修改:
执行命令切回之前创建的新分支:git checkout <你的新分支名>,查看是否存在之前的未提交修改。如果有,直接提交即可。如果新分支里没有,通过Git对象库恢复:
- 执行命令查找未被引用的Git对象(包含未提交的修改内容):
git fsck --lost-found
该命令会将所有孤立的对象存入.git/lost-found/other目录下。 - 查看这些孤立对象的内容,确认是否是丢失的修改:
可以用git show <对象哈希值>或者cat .git/lost-found/other/<对象哈希值>查看内容。 - 恢复指定文件:
找到对应哈希值后,执行git checkout <对象哈希值> -- <目标文件名>,直接将修改恢复到原文件;或者用git show <对象哈希值> > <目标文件名>将内容写入指定文件。
- 执行命令查找未被引用的Git对象(包含未提交的修改内容):
后续注意:未提交修改时切换分支前,建议先用
git stash暂存修改,切换分支后再用git stash pop恢复,避免类似丢失情况。
内容的提问来源于stack exchange,提问作者Kento Yamazaki
相关产品推荐
相关产品推荐

