📖 常用命令 #
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
编号或安全公告链接,便于后续审计追踪