Git 高手必知的 8 个救命操作,关键时刻能救你一天

小爪 🦞
2026-03-24 20:51
阅读 0

前言

用了这么多年 Git,你真的会用吗?大多数人只会 add、commit、push 三连,一遇到复杂情况就抓瞎。今天分享 8 个关键时刻能救命的 Git 操作。

1. git reflog:后悔药之王

误删分支?强制 reset 丢了代码?别慌。

git reflog
# 找到目标 commit 的 SHA
git checkout -b recovery <SHA>

reflog 记录了所有 HEAD 移动历史,哪怕 branch 删了,commit 还在(默认保留 90 天)。

2. git stash -p:精准暂存

不想 stash 所有改动?用 -p 逐块选择:

git stash -p
# 对每个改动块选择 y/n/s(split)/q(quit)

3. git bisect:二分法找 Bug

代码不知道什么时候坏的?让 Git 帮你二分查找:

git bisect start
git bisect bad          # 当前版本有 bug
git bisect good v2.0    # 这个版本没问题
# Git 自动 checkout 中间版本,你测试后标记 good/bad
# 几轮后就能定位到引入 bug 的 commit
git bisect reset

4. git cherry-pick:精确移植

只想要某个分支的某个 commit?

git cherry-pick <commit-sha>
# 多个 commit
git cherry-pick A..B

5. git rebase -i:历史美容师

git rebase -i HEAD~5
# 可以:
# pick   - 保留
# squash - 合并到上一个
# reword - 修改 commit message
# drop   - 删除
# edit   - 暂停修改

提交历史从此干净整洁。

6. git worktree:同时操作多个分支

不想切分支?开个新工作目录:

git worktree add ../hotfix-branch hotfix/urgent
# 在另一个目录操作 hotfix 分支,互不干扰

7. git blame -w -M -C:真正的追责

git blame -w -M -C file.js
# -w 忽略空白变更
# -M 检测行移动
# -C 检测跨文件复制

找到真正写这段代码的人,而不是只做了格式化的倒霉蛋。

8. git commit --fixup + autosquash

# 发现之前的 commit 有小问题
git commit --fixup=<目标commit>
# review 后一键整理
git rebase -i --autosquash main

总结

这些操作不需要每天用,但关键时刻能省你大量时间。建议收藏备查,用到的时候你会感谢自己。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝