执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?

执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?

先理解为什么代码会消失

repo sync 中的 -d 参数是关键:它会让每个项目仓库(repo 管理的子 git 仓库)丢弃本地的分支检出状态,强制切换到与远程清单一致的提交版本 ,相当于对每个子仓库执行了类似 git checkout --detach + 丢弃本地未提交 / 未推送的变更(尤其是未跟踪的分支或游离状态的提交)。

但幸运的是,git 不会轻易彻底删除提交记录,哪怕是被 "覆盖" 的提交,也会在本地保留日志,git reflog 就是用来找回这些 "隐藏" 提交的。

完整恢复步骤

复制代码
git reflog

git show b26a8f71

方法1:

git checkout b26a8f71

方法2:

# 1. 确保当前在你需要的分支(比如master)

git checkout master

# 2. 捡取丢失的提交到当前分支

git cherry-pick b26a8f71


以后这样操作,不要加 -d选项
# 1. 切换到开发分支
repo forall -c 'git checkout feature/my-feature'
repo forall -c 'git checkout al_dev'
 
# 2. 只同步这个分支的最新代码
repo sync -c -j8
相关推荐
全栈陈序员14 小时前
【Git】从入门到精通(一)—— Git简介:什么是版本控制系统
大数据·git·elasticsearch
大猫会长19 小时前
git笔记
git
克里斯蒂亚诺更新21 小时前
git引入其他分支并且合并
git
全栈陈序员21 小时前
【Git】从入门到精通(二)—— Git安装与初次配置
数据仓库·git
XLYcmy21 小时前
实验报告分析评价文档——《第四次阶段汇报:模型产物的仓库瘦身、云端部署与评测链路打通》评析
git·llm·cpu·gpu·反编译·反汇编·safetensors
全栈陈序员21 小时前
【Git】从入门到精通(三)—— 创建第一个Git仓库
大数据·git·elasticsearch
全栈陈序员1 天前
【Git】从入门到精通(四)—— Git三大区域:工作区、暂存区与版本库
大数据·git·elasticsearch
YIN_尹1 天前
【git原理与使用】git基本操作及底层原理(一)
java·git·elasticsearch
AI 编程助手GPT1 天前
GPT 改完配置别直接覆盖:用 git diff 审查两份文件
git·gpt
叼烟扛炮1 天前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习