Git 命令很多,但高频场景其实比较稳定。本文不追求“命令大全”,而是按研发流程整理一套可扩展的 Git 使用体系,方便后续持续补充。

一、先建立心智模型:三个区域

  • Working Tree:本地改动区
  • Index (Staging Area):暂存区
  • Repository:提交历史

多数命令都可以归类为:

  1. 在三个区域之间搬运内容
  2. 在分支之间组织历史
  3. 与远端仓库同步

二、日常开发主流程(推荐)

1) 拉取最新代码

1
2
git checkout master
git pull origin master

目的:把本地主干更新到最新状态。

2) 切分支开发

1
2
3
git checkout -b feature/login-audit
# 新版写法
git switch -c feature/login-audit

目的:把功能改动和主干隔离。

3) 提交本地改动

1
2
3
git status
git add .
git commit -m "feat: add login audit logs"

建议:提交信息遵循团队规范(如 feat/fix/refactor)。

4) 同步主干并整理历史(rebase)

1
2
git fetch origin
git rebase origin/master

目的:把当前分支“平移”到最新主干之上,减少无意义 merge commit。

常见冲突处理:

1
2
3
4
5
6
# 解决冲突后
git add <resolved-files>
git rebase --continue

# 放弃本次 rebase
git rebase --abort

5) 推送远端

1
git push -u origin feature/login-audit

如果 rebase 过且远端已有旧历史,通常需要:

1
git push --force-with-lease

说明:优先使用 --force-with-lease,比 --force 更安全。

三、核心命令按场景归类

A. checkout / switch:切换上下文

1
2
3
4
5
git checkout <branch>
git checkout -b <new-branch>
# 新版推荐
git switch <branch>
git switch -c <new-branch>

用途:切分支、创建并切换分支。

B. branch:管理分支

1
2
3
4
git branch
git branch -a
git branch -d <branch>
git branch -D <branch>
  • -d:仅删除已合并分支
  • -D:强制删除(谨慎)

C. pull / fetch:同步远端

1
2
git fetch origin
git pull origin master
  • fetch:只下载,不自动合并
  • pullfetch + merge/rebase

D. rebase:重放提交,整理线性历史

1
2
git rebase origin/master
git rebase -i HEAD~3
  • 普通 rebase:追主干
  • 交互式 rebase:压缩/改写最近提交

E. push:发布变更

1
2
3
git push
git push -u origin <branch>
git push --force-with-lease
  • -u:建立本地分支和远端分支跟踪关系
  • --force-with-lease:改写历史后的安全推送

四、常见“翻车点”与规避建议

1) 在错误分支上开发

症状:改完才发现不在目标分支。

建议:每次改动前先执行 git branch --show-current

2) 直接用 force push 覆盖队友提交

建议:只在自己分支使用 --force-with-lease,避免 --force

3) pull 之后出现复杂 merge

建议:优先 fetch + rebase,保持历史更清晰。

4) 删除分支前未确认是否合并

建议:优先 git branch -d,确有必要再 -D

五、可扩展模板(后续新增命令时直接复用)

后续如果要补充新命令(如 cherry-pickresetstashreflog),建议按以下模板追加:

命令名

  • 定位:它解决什么问题
  • 常用写法:1~3 条
  • 典型场景:什么时候用
  • 风险点:最容易误用的地方
  • 配套命令:通常和哪些命令组合

这样可以把文章长期维护成“可操作的 Git 作战手册”,而不是一次性清单。

六、个人最小命令集合(每天够用)

1
2
3
4
5
6
7
8
9
git checkout <branch>
git checkout -b <new-branch>
git status
git add .
git commit -m "<type>: <message>"
git fetch origin
git rebase origin/master
git push -u origin <branch>
git push --force-with-lease

如果你只先记住这一组,已经能覆盖大多数研发场景。