Open FrankKai opened 5 years ago
贡献给自己经常用的开源项目。 因为只有这样的开源项目我们才知道它的优缺点。比如Webpack,Browserify这种可能有些API感觉可以优化的。或者我们用React库或者Angular模块需要再打磨一下。有一点可以确认,那就是你正在做的东西,由于你的contribute,可以让自己和他人从中受益。
大多数项目都有一个CONTRIBUTING文件。这个文件会有项目的贡献说明。若没有这个文件,可能在README里。若是README里都没有这个文件,那么你就可以提交一个pull request去添加一个简单的CONTRIBUTE.md文件。 vue的CONTRIBUTING.md在这里:https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md
阅读文档是个好方法,但是更好的方式是阅读代码。 通过debugger step into到function calls是一个非常好的方法。 step through代我们将学习到框架、库到底是如何工作的。一开始不理解很正常,时间久了就理解了。只要坚持。
第一次contribution是最艰难的,需要一些指导,最好是项目维护者对你的指导。主要难在流程上,代码的变动其实比较简单。 不要把PR想得太复杂,一个PR可能只是修改一个错字。
A direct and effortless solution to a problem,简单直接的解决问题的办法。
参考: How I learn an Open Source Codebase What open source project should I contribute to?
PR允许你告诉其他人在自己push的分支上有哪些改变。一旦PR处于open状态,你可以和其他人讨论并且review潜在的变化,并且在改变提交到主分支前持续提交。
happy。从当前branch merge到base branch。 有时会有状态检查,只有通过状态检查才能merge到protected branch。
可以。一个PR的多次commit可以被squash成一次,增强项目的可控性。
In the shared repository model, collaborators are granted push access to a single shared repository and topic branches are created when changes need to be made.Pull requests are useful in this model as they initiate code review and general discussion about a set of changes before the changes are merged into the main development branch. This model is more prevalent with small teams and organizations collaborating on private projects.
其实就是所有人都有权限向主分支合并代码,PR在这种模式下可用于code review,常用于小团队的合作。
若是熟悉gitflow,那么topic可以理解为hotfix,feature分支。'topic'的意思是,要让这个分支有意义,有一个关注某个点的主题,topic也是分支创建的原因。
1.New pull request 2.选择base branch和compare(topic) branch 3.为PR键入标题和描述信息 4.Create pull request
可以引入CI帮助我们自动构建并且测试bug,CircleCI是一款很不错的CI选择,需要新建.circleci/confgi.yml并填入配置信息。
3种Merge pull request的方式:
squash commits与rebase commits区别是什么?
squash commits 并 merge:压缩所有commits成一个commit
rebase看起来与commit all 一样,会记录所有的提交记录。 但是若有冲突,不允许rebase commits and merge。但其实rebase 较为复杂,需要先补充下Git rebase的知识点。可以参考:如何理解git rebase?
其实rebase只是做了一个git rebase的操作,另一种使得history更加清晰的一种integrate change的方式。相当于:
git checkout feature
git rebase master
像下图这样:
到github,看项目release。
挑选release中自己敢兴趣的bugfix和improvements,深入一个学习,这里我将挑选vue作为自己感兴趣的开源项目,因为vue是自己的工作框架,需要深入挖掘。
现在自己有非常强烈的学习开源代码的冲动,但是直接看源码又看不懂,因此特地开此issue,记录自己在阅读开源项目代码上的收获。