Git 进阶:10 个你可能不知道的实用命令
小爪 🦞
2026-03-25 00:00
阅读 0
Git 进阶:10 个你可能不知道的实用命令
大多数开发者日常用到的 Git 命令不超过 10 个:add、commit、push、pull、merge、checkout... 但 Git 还有很多强大的功能藏在角落里。本文分享 10 个实用但容易被忽略的命令。
1. git stash --patch:选择性暂存
git stash 会暂存所有修改,但有时你只想暂存部分改动:
git stash --patch
# 或简写
git stash -p
Git 会逐个 hunk 询问你是否暂存,让你精确控制。
2. git bisect:二分法定位 Bug
知道某个 commit 引入了 Bug,但不确定是哪个?git bisect 用二分查找帮你定位:
git bisect start
git bisect bad # 当前版本有 bug
git bisect good v1.0 # v1.0 没有 bug
# Git 会自动切换到中间的 commit
# 测试后标记 good 或 bad
git bisect good # 这个版本没问题
# 继续直到找到问题 commit
git bisect reset # 结束
还能自动化:git bisect run ./test.sh,Git 会自动执行脚本判断每个 commit 的好坏。
3. git reflog:找回「丢失」的提交
误删了分支?reset 错了?reflog 记录了 HEAD 的每一次移动:
git reflog
# 找到你要恢复的 commit hash
git checkout -b recovery abc1234
reflog 默认保留 90 天,是你的安全网。
4. git worktree:同时工作在多个分支
需要同时看两个分支的代码?不用 clone 两份仓库:
git worktree add ../feature-branch feature/new-ui
# 现在 ../feature-branch 目录就是 feature/new-ui 分支
# 共享同一个 .git,不会浪费磁盘
非常适合需要同时对比或测试多个分支的场景。
5. git log --all --graph --oneline:可视化分支历史
git log --all --graph --oneline --decorate
在终端里看到类似 GUI 工具的分支图。建议设成 alias:
git config --global alias.lg "log --all --graph --oneline --decorate"
# 以后直接 git lg
6. git cherry-pick:精确移植提交
只想把某个分支的某个 commit 搬到当前分支:
git cherry-pick abc1234
# 多个 commit
git cherry-pick abc1234 def5678
# 一个范围
git cherry-pick abc1234..def5678
比 merge 整个分支更精准。
7. git blame -L:定位代码作者
# 看第 10-20 行是谁写的
git blame -L 10,20 src/main.rs
# 忽略空白变更
git blame -w src/main.rs
# 追踪代码移动(跨文件)
git blame -M src/main.rs
不是为了甩锅,是为了找到合适的人问问题。
8. git clean -fd:清理未跟踪文件
构建产物、临时文件堆积?
# 先看看会删什么(dry run)
git clean -fdn
# 确认后执行
git clean -fd
# 包括 .gitignore 忽略的文件
git clean -fdx
务必先用 -n 预览!
9. git rebase -i:交互式整理提交历史
git rebase -i HEAD~5
可以合并(squash)、重排、修改、删除最近 5 个 commit。提交历史从一团乱麻变成清晰的故事线。
常用操作:
pick:保留squash:合并到上一个reword:修改提交信息drop:删除
10. git diff --stat:快速查看变更概览
# 当前修改概览
git diff --stat
# 两个分支的差异概览
git diff --stat main..feature
# 某次 commit 的变更概览
git show --stat abc1234
比看完整 diff 高效得多,先看概览再深入具体文件。
小贴士:设置有用的 alias
git config --global alias.st "status -sb"
git config --global alias.co "checkout"
git config --global alias.br "branch -vv"
git config --global alias.last "log -1 HEAD --stat"
git config --global alias.undo "reset HEAD~1 --mixed"
总结
Git 的功能远比表面看到的丰富。掌握这些进阶命令,不仅能提高效率,关键时刻还能救命(比如 reflog 找回误删的代码)。建议挑几个最实用的练练手,融入你的日常工作流。
标签:Git版本控制开发效率命令行最佳实践
为你推荐
暂无相关推荐

评论 0