Git 使用技巧合集:提高开发效率的 10 个实用命令
Git 是现代软件开发中不可或缺的版本控制工具。它功能强大,但很多开发者只掌握了 clone
、commit
、push
等基础命令。其实,Git 还有很多鲜为人知但非常实用的命令,可以大幅提高你的开发效率。
本文精选 10 个 Git 高效命令技巧,助你从“会用”迈向“精通”。
1. git stash
—— 临时保存当前改动
当你正在修改代码,突然需要切换分支修复 Bug,但又不想提交半成品代码时:
git stash
恢复时:
git stash pop
列出所有 stash:
git stash list
应用场景: 多任务处理,快速保存/恢复工作进度。
2. git cherry-pick
—— 精准“移植”指定提交
将某个分支上的指定提交复制到当前分支:
git cherry-pick <commit_hash>
适用于从其他分支“挑”一个补丁或功能,不合并整个分支。
3. git log --oneline --graph
—— 图形化查看提交历史
快速查看分支走向和提交信息:
git log --oneline --graph --all
配合 --decorate
还能看到分支和 tag:
git log --oneline --graph --decorate --all
建议配置成 alias:
git config --global alias.lg "log --oneline --graph --decorate --all"
4. git reflog
—— 找回被删分支或回退操作
误删分支?reset
失误?使用 reflog 找回:
git reflog
然后找到你想要回到的 commit:
git checkout <commit_hash>
5. git reset
与 git checkout
的区别和用法
git checkout
用于切换分支或文件版本。git reset
用于撤销提交。
示例:撤回最近一次提交但保留改动:
git reset --soft HEAD~1
彻底删除提交和改动(慎用):
git reset --hard HEAD~1
6. git bisect
—— 快速定位引入 bug 的提交
自动二分查找 bug 的引入点:
git bisect start
git bisect bad # 当前是坏的
git bisect good v1.0 # 某个旧版本是好的
Git 会自动切换 commit,直到找到问题提交。
7. git blame
—— 查找某行代码的“责任人”
查看某行代码由谁、在哪次提交中修改的:
git blame <file>
配合 GUI 工具(如 VSCode)效果更佳。
8. git clean
—— 清理未跟踪的文件
清理构建产物或杂乱无关文件:
git clean -fd
常用参数说明:
-f
:force,强制执行-d
:包括未跟踪目录
先 dry-run 看看影响:
git clean -fdn
9. git diff
—— 查看代码变更差异
- 查看工作区与暂存区的区别:
git diff
- 查看暂存区与最后一次提交的区别:
git diff --cached
- 查看两个 commit 之间的差异:
git diff commit1 commit2
10. git commit --amend
—— 修改上一条提交
提交后发现漏了东西或注释写错了:
git commit --amend
会重新打开编辑器修改注释,或配合 --no-edit
直接补充文件。
⚠️ 如果已 push
到远程,慎用 amend,可能会造成冲突。
Bonus:常用 alias 配置建议
使用 Git alias 可大幅减少重复输入:
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm 'commit -m'
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
总结
命令 | 用途说明 |
---|---|
stash | 临时保存未提交的更改 |
cherry-pick | 移植单个提交到当前分支 |
log --graph | 图形化展示提交历史 |
reflog | 恢复被误删的提交 |
reset / checkout | 回退或切换提交版本 |
bisect | 二分查找 bug |
blame | 查看某行代码作者及提交信息 |
clean | 清理未跟踪的文件 |
diff | 比较差异 |
commit --amend | 修改上一次提交 |
熟练掌握这些 Git 命令,将极大提升你在日常开发中的效率与灵活度。Git 不仅是版本控制工具,更是一位开发者的时间机器。