执行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
相关推荐
AI成长日志1 小时前
【实用工具教程】Git进阶:分支策略与合并冲突解决
git
ruanCat2 小时前
加了 .gitattributes 就万事大吉?我差点毁了整个团队的 Git 工作流
git
咋吃都不胖lyh3 小时前
查看 Git 本地仓库关联的远程仓库链接(URL)
git
wheelmouse77883 小时前
AI 时代的 Git 进阶术:如何优雅地让多个 Agent 并行开发
人工智能·git·ai编程
如意.75913 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
用户91868612868718 小时前
Git 版本控制完全指南:从入门到精通
git
简离20 小时前
Git 一次性清理已跟踪但应忽略文件
前端·git
Drone_xjw20 小时前
【环境搭建】Windows 10上使用Docker搭建本地Git仓库(Gitea)完整教程
windows·git·docker
疯狂成瘾者21 小时前
git学习目录
git·学习
曾几何时`21 小时前
Git——自用手册
git