Git 是每个程序员必须掌握的工具。本文不追求面面俱到,而是把日常开发中 出现频率最高 的命令整理成速查表,配合真实场景讲解。

1. 基础三连

git status          # 查看工作区状态
git add .           # 将改动加入暂存区
git commit -m "feat: 添加登录功能"   # 提交

规范提交信息格式建议使用 Conventional Commits:feat: 新功能、fix: 修复、docs: 文档、refactor: 重构。

2. 分支操作

git branch                # 列出本地分支
git branch feature/login  # 新建分支
git checkout feature/login  # 切换分支(新版可用 git switch)
git switch -c dev         # 创建并切换
git merge feature/login   # 将分支合并到当前分支
git branch -d feature/login  # 删除已合并分支

3. 远程仓库

git clone https://github.com/user/repo.git
git remote -v             # 查看远程地址
git push origin main      # 推送
git pull origin main      # 拉取(fetch + merge)
git fetch origin          # 只拉取不合并

4. 后悔药:撤销与回滚

场景命令说明
工作区改乱了git restore file丢弃未暂存的修改
add 加错了git restore --staged file取消暂存
commit 写错了信息git commit --amend修改最近一次提交
想回退到某个版本git reset --hard <hash>⚠️ 会丢失之后的所有改动
已经 push 了要回退git revert <hash>生成反向提交,安全

5. 日志与对比

git log --oneline --graph    # 图形化查看提交历史
git log -3                   # 最近 3 条
git diff                     # 工作区与暂存区差异
git diff HEAD                # 与最近提交的差异
git show <hash>              # 查看某次提交详情

6. 实用技巧

7. 分支工作流与冲突解决

团队协作的标准姿势是 功能分支工作流:每个功能开一个分支,完成后合并回主分支。

# 从最新主干拉新分支
git checkout main && git pull
git switch -c feature/login

# ...开发、提交...

# 合并前先同步主干
git checkout main && git pull
git merge feature/login

# 冲突时:手动编辑冲突文件,保留想要的内容后
git add .
git commit -m "merge: 合并登录功能"

冲突标记长这样:<<<<<<< HEAD(你的版本)和 >>>>>>> feature/login(对方版本)。把不要的删掉、保留正确内容,再 add + commit 即可。冲突不可怕,可怕的是冲突时手抖执行了 reset --hard

⚠️ 铁律:不要在共享分支上执行 reset --hard,用 revert 代替。推送到远端的历史,尽量只增不改。