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 pop           # 恢复暂存
git stash list
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 提交写法,包含推荐的提交信息格式

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

- 搭建项目基础目录结构
- 配置 ESLint、Prettier 等工具
- 添加 README 说明文档"
📋 提交信息解读: 使用 🎉 表示初次提交,详细列出初始化的关键内容,方便后续回溯项目起点
新功能开发完成 feat
开发完一个新功能模块,准备提交代码
git add src/features/login/
git commit -m "✨ feat: 实现用户邮箱密码登录

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Security advisories: GHSA-xxx-xxx-xxx"
📋 提交信息解读: 🔒 表示安全相关,务必注明 CVE 编号或安全公告链接,便于后续审计追踪