Git 常用命令速查

📖 常用命令 #

git init
在当前目录初始化一个新的 Git 仓库
git init
git clone
克隆远程仓库到本地
git clone https://github.com/user/repo.git
git add
暂存文件变更,准备提交
git add .             # 暂存所有变更
git add src/index.ts  # 暂存单个文件
git commit
将暂存的变更提交到本地仓库
git commit -m "feat: 添加登录功能"
git commit --amend    # 修改上次提交
git status
查看工作区文件的变更状态
git status
git status -s         # 精简输出
git log
查看提交历史记录
git log --oneline --graph
git log --author="name"
git diff
查看工作区与暂存区的差异
git diff
git diff --staged     # 查看已暂存的差异
git branch
管理分支:列出、创建、删除
git branch              # 列出本地分支
git branch feature-x   # 创建分支
git branch -d old-branch
git checkout / switch
切换分支或恢复文件
git checkout main
git switch feature-x
git checkout -- file.ts # 丢弃工作区修改
git merge
将指定分支合并到当前分支
git merge feature-x
git merge --no-ff feature-x
git rebase
变基操作,使提交历史更线性
git rebase main
git rebase -i HEAD~3   # 交互式变基
git remote
管理远程仓库地址
git remote -v
git remote add origin https://xxx.git
git push
将本地提交推送到远程仓库
git push origin main
git push -f            # 强制推送(慎用)
git pull
拉取远程最新代码并合并到本地
git pull origin main
git pull --rebase      # 以变基方式拉取
git fetch
获取远程仓库最新数据(不自动合并)
git fetch origin
git fetch --prune      # 清理已删除的远程分支
git reset
回退到指定提交,丢弃之后的所有变更
git reset --soft HEAD~1
git reset --hard HEAD~1 # 谨慎使用
git revert
通过创建一个新提交来撤销指定提交(安全回滚)
git revert HEAD
git revert <commit-hash>
git stash
临时保存工作区的修改,恢复干净工作区
git stash                    # 暂存当前修改
git stash push -m "备注"      # 带备注暂存
git stash pop                 # 恢复最近暂存
git stash apply stash@{0}    # 恢复指定暂存(不移除)
git stash list                # 查看暂存列表
git stash drop stash@{0}     # 删除指定暂存
git stash clear               # 清空所有暂存
git restore
恢复工作区或暂存区的文件
git restore file.ts
git restore --staged file.ts
git tag
给指定提交打标签,常用于版本标记
git tag v1.0.0
git tag -a v1.0.0 -m "v1.0.0 正式版本"

📝 提交场景示例 #

以下展示了不同场景下规范的 Git 提交写法,包含推荐的提交信息格式

🎉 初次提交:初始化项目 chore
创建新项目后的第一次提交,初始化项目结构和基础配置
git init
git add .
git commit -m "chore(project): 初始化项目

- 搭建项目基础目录结构
- 配置 ESLint、Prettier 等工具
- 添加 README 说明文档"
📋 提交信息解读: chore(project) 表示项目初始化,记录搭建过程和关键配置
新功能开发完成 feat
开发完一个新功能模块,准备提交代码
git add src/features/login/
git commit -m "feat(auth): 实现用户邮箱密码登录

- 添加登录表单组件
- 实现 JWT Token 鉴权流程
- 集成第三方 OAuth2.0 登录
- 添加登录状态持久化

Closes #42"
📋 提交信息解读: feat(auth) 表示新增认证功能,主体列出具体变更点,Closes #42 关联 Issue
🐛 修复线上 Bug fix
修复生产环境发现的程序缺陷
git add src/utils/request.ts
git commit -m "fix(http): 修复首页数据加载超时问题

超时时间设置过短导致大数据量下加载失败
- 将请求超时时间从 5s 调整为 30s
- 添加请求重试机制(最多重试 3 次)
- 增加加载失败时的友好提示

Fixes #128"
📋 提交信息解读: fix(http) 修复网络请求 Bug,先说明根因再列出修改措施,Fixes 关键字可自动关闭 Issue
📝 更新项目文档 docs
补充或修改项目相关文档
git add docs/
git commit -m "docs(api): 更新 API 接口文档

- 补充新增的用户管理接口说明
- 更新数据库表结构 ER 图
- 添加接口调用示例代码(curl / Postman)
- 修复部分接口参数描述错误"
📋 提交信息解读: docs(api) 表示更新 API 文档,专门用于文档相关的修改,不涉及业务代码
♻️ 代码重构优化 refactor
不改变外部行为的前提下优化内部代码结构
git add src/services/
git commit -m "refactor(user): 重构用户模块代码结构

- 提取公共校验逻辑到 validator 工具类
- 将数据访问层抽离为独立 Repository
- 消除 UserService 中的重复代码
- 统一错误处理方式"
📋 提交信息解读: refactor(user) 表示重构用户模块代码结构,重点描述变化而不涉及功能变更
🎨 调整页面样式 style
修改 UI 样式、布局或视觉细节
git add src/styles/home.css
git commit -m "style(home): 优化首页视觉体验

- 统一按钮圆角和颜色风格
- 修复移动端菜单响应式布局错位
- 调整卡片间距和阴影效果
- 添加暗黑模式适配"
📋 提交信息解读: style(home) 表示调整首页样式,仅涉及样式层面的修改,不改变功能逻辑
性能优化 perf
优化程序性能或资源消耗
git add src/components/TableList.tsx
git commit -m "perf(table): 优化列表页渲染性能

- 使用虚拟滚动替代全量 DOM 渲染
- 添加防抖处理减少搜索请求频率
- 图片懒加载延迟非首屏资源
- 首屏加载时间 减少约 60%"
📋 提交信息解读: perf(table) 表示优化列表组件性能,最好附上量化指标证明优化效果
添加单元测试 test
为已有功能补充或完善测试用例
git add tests/unit/
git commit -m "test(user): 添加用户模块单元测试

- 覆盖登录、注册、退出登录场景
- 测试 Token 过期刷新逻辑
- 验证密码加密和校验流程
- 测试覆盖率从 45% 提升至 85%"
📋 提交信息解读: test(user) 表示为用户模块添加测试,描述测试覆盖范围和结果
🔧 配置文件变更 chore
修改构建配置、依赖管理或工具配置
git add package.json
git add .eslintrc.js
git commit -m "chore(deps): 更新项目依赖和 ESLint 配置

- 升级 Vite 至 5.x 版本
- 添加 TypeScript 严格模式
- 配置 import 排序规则
- 移除已废弃的 gulp 依赖"
📋 提交信息解读: chore(deps) 表示依赖配置变更,适用于不修改业务代码的项目维护性变更
回滚问题提交 revert
发现最近的提交引入了问题,需要安全回滚
git log --oneline -5
# 输出:
# a1b2c3d (HEAD) feat: 添加新功能
# e4f5g6h fix: 修复登录 Bug
# ...
git revert HEAD
git commit -m "revert: 回滚上一个提交

新功能存在严重的兼容性问题
导致部分用户无法正常访问
先回滚后重新修复再发布"
📋 提交信息解读: revert 表示回滚,使用 git revert 而非 git reset 可保留历史记录,适合多人协作场景
🚀 正式版本发布 chore
发布新版本时标记版本号和记录变更内容
git add .
git commit -m "chore(release): v2.1.0 正式发布

### 新增功能
- 数据看板支持自定义图表
- 导出报表支持 PDF 格式
- 用户权限细粒度管理

### Bug 修复
- 修复搜索分页偏移错误
- 修复深色模式样式异常
- 修复文件上传超时问题

### 性能优化
- 首页加载速度提升 40%
- 图片资源开启 CDN 加速"
📋 提交信息解读: chore(release) 表示版本发布,按类型分类组织变更内容,便于团队成员快速了解版本差异
🔀 合并功能分支 merge
将功能分支合并到主分支,解决合并冲突
# 切换到主分支并合并
git checkout main
git pull origin main
git merge feature/login
# 解决冲突后:
# git add .
git commit -m "merge: 合并登录功能分支到 main

- 实现邮箱/手机号登录
- 集成微信 OAuth2.0
- 解决 UserService 冲突"
📋 提交信息解读: merge 表示合并操作,描述合并来源和主要内容,有冲突时说明冲突解决方案
🧹 清理废弃代码 chore
移除不再使用的代码、文件或调试信息
git add -u
git rm src/legacy/
git commit -m "chore(cleanup): 清理废弃代码和调试日志

- 删除不再使用的旧版工具函数
- 移除所有 console.log 调试语句
- 清理无引用的样式文件
- 删除已废弃的 mock 数据目录"
📋 提交信息解读: chore(cleanup) 表示清理工作,建议单独提交清理操作,不要混入功能变更中
🏗️ 搭建项目脚手架 chore
使用脚手架工具初始化项目结构和构建配置
git init
npm create vite@latest . -- --template vue-ts
git add .
git commit -m "chore(build): 初始化项目脚手架

- 使用 Vite + Vue 3 + TypeScript
- 配置 ESLint + Prettier + Husky
- 集成 Pinia 状态管理
- 配置路径别名 @/ 和自动导入
- 添加 commitlint 规范提交信息"
📋 提交信息解读: chore(build) 表示构建配置初始化,记录项目的技术栈和配置选型,方便新人快速上手
🔒 安全漏洞修复 fix
修复安全漏洞或升级存在安全风险的依赖
git add package.json pnpm-lock.yaml
git commit -m "fix(deps): 升级 lodash 修复注入漏洞

- 升级 lodash 从 4.17.15 至 4.17.21
- 修复 prototype pollution 漏洞 (CVE-2020-8203)
- 升级 axios 修复 SSRF 风险
- 添加依赖安全审计脚本

Security advisories: GHSA-xxx-xxx-xxx"
📋 提交信息解读: fix(deps) 表示修复依赖安全问题,务必注明 CVE 编号或安全公告链接,便于后续审计追踪