Home
avatar

TheBlockSky

Git 常用技巧:提升日常开发效率

前言

Git 是现代开发的必备工具,但很多开发者只掌握了 addcommitpushpull 这几个基础命令。本文将分享一些实用的 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      # 结束 bisect

4. 查看文件历史

# 查看谁修改了某行代码
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

Git 版本控制 效率 教程