去年注册了一个github帐号,不过一直没用,更不别说在上面参与协同的项目开发。这次在导师的建议下,使用了 Fork + Pull 的开发模式参与他们的这个开源项目。短短一个月的使用,github 开发模式的便捷性给我留下了深刻的映像。这里记录一些使用过程和感想。
版本库 fork
作为项目的参与者,我不需要向托管原始项目的作者提交权限,只要自己 fork 一个副本到自己的本地托管空间就行了,所有这样派生出的项目副本都会有链接指向原始项目。
习惯了在win平台进行闭源项目开发的可能会觉得很不思议,别人的工作成果只是左击了一个 fork 就全部复制过来了。这正是开源项目的魅力所在,开放+透明+协作。我好奇去看了一下 torvalds 的 linux repo,有六千多个 fork ,一万多个 Star , 四十多万的 commit 。通过点击 graph 可以清楚地看到整个项目的发展历史和主要的贡献者。想看一下他的 Network ,点开后报
Couldn't load network graph. Too many forks to display.
项目 pull request
在派生项目的 commit 可以通过 compare 来查看与原始项目的变化,通过发送 Pull Request 可以将自己的项目副本中的变化提交给原始项目维护者。
github 中的这个项目派生也不会导致项目的分裂,git fetch
和 git merge
可以方便地查看原始项目的变化并合并到自己的派生项目里。通过pull request
可以将派生项目中的版本变化提交给原始项目。
代码 review
提交 pull request 之后就是针对提交的 code review。github 同时也提供了一个友好的代码 review 平台。在这次开发过程中,导师在我提交的 pull request 通过 line note 留言来指出问题,通过这种形式可以很方便地针对各个代码段进行讨论。