前言
由于近期主包看中了一个项目,所以搞了一些 svg 作为贡献提了上去,发现很多人想做贡献但是不会)
前提
贴一下 Git 基础配置
1 | # 配置用户名和邮箱 |
你得找好项目,评估一下项目现在处于什么水平,然后去做什么样的贡献。
通过 GitHub
的stars
、forks
、issues
活跃度和最近更新时间筛选,优先选择近
3 个月有提交的项目。要不然你的 PR 很有可能就会放置很久。
练习提交第一个PR
,这对于开源新手来说会是一个很好的开始,GitHub
官方也知道这件事,一般新手可从good first issue
标签的任务入手(许多项目会用该标签标记适合新手的任务)。
练习仓地址:https://github.com/TinaSprunt/How-to-contribute-code-to-the-open-source-community
在练习仓库可以轻松的提交任何东西,不必担心产生错误,这只是一个练习git
的流程。无论提交啥反正我都会通过的。
一般在进行贡献之前,可以看看项目是否有这种文档,如果有,按照规范去做可以避免很多PR被拒绝的情况
CONTRIBUTING.md: 贡献指南和规范
CODE_OF_CONDUCT.md: 行为准则
fork 社区仓库
打开你想参与贡献的社区的仓库的 github
页面,并且
fork
(复刻) 这个仓库到你的 GitHub 账号

打开你自己的 github
页面,此时应该会多一个仓与你刚
fork
的仓库同名的复刻仓库
同步上游仓库
首先先把 fork 的仓库克隆到本地,在这个本地仓库进行修改
添加的上游仓库名叫 upstream
开头的
1 | # 克隆个人仓库到本地 |
如果你的项目如果是已经 fork
了一段时间的,官方可能已经进行了很多修改,与你 fork
下来的时候不一样了,就需要 fetch upstream
查看官方更新,点击 fetch and merge
按钮进行同步
或者拉取上游仓库文件,进行同步
1 | git fetch upstream |
或者
1 | # 1. 同步最新代码 |
创建修改分支
基于main
或develop
分支创建新分支,注意部分仓库这里是需要有命名规范的:
1 | # 拉取上游最新代码 |
之后进行开发需要注意
- 遵循项目的代码风格
- 编写清晰的代码注释
- 添加必要的测试
- 确保所有测试通过
提交更改
规范提交信息,遵循Header: Body
格式:
1 | # 1. 查看更改 |
- Header 类型说明
fix
:修复 bugfeat
:新增功能docs
:文档更新refactor
:代码重构test
:测试用例添加
推送分支并创建 PR
推送到个人仓库
1 | # 推送分支到您的Fork |
在 GitHub 上进入你的仓库,点击
Compare & pull request
按钮,选择正确的目标分支(通常是main或master),填写
PR 模板:
- 标题:简明描述变更(如
Fix NPE in login interface
) - 正文:说明变更原因、影响范围、测试结果
- 关联 Issue:如果修复某个
Issue,添加
Closes #123

之后就是等待上游仓库的所有者合并了

如果长时间无响应,礼貌提醒维护者(如Hi, just checking if there's any update on this PR
)
处理修改请求
上游仓库的所有者可能提出修改建议,需要你处理,这时候需要更改
1 | # 1. 在原分支上进行修改 |
如果PR 与上游代码冲突,需要合并冲突
1 | # 拉取上游最新代码 |
维护者合并 PR 后,同步到本地:
1 | git checkout main |