前端代码管理与协作指南
代码管理不仅仅是使用 Git,更包含了分支策略、代码规范、提交规范以及大型项目的 Monorepo 治理。
1. 版本控制系统 (VCS)
Git 核心概念
- Workspace: 工作区
- Index/Stage: 暂存区
- Local Repository: 本地仓库
- Remote Repository: 远程仓库
常用高频命令
bash
# 修改历史提交 (仅限未 push 的 commit)
git commit --amend
# 撤销暂存区文件 (Unstage)
git reset HEAD <file>
# 挑选特定 commit 合并到当前分支
git cherry-pick <commit-hash>
# 暂存当前更改,用于临时切换分支
git stash / git stash pop2. 分支管理策略 (Branching Models)
Git Flow
经典模型,适合版本发布周期固定的项目。
- master: 生产环境代码。
- develop: 开发主分支。
- feature/: 功能分支,从 develop 切出,合回 develop。
- release/: 发布分支,用于测试和产生版本号。
- hotfix/: 紧急修复分支,从 master 切出。
Trunk Based Development (主干开发)
现代持续集成推荐模式,适合快速迭代。
- 只有一个主分支 (main/trunk)。 -Feature 分支寿命极短,通常在一天内合并。
- 依赖 Feature Toggles (功能开关) 来隐藏未完成的功能,而不是长期存在的 feature 分支。
3. 代码规范 (Linting & Formatting)
工具链
- ESLint: 捕获代码质量问题 (如未使用变量,死循环)。
- Prettier: 统一代码风格 (缩进、单双引号、尾逗号)。
- EditorConfig: 统一编辑器配置。
提交钩子 (Git Hooks)
使用 husky + lint-staged 在 commit 前自动检查。
json
// package.json
"lint-staged": {
"*.{js,ts,vue}": [
"eslint --fix",
"prettier --write"
]
}4. 提交规范 (Commit Convention)
遵循 Conventional Commits 规范,便于生成 ChangeLog。 格式:<type>(<scope>): <subject>
- feat: 新功能
- fix: 修复 Bug
- docs: 文档修改
- style: 格式修改(不影响代码运行)
- refactor: 重构(既不是新增功能也不是修改 bug)
- perf: 性能优化
- test: 测试代码
- chore: 构建过程或辅助工具变动
5. Monorepo (单仓库管理)
将多个项目(如前端 app、组件库、后端 api)放在同一个 Git 仓库中管理。
优势
- 代码共享方便 (shared packages)。
- 统一的工作流和依赖管理。
- 原子化提交 (Atomic Commits)。
工具
- Workspace (npm/yarn/pnpm): 基础依赖链接。
- Lerna: 传统的版本发布管理工具。
- Turborepo: 高性能构建工具,支持缓存。
- Nx: 功能强大的全栈 Monorepo 框架。