Git 误操作急救手册:5 分钟救回你的代码

你是不是也遇到过这些崩溃瞬间:

- git reset --hard 之后发现代码全没了

- git rebase 搞到一半发现搞砸了

- 误删了分支,里面还有没 merge 的代码

- git push -f 把远程仓库覆盖了

别慌,今天教你用 Git 自带的"后悔药"救回代码。

一、git reflog:你的时间机器

git reflog 是 Git 的终极后悔药,它记录了 HEAD 的每一次移动。

查看历史记录:

git reflog

输出示例:

a1b2c3d HEAD@{0}: reset: moving to HEAD~1

e4f5g6h HEAD@{1}: commit: 修复登录 bug

i7j8k9l HEAD@{2}: merge feature-branch

找到你想要恢复的那个 commit hash,然后:

git reset --hard HEAD@{1}

或者用 commit hash:

git reset --hard e4f5g6h

二、误删分支的恢复方法

场景:你删了一个分支,里面还有重要代码

git branch -D feature-branch

恢复步骤:

1. 先用 git reflog 找到该分支最后一次提交的 hash

2. 基于这个 hash 创建新分支:

   git branch feature-branch-recovered <commit-hash>

3. 检查代码是否正确,确认后可以重命名:

   git branch -m feature-branch-recovered feature-branch

三、git rebase 搞砸了怎么办

rebase 过程中发现不对劲,立即停止:

git rebase --abort

如果已经完成 rebase 但发现问题,用 reflog 找回 rebase 前的状态:

git reflog

git reset --hard HEAD@{1}

四、git stash 救急

临时切换分支但当前修改不想提交:

git stash

查看 stash 列表:

git stash list

恢复 stash:

git stash pop

五、预防胜于治疗

1. 重要操作前先创建备份分支:

   git branch backup-branch

   

2. 使用 git status 确认当前状态

3. 推送前务必 git diff 检查

4. 配置 git alias 快捷命令:

   git config --global alias.lg "log --oneline --graph"

最后提醒:

生产环境操作前,先在测试仓库演练一遍。Git 虽然强大,但也要敬畏。

你遇到过最惊险的 Git 误操作是什么?评论区分享一下你的救命经历!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐