Git 是开发者日常使用最频繁的工具之一。虽然基本命令大家都会用,但很多实用技巧和高级功能可能并不为人熟知。这篇文章整理了我在日常开发中常用的 Git 命令和技巧,部分内容来自踩坑经验,希望能帮你提高效率、少走弯路。

基础操作速查

初始化与配置

# 初始化仓库
git init

# 克隆仓库
git clone <url>

# 查看/设置用户信息
git config user.name "你的名字"
git config user.email "your@email.com"

日常提交流程

# 查看状态
git status

# 添加文件到暂存区
git add <file>        # 单个文件
git add .             # 所有更改
git add -p            # 交互式选择部分修改

# 提交
git commit -m "描述信息"
git commit --amend    # 修改上一次提交

分支管理技巧

常用分支操作

# 创建并切换分支
git checkout -b feature/new-feature

# 或者使用新语法
git switch -c feature/new-feature

# 查看分支
git branch            # 本地分支
git branch -a         # 所有分支

# 合并分支
git merge feature/new-feature

# 删除分支
git branch -d feature/old-feature

Feature Branch 工作流

这是我日常开发中最常用的分支策略:

  1. 从 main 分支创建功能分支
  2. 在功能分支上开发和提交
  3. 定期 rebase main 保持同步
  4. 完成后合并回 main
# 1. 创建功能分支
git checkout -b feature/user-login

# 2. 开发过程中...
git add . && git commit -m "feat: add login form"

# 3. 同步 main 的最新改动
git fetch origin
git rebase origin/main

# 4. 推送并创建 PR
git push -u origin feature/user-login

撤销与修改

这部分是最容易出错的地方,也是踩坑最多的地方。理解每个命令的区别非常重要。

未提交的修改

# 丢弃工作区的修改
git checkout -- <file>
# 或新语法
git restore <file>

# 丢弃所有未提交的修改
git checkout .

已暂存但未提交

# 从暂存区移除(保留文件修改)
git reset HEAD <file>
# 或新语法
git restore --staged <file>

已提交的修改

# 软重置:保留修改,回退提交记录
git reset --soft HEAD~1

# 混合重置(默认):保留文件修改,回退提交和暂存
git reset --mixed HEAD~1

# 硬重置:完全回退,丢弃所有修改(危险!)
git reset --hard HEAD~1

警告:git reset --hard 会永久丢失你的修改。在执行之前,请确保你真的不需要这些改动。

日志查看技巧

# 基本日志
git log

# 单行显示
git log --oneline

# 图形化分支历史
git log --graph --oneline --all

# 查看某个文件的修改历史
git log -p <file>

# 查找引入某个 bug 的提交
git bisect start
git bisect bad
git bisect good v1.0

实用小技巧

Stash:临时保存工作进度

当你正在开发某个功能,突然需要切换到其他分支处理紧急问题时:

# 保存当前修改
git stash save "WIP: user login feature"

# 切换到其他分支处理问题
git checkout main
# ... 修复问题 ...

# 回到原分支,恢复修改
git checkout feature/user-login
git stash pop

.gitignore:忽略不需要跟踪的文件

# 在项目根目录创建 .gitignore
node_modules/
dist/
.env
*.log
.DS_Store

别名:简化常用命令

# 设置别名
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 st      # git status
git cm "fix bug"  # git commit -m "fix bug"

常见踩坑经验

总结

Git 是一个功能强大的工具,掌握它的常用技巧可以显著提升开发效率。建议从基础命令开始,逐步学习高级功能。最重要的是多实践,在实际使用中加深理解。

如果你对这些命令还不够熟悉,可以把这篇文章当作速查手册,需要时随时翻阅。随着使用频率的增加,这些命令会逐渐变成肌肉记忆。