目录

如何为开源事业做贡献

前段时间读完祖师爷 Linus 的自传 《只是为了好玩》,从手搓操作系统内核并发布到互联网上,到吸引全球开发者共同开发建设才有了现在的 Linux。

想必看了 Linus 的故事,或者刚学习一门编程语言的新人,不知道语言如何实战,或想参与开源运动,那么一起来 Github 上发挥你的聪明才智吧。

步骤 1:准备工作和寻找项目

  1. 了解贡献指南(CONTRIBUTING.md
    • 直接在 GitHub 搜索栏输入 label:“good first issue”,可以找到大量适合新手的任务,根据你熟悉的语言和你感兴趣的范围,找到你想贡献的项目。
    • 通常在项目的根目录下有一个名为 CONTRIBUTING.md 的文件,它详细说明了项目的代码规范、测试要求、提交信息格式和贡献流程。务必先阅读它。
    • 不需要一定选择高 star 项目,从感兴趣的项目开始,找到适合自己的项目,参与其中。
    • 如果你发现项目没有 CONTRIBUTING.md 文件,你可以尝试在项目的 Issues 页面中寻找类似的问题,或者向项目维护者询问是否有贡献指南。
  2. 选择任务(Issue)并声明
    • 在项目的 Issues 页面找到一个你感兴趣且力所能及的任务。推荐从标记有 good first issuebeginner-friendly 的任务开始。
    • 在对应的 Issue 下留言,表明你希望领取这个任务,询问是否有其他人正在处理,并确认你的理解是否正确。
    • 如果你对项目感兴趣但没有足够的知识和能力来解决问题,也可以在 Issue 中提出你的想法或建议,让项目维护者参与讨论。

步骤 2:建立本地工作环境

  1. 派生项目(Fork the Repository)
    • 访问目标项目的 GitHub 页面。
    • 点击右上角的 “Fork” 按钮。这会在你的 GitHub 账户下创建一个该项目仓库的完整副本。
  2. 克隆到本地(Clone Your Fork)
    • 在你派生后的仓库页面,点击 “Code” 按钮,复制 SSH 或 HTTPS 地址。
    • 在你的本地终端执行克隆命令:
      git clone <你复制的 URL>
      cd <项目文件夹>
  3. 添加上游仓库(Add Upstream Remote)
    • 添加原始仓库作为“上游”(Upstream),方便你获取最新的主分支代码:
      git remote add upstream <原始项目 URL>
      git remote -v  # 检查是否成功添加了 origin (你的 fork) 和 upstream (原始项目)

步骤 3:开发和提交代码

  1. 创建新的开发分支(Create a New Branch)
    • 永远不要直接在 mainmaster 分支上工作。从主分支创建一个新分支,分支名称应有描述性,例如 fix/bug-descriptionfeat/add-new-feature
      # 确保你在 main/master 分支
      git checkout main
      # 拉取最新代码,防止冲突
      git pull upstream main
      # 创建并切换到新分支
      git checkout -b <你的分支名称>
  2. 编写代码并测试
    • 进行你的修改(修复 Bug、添加功能、改进文档等)。
    • 运行项目自带的测试,并根据需要添加新的测试以覆盖你的代码更改,确保没有破坏现有功能。
  3. 提交更改(Commit Changes)
    • 暂存你的更改:git add .git add <特定文件>
    • 提交更改:git commit -m "清晰描述你的更改"提交信息应该清晰、简洁,并遵循项目的规范。
    • 更新日志参考 Keep a changelog 网站,里面详细介绍如何维护更新日志

步骤 4:提出拉取请求(Pull Request, PR)

  1. 推送到你的 Fork(Push to Your Fork)
    • 将你的本地分支推送到你在 GitHub 上的派生仓库:
      git push origin <你的分支名称>
  2. 创建拉取请求(Create the Pull Request)
    • 前往你派生后的 GitHub 仓库页面。GitHub 会提示你有一个新分支被推送上来,并显示 “Compare & pull request” 按钮。
    • 点击它,进入 PR 创建页面。
    • 填写 PR 描述: 确保标题和描述清晰,详细说明你做了什么、解决了哪个 Issue(使用 Closes #Issue 编号Fixes #Issue 编号 关联),以及你的更改动机。
    • 点击 “Create pull request” 提交。

步骤 5:审查和合并

  1. 等待审查和反馈
    • 项目维护者会审查你的代码。他们可能会留下评论,要求你进行修改、澄清或添加测试。
  2. 进行修改(如果需要)
    • 在你的本地分支上进行维护者要求的修改。
    • git add . -> git commit -m "Fixes based on review" -> git push origin <你的分支名称>
    • 注意: 所有的修改都会自动更新到你之前创建的 Pull Request 中。
  3. 最终合并
    • 一旦你的代码通过了审查和所有测试,项目维护者就会将你的分支合并(Merge)到原始项目的主分支中。

恭喜你!你的代码已成功贡献到开源项目!