误推代码至错误仓库后执行Git拉取致本地变更丢失,如何恢复?
恢复本地变更并处理错误远程源的方案
一、找回丢失的本地变更
查看Git操作历史记录,定位执行错误
git pull前的本地状态:git reflog在输出结果中,找到标记为
pull origin master: Merge ...的记录,取其前一条记录的提交ID(例如a1b2c3d),这就是你执行pull操作前的本地状态节点。恢复到该节点状态:
- 直接覆盖当前混乱的工作区(若无需保留当前混乱状态):
git reset --hard a1b2c3d - 先备份当前混乱状态再恢复(更安全):
git branch backup-failed-merge git reset --hard a1b2c3d
- 直接覆盖当前混乱的工作区(若无需保留当前混乱状态):
找回未提交的本地修改:
- 检查是否有未被记录的 stash:
若有记录,执行git stash listgit stash apply stash@{n}(n为列表中的序号)恢复。 - 若没有 stash 记录,尝试查找Git丢失的对象:
然后查看git fsck --lost-found.git/lost-found/other目录下的文件,手动提取需要的内容。
- 检查是否有未被记录的 stash:
二、移除错误的远程源
确认当前配置的远程仓库:
git remote -v删除错误的远程源(假设错误源名称为
origin):git remote remove origin(可选)添加正确的Bitbucket仓库作为远程源:
git remote add origin 你的正确仓库URL
内容的提问来源于stack exchange,提问作者sara
相关产品推荐
相关产品推荐

