Git 常用技巧:提升日常开发效率
前言
Git 是现代开发的必备工具,但很多开发者只掌握了 add、commit、push、pull 这几个基础命令。本文将分享一些实用的 Git 技巧,帮助你提升日常开发效率。
提交规范
使用 Conventional Commits
规范的提交信息能让项目历史更清晰:
feat: 添加用户登录功能
fix: 修复首页白屏问题
docs: 更新 API 文档
style: 格式化代码
refactor: 重构数据查询逻辑
test: 添加单元测试
chore: 更新依赖版本修改最后一次提交
# 修改提交信息
git commit --amend -m "新的提交信息"
# 添加遗漏的文件
git add forgotten-file.js
git commit --amend --no-edit分支管理
交互式 rebase
合并多个提交:
git rebase -i HEAD~3在交互界面中使用:
pick:保留该提交squash:合并到上一个提交reword:修改提交信息drop:删除该提交
快速切换分支
# 切换到上一个分支
git checkout -
# 查看所有分支(包括远程)
git branch -a
# 删除已合并的本地分支
git branch --merged | grep -v "\*\|main\|master" | xargs git branch -d实用命令
1. 交互式暂存
git add -p这个命令会逐块询问你是否要暂存修改,非常适合只提交部分改动。
2. 暂存工作区
# 暂存当前工作区
git stash save "WIP: 正在开发的功能"
# 查看暂存列表
git stash list
# 恢复暂存
git stash pop
# 恢复指定暂存
git stash apply stash@{2}3. 查找 Bug 引入点
git bisect start
git bisect bad # 当前版本有问题
git bisect good v1.0 # v1.0 版本正常
# Git 会二分查找,每次检出一个版本让你测试
git bisect reset # 结束 bisect4. 查看文件历史
# 查看谁修改了某行代码
git blame src/utils/index.ts
# 查看某行代码的修改历史
git log -p -L 10,20:src/utils/index.ts日志与搜索
美化日志
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit可以将其配置为别名:
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"搜索提交
# 搜索提交信息
git log --grep="fix"
# 搜索代码变更
git log -S "searchTerm" --source --all
# 查看某文件的修改历史
git log --follow -- src/utils/index.ts撤销操作
| 场景 | 命令 |
|---|---|
| 撤销工作区修改 | git checkout -- <file> |
| 撤销暂存 | git reset HEAD <file> |
| 撤销最近提交 | git reset --soft HEAD~1 |
| 强制覆盖远程 | git push --force-with-lease |
| 回退到某版本 | git revert <commit> |
注意:
git revert会创建一个新的提交来撤销更改,适合公共分支。git reset会修改历史,适合本地分支。
配置优化
常用别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage "reset HEAD"
git config --global alias.last "log -1 HEAD"全局忽略
# 创建全局 .gitignore
echo ".DS_Store" >> ~/.gitignore_global
git config --global core.excludesFile ~/.gitignore_global总结
掌握这些 Git 技巧能显著提升日常开发效率。建议从提交规范和别名配置开始,逐步尝试更高级的功能如 bisect 和交互式 rebase。