今天无聊看了看ant-design的cascader组件,下载源码后发现实现基于rc-cascader源码实现的,并且都是阿里维护的。于是我就clone了rc-cascader源码到本地。本地运行npm i然后执行下了npm run test发现测试报错如下:
心想不应该啊,我git clone的master分支,什么都没改咋就报错了?于是追查了下去发现是antd的维护者提的另一个pull 985导致的。
经过确认准备提一个修复的PR给rc-cascader,我先在rc-cascader提了一个issue434。如下
标题 Error when running npm run test. 描述了遇到的问题。 评论部分放上了报错截图和导致问题pr的链接。
提完issue接下来就可以按照问题准备自己的PR了。
- 第一步,找到官方的代码仓库fork代码到自己的github仓库中,我们本文称官方的代码仓库为fork源,fork到自己github的仓库称之为fork镜像。
- 第二步,在自己的仓库找到fork的仓库并git clone代码到本地,我们称之为fork本地镜像。
- 第三步,本地打开clone下来的代码,执行git remote add upstream github.com/react-compo... ,upstream后的地址来自fork的源的浏览器地址加.git后缀。如下图:
这样就将添加cascader的远程地址,用于将fork本地镜像和fork源代码做同步使用。本地执行git pull upstream master就可以将本地clone的fork本地镜像和fork源做代码同步。
- 第四步,本地基于master分支创建新的分支fix-snapshots-error,修改代码,然后执行npm run test -- -u更新本地快照。我这里是快照错误,所以我没有什么要修改的代码,将快照更新后就commit + push到自己的fork镜像仓库中了。
进入自己fork镜像仓库中,会有如图所示的提示,询问你是否创建PR,点击绿色按钮创建PR即可。然后编辑PR模版:
标题可以参考已经合并的PR填写,添加描述(antd有一套自己的PR模版,按照要求来可以更利于维护者们的审核)并提及这个PR是用于解决哪个issue的。然后创建完PR你就会发现:
你刚才提的issue底下就显示了你提的PR的链接!(此处我的PR是已经被合并了,所以显示closed和merged)
- 第五步,等待开源代码的维护者们review你的PR并且提出的修改意见,初衷都是希望代码质量更高,经过你们的商讨和修改,维护者们将会同意你的PR合并到他们的分支,至此你的PR就已经进入了开源的世界!