GitHub开源项目协作开发流程

记得之前看过一篇文章《Github带来的不止是开源,还有折叠的认知》,文章意思就是不要被这些开源的框架,模块,占据了你的全部,不要只会CV,如果我们今天跟着ABC框架走,明天跟着EFG框架走,我们永远学不完,我们也永远不是真的懂。

如果说我们自己创建了一个框架,一个工具,那么这个创造过程中一定会遇到一系列的问题,而攻坚克难的这个过程会强化我们的能力与认知。

GitHub的好,不只是我们能从中免费拿到别人创造的东西,还有给予了我们机会去同样创造,贡献自己的东西给社区。

长久以来,我也不怎么贡献开源社区,核心原因就是懒。而2020年到现在1年多的时间,我有了些许的社区贡献,比如ADR,awesome-mac,IDEA插件,v2ray-docker,Alfred-workflows等。贡献花费了时间,但回报也很客观,比如自身的技术,比如结识了一些网友,比如英文书写的提高等等。总之开源贡献对自身有益。

那么如何贡献开源项目呢,这里Mark下开发流程。

如何贡献

一般更为标准的项目会有专门的文件介绍如何贡献,准确流程要以介绍为准,比如awsome-mac

这里介绍一般的操作流程,假设我只是个普通开发者,非项目管理员

  1. fork项目

  2. 本地clone项目

    推荐使用GitHub CLI或IDEA等IDE自身的拉取功能,较为便捷

  3. push提交

  4. 发起PR

    注意,在我的空间下的该项目中发起PR

  5. 等待管理员review

  6. 等待merged通知

    OK后,代码将会合并到目标项目中去

如上即可完成项目贡献。

同步forked项目

如上只是最common的情况,但还有这样一个情况。假如我贡献提交到awsome-mac,管理员也合并了,但我fork的项目是没有更新的,如果我又想继续提交,如何做呢。

两个办法

  1. 删除自己forked的项目,重新fork即可

  2. 本地项目历史变基

    执行以下几个命令

    1
    2
    3
    4
    $ git fetch upstream
    $ git checkout master
    $ git rebase upstream/master
    $ git push -f origin master

    本地变基也可以使用GUI来操作,如果是IDEA中可以直接执行该操作

写在最后

在保证不影响主工作的同时,适当的进行开源贡献,受益很多,so,加油。