贡献指南
如何提交 Pull Request
🎯 概述
我们使用 基于 develop 分支的工作流。所有更改都应在从 develop 创建的分支上进行,然后提交 Pull Request 合并回 develop。
分支结构
| 分支 | 用途 | PR 目标 |
|---|---|---|
main | 稳定发布版本 | ❌ 不要直接 PR |
develop | 活跃开发 | ✅ PR 目标分支 |
feature/* | 新功能 | → develop |
fix/* | Bug 修复 | → develop |
docs/* | 文档更新 | → develop |
🔧 环境准备
1. Fork 仓库
- 访问 NextJS Base
- 点击右上角的 Fork 按钮
- 选择你的 GitHub 账号
2. 克隆你的 Fork
# 克隆你的 fork
git clone https://github.com/你的用户名/nextjs-base.git
cd nextjs-base
# 添加上游仓库
git remote add upstream https://github.com/huglemon/nextjs-base.git
# 验证远程仓库
git remote -v
# origin https://github.com/你的用户名/nextjs-base.git (fetch)
# origin https://github.com/你的用户名/nextjs-base.git (push)
# upstream https://github.com/huglemon/nextjs-base.git (fetch)
# upstream https://github.com/huglemon/nextjs-base.git (push)3. 安装依赖
bun install
cp .env.example .env.local
# 编辑 .env.local 配置数据库
bun run init📝 工作流程
第一步:同步上游代码
始终从最新的 develop 分支开始:
# 获取最新代码
git fetch upstream
# 切换到 develop
git checkout develop
# 同步上游代码
git merge upstream/develop
# 推送到你的 fork(可选)
git push origin develop第二步:创建功能分支
# 创建并切换到新分支
git checkout -b feature/你的功能名称
# Bug 修复
git checkout -b fix/问题描述
# 文档更新
git checkout -b docs/文档主题分支命名规范:
| 前缀 | 用途 | 示例 |
|---|---|---|
feature/ | 新功能 | feature/add-dark-mode |
fix/ | Bug 修复 | fix/login-redirect-issue |
docs/ | 文档更新 | docs/update-readme |
refactor/ | 代码重构 | refactor/simplify-auth |
test/ | 测试相关 | test/add-user-tests |
第三步:进行更改
- 编写代码
- 遵循现有的代码风格和规范
- 如有必要,添加测试
- 如有必要,更新文档
# 查看更改
git status
# 暂存更改
git add .
# 提交(使用描述性的提交信息)
git commit -m "feat: 在导航栏添加深色模式切换"提交信息规范:
| 前缀 | 说明 |
|---|---|
feat: | 新功能 |
fix: | Bug 修复 |
docs: | 文档更新 |
style: | 格式调整,不涉及代码逻辑 |
refactor: | 代码重构 |
test: | 添加测试 |
chore: | 构建/工具相关 |
第四步:推送到你的 Fork
git push origin feature/你的功能名称第五步:创建 Pull Request
- 在 GitHub 上打开你的 fork
- 点击 Compare & pull request
- 确保 base 是
huglemon/nextjs-base:develop - 填写 PR 模板:
## 描述
简要描述你的更改。
## 更改类型
- [ ] Bug 修复
- [ ] 新功能
- [ ] 文档更新
- [ ] 代码重构
## 测试
描述你如何测试了这些更改。
## 检查清单
- [ ] 代码遵循项目的风格规范
- [ ] 已在本地测试过更改
- [ ] 已更新相关文档(如需要)
- [ ] 更改不会破坏现有功能- 点击 Create pull request
📋 规范要求
代码风格
- 遵循代码库中现有的模式
- 使用有意义的变量和函数名
- 为复杂逻辑添加注释
- 保持函数小巧且专注
测试
# 运行 lint 检查
bun run lint
# 运行类型检查(如适用)
bun run typecheck
# 本地测试你的更改
bun run dev文档
- 为新功能更新相关文档
- 为新函数添加 JSDoc 注释
- 在文档中包含示例
🔄 保持分支更新
如果在你开发期间 develop 有了新的提交:
# 获取最新代码
git fetch upstream
# 将你的分支 rebase 到 develop
git rebase upstream/develop
# 如需要,强制推送(仅限你自己的分支!)
git push origin feature/你的功能名称 --force-with-lease✅ PR 检查清单
提交前确认:
- 分支从
develop创建 - 代码遵循项目规范
- 已在本地测试
- 已更新文档(如需要)
- 提交信息清晰
- PR 描述完整
- 没有合并冲突
🔍 提交后
- 等待审核 - 维护者会审核你的 PR
- 处理反馈 - 如有需要,进行修改
- PR 合并 - 庆祝!🎉
如果需要修改
# 进行请求的修改
git add .
git commit -m "fix: 根据审核反馈进行修改"
git push origin feature/你的功能名称PR 会自动更新。