写了8年代码,Git这些命令我用到现在还在用,有些是真的能省时间。今天整理10个我自己天天敲的Git技巧,都是2026年验证过好用的。
1. git stash push -m "备注" 比单纯 stash 好用
以前我老用 git stash,时间一长就忘了里面存的是啥。后来养成习惯加个备注:
git stash push -m "首页样式改到一半"
等回来的时候 git stash list 一眼就能看到每个暂存是干嘛的。2026年了,Git stash 已经支持 --staged 参数,可以单独暂存已暂存区的文件,不用再费劲把工作区和暂存区分开操作。
2. git log --oneline --graph --all 看分支图
这个我自己设了个别名 git tree,敲起来方便:
git config --global alias.tree "log --oneline --graph --all --decorate"
每次合并前跑一下这个命令,整个项目的分支结构一目了然。比看GitHub那个网络图快多了,而且不用切到浏览器。
3. git reflog 救命的
上周我 rebase 完发现少了一个提交,差点以为丢了。用 git reflog 一查,那个提交的 hash 还在:
git reflog
# 找到那个提交的 HEAD@{n}
git cherry-pick 那个hash
reflog 默认保留90天,够你发现错误了。2026年 Git 2.48 版本把 reflog 的过期策略改得更灵活了,可以在配置里自定义保留天数。
4. git bisect 二分定位bug
3个月前我们项目出了一个回归bug,不知道是哪次提交引入的。我用 git bisect 在200多个提交里二分查找,不到10步就定位到了:
git bisect start
git bisect bad HEAD
git bisect good v2.1.0
# Git 自动跳到中间那个提交
# 测试,如果还有bug就 git bisect bad
# 如果没了就 git bisect good
# 重复几次就找到了
这比一个个提交排查效率高太多了。
5. git worktree 同时开多个分支
以前切分支要 stash 或者 commit 当前改动,烦得很。git worktree 让我在另一个目录同时开一个分支,两个窗口各干各的:
git worktree add ../project-hotfix hotfix-2026
cd ../project-hotfix
# 这里就是 hotfix-2026 分支,互不干扰
用完删掉就行:git worktree remove ../project-hotfix。现在修紧急bug和开发新功能可以同时进行,不用来回切。
6. git rebase -i HEAD~N 整理提交历史
我习惯在提PR之前用 git rebase -i HEAD~5 把最近5个提交整理一下。把"fix typo""改个小东西"这种碎提交 squash 成一个有意义的提交:
git rebase -i HEAD~5
# 编辑器里把想合并的 commit 前面的 pick 改成 squash
合并完之后 commit 历史干净很多,review 的人看起来也舒服。
7. git diff --word-diff 看具体改了啥词
这个是我最常用的 diff 方式。普通 diff 显示整行变化,但有时候只改了一个变量名,--word-diff 直接标出来改了哪个词:
git diff --word-diff=color
差别立马就清楚了,特别是代码review的时候,不用瞪着眼睛在一大段绿红里找改了哪里。
8. git blame -L 只看某几行
看一个长文件的时候,不需要 git blame 整个文件。直接指定行号范围:
git blame -L 120,150 src/main.go
只显示120到150行是谁改的、什么时候改的。配合 --date=short 日期格式更清爽。
9. git switch 和 git restore 替代 checkout
Git 2.23 就引入了,但我发现到2026年还是有很多人在用 checkout。实际上 git switch 专管分支切换,git restore 专管文件恢复,语义清楚多了:
git switch feature-2026 # 切分支
git switch -c new-branch # 新建并切过去
git restore --staged . # 取消暂存
git restore . # 丢弃工作区改动
再也不会搞混 checkout 到底是在切分支还是在恢复文件。
10. git commit --fixup + autosquash
PR review 之后经常要改一个小地方,但是不想加一个新的"根据review修改"的提交。用 fixup:
git commit --fixup=HEAD
# 然后 rebase 的时候自动合并
git rebase -i --autosquash HEAD~5
fixup 提交会自动排到对应的原提交后面,并且预置为 squash 模式。改完代码直接跑这个,比手动 rebase 快多了。
以上10个技巧是我2026年每天都在用的,没有花里胡哨的东西,就是实实在在能省时间的。学会其中三五个,日常敲 Git 的效率就能上一个台阶。
还木有评论哦,快来抢沙发吧~