5.2 KiB
5.2 KiB
项目贡献指南
本项目协作采用标准的Pull Request(PR)流程机制,PR流程是开源项目协作和代码管理的核心机制。以下是创建和处理PR的详细步骤:
0. CLA签署
- 目的:项目内Pull Request需要贡献者签署贡献者协议后方可合并,为保证后续项目的顺利,建议提前进行CLA签署。
- 步骤:
- 点击CLA签署链接,滑动阅读后在页面下方填写真实个人信息,并选择参赛所用账号的邮箱即可。
1. Fork项目仓库
- 目的:将原始仓库复制到您的Gitlink账户下,以便您可以进行修改。
- 步骤:
- 在Gitlink上找到GPUCodeForces。
- 点击页面右上角的“Fork”按钮,将该仓库复制到您的Gitlink账户下
2. Clone项目仓库
- 目的:将您Fork的项目仓库克隆到本地,以便在本地进行修改。
- 步骤:
- 在您的本地机器上,使用
git clone命令将项目仓库Fork的仓库克隆到本地。
备注:git clone https://gitlink.org.cn/your id/GPUCodeForces.gitclone地址是fork至你的仓库的项目地址,即带有your id的地址,这样后续提交才能正确添加至你的仓库,而非直接的项目仓库。
- 在您的本地机器上,使用
3. 创建赛题与分支
- 目的:在Gitlink上建立一个属于自己赛题的issue便于后期跟进。在自己克隆好的仓库的分支上进行修改,避免直接修改主分支。
- 步骤:
-
进入到赛事首页:GPUCodeForces赛事首页,点击Issues,选择创建疑修。 推荐大家按照模板来描述自己的疑修,能够被更快批改。 提交完成后,返回Issue主页可以看到自己的提交记录,可以复制Issue id进行保存。
-
在本地电脑进入克隆的仓库目录,创建一个新的分支来(例如:
dev分支)进行您的赛题的创作或者修订。cd GPUCodeForces git checkout -b dev
-
4. 进行修改
- 目的:在您的新分支上
dev进行赛题的创作或者修订。 - 步骤:
- 在您的
dev分支上进行赛题的创作或者修订。 - 修改完成后,添加并提交您的赛题成果。
git add . git commit -m "描述您的修改,如需要关联PR,通过fixes, closes, resolved等关键字关闭" #例如:git commit -m "fixes #your-issue_id"即表示关联到你自己创建的赛题id下
- 在您的
备注:
- Fixes #45 → 关联Issue #45
- Resolves jquery/jquery#45 → 跨仓库关闭Issue
- Closes #45, #46 → 批量关闭多个Issue
5. 推送修改
- 目的:将您的修改推送到您Fork的仓库。
- 步骤:
- 将您的修改推送到您Fork的仓库。
git push origin dev #这里填写你创建的分支,不一定为dev
- 将您的修改推送到您Fork的仓库。
6. 创建Pull Request
-
目的:向原始仓库的维护者提交您的修改,请求合并。
-
步骤:
- 回到您的Gitlink仓库,找到您Fork的项目,并找到合并请求(PR)界面。
- 点击新建合并请求
- 选择您推送的分支和原始仓库的主分支
- 填写PR的标题和描述,说明您的修改内容和目的
- 点击下方创建按钮,提交PR即可。
备注:
PR的修改不用按照之前的issue模板,仅针对每次修改内容进行阐述即可。一个issue可以对应多个(次)PR,修改至最终满意的程度后,即说明所有PR均已合并。
7. 处理反馈
- 目的:根据项目维护者的反馈进行必要的修改。
- 步骤:
- 项目维护团队或者维护者会审查您的PR,并可能提出修改意见或问题,在与您相关的issue和pull request下方评论区即可查看
- 根据反馈进行必要的修改,并重复步骤4到步骤6,直到PR被接受
8. PR被合并
- 目的:一旦您的PR被接受并合并到主分支,您的贡献就正式成为项目的一部分。
- 步骤:
- 项目维护者会合并您的PR,您可以在合并请求(PR)主页面查看各PR状态
- 您的修改现在成为原始仓库的一部分。
9. 同步上游仓库
- 目的:保持您的Fork仓库与上游仓库同步。
- 步骤:
- 为了保持您的Fork仓库与上游仓库同步,您需要定期从上游仓库拉取更新
- 在本地的文件夹内启动git bash
-
git checkout main # 切换至main分支 git remote add upstream https://www.gitlink.org.cn/ccf-ai-infra/GPUCodeForces # 添加上游仓库(即该赛道的主页) git pull origin main # 拉取更新
拉取更新的时候要确保当前路径在main下,如果仍在自己创建的分支下拉取更新,会导致之前自己所做的修改被覆盖。
通过以上步骤,您就可以在Gitlink上有效地参与项目的协作。希望这些信息对您有所帮助!如果有任何问题,随时欢迎提问。