本仓库推荐采用 fork + PR 的协作方式。所有代码、文档和配置修改默认都通过 Pull Request 合入主仓库的 develop 分支。
develop是日常集成分支。main只用于发布或稳定版本。- 禁止普通成员直接 push 到
develop或main。 - 日常开发分支从最新
upstream/develop创建。 - PR 目标分支必须是主仓库
develop。 - PR 来源应是个人 fork 的独立分支。
- 合并前必须通过协作守门、CI、review 和必要测试。
推荐格式:
<team>/<type>/<short-description>
示例:
Frontend/feat/login-page
Backend/fix/session-expiry
QA/test/auth-regression
DevOps/chore/github-actions
推荐 type:
| Type | 用途 |
|---|---|
feat |
新功能 |
fix |
Bug 修复 |
docs |
文档 |
style |
格式,不改变行为 |
refactor |
重构 |
test |
测试 |
chore |
构建、依赖、工具、CI |
perf |
性能 |
revert |
回滚 |
所有 commit 使用 Conventional Commits:
<type>(<scope>): <subject>
好例子:
feat(frontend): add login form
fix(auth): reject expired sessions
docs(workflow): document pr guard rules
chore(ci): add api type drift check
坏例子:
update
fix bug
wip
final
规则:
- 第一行不超过 72 个字符。
- subject 使用英文小写开头。
- subject 不以句号结尾。
- 不用模糊词,例如
update、changes、misc。
- Fork 主仓库到个人账号。
- 配置
origin为个人 fork,upstream为团队主仓库。 - 拉取最新
develop。 - 从
upstream/develop创建个人分支。 - 提交修改。
- 推送到个人 fork。
- 创建 PR 到主仓库
develop。 - 等待 CI、PR Guard、Commitlint、已启用的 Codex review 和人工 review。
- 通过后合并。
常用命令:
git remote -v
git fetch upstream --prune
git switch -c Frontend/feat/login-page upstream/develop
git status
git add <task-files>
git commit -m "feat(frontend): add login page"
git push -u origin Frontend/feat/login-page创建 PR:
gh pr create \
--base develop \
--head YOUR_NAME:Frontend/feat/login-page \
--title "feat(frontend): add login page" \
--template .github/pull_request_template.md如果开发期间 develop 更新:
git fetch upstream --prune
git rebase upstream/develop
git push --force-with-lease只允许对个人 fork 的个人分支使用 --force-with-lease,不要对共享分支使用普通 --force。
- PR base 是
develop。 - PR head 来自个人 fork。
- PR 标题使用英文 Conventional Commit 风格,不包含中文字符。
- PR 正文使用中文模板,包含
修改内容、关联 Issue、验证、已知风险、检查项。 - 有 issue 的任务必须在
关联 Issue写 GitHub closing keyword,例如Closes #123。 - 没有关联 issue 时必须写清原因,例如
无。原因:修正文档错别字,不对应独立任务。 - PR body 不保留模板占位文字。
- 必须列出已运行检查、未运行检查及原因。
- PR Guard 通过。
- Commitlint 通过。
- 相关 CI 通过。
- 至少一名维护者或 reviewer 通过。
- 分支包含最新
develop。 - 关联任务的验收标准已满足。
- 测试任务已留下证据或报告。