You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行git pull --rebase后本地变更丢失,分支状态异常求助

解决Git rebase后本地变更丢失、分支状态异常及合并问题

第一步:找回丢失的本地变更

Git所有操作都会留下痕迹,按以下步骤恢复:

  • 打开终端输入 git reflog,这会列出你所有的Git操作历史,找到执行git pull --rebase之前的提交哈希值(一串字母数字组合)。
  • 输入 git reset --hard <对应哈希值>,即可回到rebase前的状态,丢失的变更会恢复。

第二步:修复分支状态异常

从截图1的状态来看,当前分支处于rebase中断状态,先清理这个异常状态:

  • 输入 git rebase --abort,终止当前的rebase操作,回到正常分支状态。
  • 输入 git branch确认当前分支,若在master分支,切换到工作分支:git checkout loginAndRegister。
  • 输入 git status检查分支变更,有未提交内容的话执行git add . && git commit -m "保存登录注册功能变更"。

第三步:正确合并分支并推送master

之前推master被拒,是因为远程master代码比你本地新,用新手友好的merge方式操作:

  1. 切换到master分支:git checkout master
  2. 拉取远程最新master代码:git pull origin master(将远程更新合并到本地master,不会丢失代码)
  3. 切回loginAndRegister分支:git checkout loginAndRegister,确保所有本地变更都已提交
  4. 再次切回master,执行合并:git merge loginAndRegister
  5. 如果出现合并冲突,打开冲突文件,删除<<<<<<<、=======、>>>>>>>标记,保留需要的代码
  6. 冲突解决后执行git add <冲突文件名>,再git commit完成合并
  7. 最后推送master:git push origin master

新手避坑提醒

  • 别随意使用git pull --rebase,这是变基操作会改写提交历史,新手极易丢失代码,用普通git pull(默认merge模式)更安全。
  • 永远不要直接在master分支写代码,所有功能开发都在单独分支(如loginAndRegister)完成,测试无误后再合并到master。

内容的提问来源于stack exchange,提问作者Gaurav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 14:46:01