Github Desktop误将BranchA未提交变更带到master后如何恢复原有代码?
操作步骤
- 先确认你提前备份的完整工作文件夹已妥善存放,不会被后续操作覆盖。
- 执行命令清除当前混乱的半合并状态:
git reset --merge
该命令会清空索引中的未合并标记,且不会修改你工作目录内的实际文件,不会丢失已有改动。
- 状态清理完成后,切回你的开发分支(注意分支名大小写需和你创建的实际分支名一致):
git checkout BranchA
操作完成后你在BranchA上的所有未提交开发内容就会恢复到误切换master分支之前的状态。
- 为了避免后续再出现同类问题,立刻提交当前BranchA的所有改动:
git add . git commit -m "备份BranchA近期开发内容"
备选方案(上述步骤失效时使用)
如果你执行完git reset --merge后仍有报错,可直接通过你的完整备份恢复:
- 强制重置当前master分支到远程的干净状态,丢弃所有本地混乱改动:
git reset --hard origin/master
- 切回BranchA分支:
git checkout BranchA
- 将你提前备份的完整工作文件夹内容直接覆盖当前项目目录,即可完整恢复所有开发内容。
内容的提问来源于stack exchange,提问作者all_too_much
相关产品推荐
相关产品推荐

