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. 实用技巧
- stash 暂存:
git stash把未提交的改动暂时收起来,git stash pop恢复--切分支救急神器。 - 别名:
git config --global alias.co checkout后即可用git co。 - .gitignore:提前忽略
node_modules/、.env、__pycache__/等文件。 - rebase 整理历史:
git rebase -i HEAD~3可以合并/修改最近 3 条提交,保持历史干净。
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代替。推送到远端的历史,尽量只增不改。