GPUCodeForces/how-to-contribute.md

103 lines
5.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目贡献指南
本项目协作采用标准的Pull RequestPR流程机制PR流程是开源项目协作和代码管理的核心机制。以下是创建和处理PR的详细步骤
## 0. CLA签署
- **目的**项目内Pull Request需要贡献者签署贡献者协议后方可合并为保证后续项目的顺利建议提前进行CLA签署。
- **步骤**
- 点击[CLA签署链接](https://www.gitlink.org.cn/ccf-ai-infra/cla/governance),滑动阅读后在页面下方填写真实个人信息,并选择参赛所用账号的邮箱即可。
## 1. Fork项目仓库
- **目的**将原始仓库复制到您的Gitlink账户下以便您可以进行修改。
- **步骤**
- 在Gitlink上找到[GPUCodeForces](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces)。
- 点击页面右上角的“Fork”按钮将该仓库复制到您的Gitlink账户下
## 2. Clone项目仓库
- **目的**将您Fork的项目仓库克隆到本地以便在本地进行修改。
- **步骤**
- 在您的本地机器上,使用`git clone`命令将项目仓库Fork的仓库克隆到本地。
```sh
git clone https://gitlink.org.cn/your id/GPUCodeForces.git
```
备注:`clone地址是fork至你的仓库的项目地址即带有your id的地址这样后续提交才能正确添加至你的仓库而非直接的项目仓库`。
## 3. 创建赛题与分支
- **目的**在Gitlink上建立一个属于自己赛题的issue便于后期跟进。在自己克隆好的仓库的分支上进行修改避免直接修改主分支。
- **步骤**
- 进入到赛事首页:[GPUCodeForces赛事首页](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces),点击[Issues](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/issues),选择创建疑修。
推荐大家按照[模板](https://gitlink.org.cn/ccf-ai-infra/GPUCodeForces/issues/4)来描述自己的疑修,能够被更快批改。
提交完成后返回Issue主页可以看到自己的提交记录可以复制Issue id进行保存。
- 在本地电脑进入克隆的仓库目录,创建一个新的分支来(例如:`dev`分支)进行您的赛题的创作或者修订。
```sh
cd GPUCodeForces
git checkout -b dev
```
## 4. 进行修改
- **目的**:在您的新分支上`dev`进行赛题的创作或者修订。
- **步骤**
- 在您的`dev`分支上进行赛题的创作或者修订。
- 修改完成后,添加并提交您的赛题成果。
```sh
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的仓库。
```sh
git push origin dev
#这里填写你创建的分支不一定为dev
```
## 6. 创建Pull Request
- **目的**:向原始仓库的维护者提交您的修改,请求合并。
- **步骤**
- 回到您的Gitlink仓库找到您Fork的项目并找到[合并请求(PR)](https://www.gitlink.org.cn/Kuohais/GPUCodeForces/pulls)界面。
- 点击新建合并请求
- 选择您推送的分支和原始仓库的主分支
- 填写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
- ```sh
git checkout main
# 切换至main分支
git remote add upstream https://www.gitlink.org.cn/ccf-ai-infra/GPUCodeForces
# 添加上游仓库(即该赛道的主页)
git pull origin main
# 拉取更新
```
备注:`拉取更新的时候要确保当前路径在main下如果仍在自己创建的分支下拉取更新会导致之前自己所做的修改被覆盖。`
通过以上步骤您就可以在Gitlink上有效地参与项目的协作。希望这些信息对您有所帮助如果有任何问题随时欢迎提问。