【教程】MindSpore开源社区提交PR
1. 成为 contributor 贡献者
1.1. git clone 开发仓到本地 (例如mindvision仓)
注意这里是 clone 自己的工作仓,输入以下命令:
>>> git clone https://gitee.com/xxxxx/mindvision.git
1.2. rebase 更新本地仓
刚才的操作已经把 gitee 上个人仓的代码拉取到本地,为了保证代码是最新的,我们先来添加主仓,方便同步更新代码:
>>> git remote add upstream https://gitee.com/mindspore/mindvision.git
这就把远端主仓添加到 upstream 里面了。然后使用命令 git rebase:
>>> git rebase upstream/master
详情参考https://www.cnblogs.com/chercher/p/5587979.html
1.3. 修改本地文件
1.3.1. 添加自己邮箱(举例)
打开 mindvision/mindvision/poseestimation 文件夹里面的 README.en.md,在本地对 Readme.en.md 把自己的邮箱和名字添加到 Contributors 里面, 如在ZOMI(chenzomi12@gmail.com) 下面新增一行,直接添加”邮箱”。修改后保存:
冲突是因为修改同一行或者附近代码所导致的,所以同学们可以在 ## Contributors下面 gitee 账号信息处上面或者下面添加都行。
如何解决冲突见文末
2. 提交代码到开源项目
2.1. 将修改上传到然后合并到自己的仓
用 git status 查看修改的内容, 可以看到我们修改了 README.en.md:
>>> git status
接下来要把我们自己的修改上传到自己的仓使用以下三步就可以,其中-m 后面的是你对前提交的 PR 一个注释,同学们需要注意不能乱写,因为这是开源项目中给其他人看
>>> git add
>>> git commit -m “add contributor XXX"
>>> git push
:
2.2. 查看修改内容
这时候去看 gitee 上自己的仓库,可以发现内容已经改了。
2.3. 提交 Pull Request
Pull Request 可以把我们的修改合并到主仓:
在自己的仓库里面找到 Pull Request,点击,就会到达下一个页面。创建 Pull Request 在标题和内容里面写上我们提的这个 Pull Request 目的是什么。可以方便我们之后很快的溯源。
写完以后点下面的 create 就可以啦,之后就到了这个页面。
会有华为的工程师帮我们审核通过,那我们就可以加入主仓的 contributor 了。
同学们注意左上角显示合入才算真正合入,到目前为止只是提交成功。以下红色框内 merged 是已经合入的标志。
3. 签署 CLA
第一次提交完代码后,会在 pulls 页面显示标签 mindspore-cla/no,表示我们还没有签署 CLA,CLA 是参加开源项目的电子证明。
为了让参加开源项目的每一个同学都有一个记录,方便后续简历写上参加 XXX 开源项目,我们要求每个同学都点击进去链接里 https://www.mindspore.cn/icla。同时,PR 下面的评论 I-robot 会提醒点击签署 CLA 协议:
接着看到这个页面,按照步骤执行就可以啦:
值得注意的是,同学们需要注意你们 git config 查看你们 git 操作绑定的邮箱,是不是 CLA签署的邮箱,如果不是那么会显示签署不成功。评论/check-cla 就可以看看自己是否签署成功。
其他:解决冲突
如果遇到冲突,可能是已经有同学先合入代码了,这个时候你就需要先把你个人仓先更新一 下。更新方法是:
>>> git remote add upstream https://gitee.com/mindspore/mindvision.git
这就把远端主仓添加到 upstream 里面了,然后使用命令 git merge:
>>> git rebase upstream/master
解决完冲突就可以重复 2.2 和 2.3 步上传了,
详情参考 https://www.cnblogs.com/chercher/p/5587979.html
其他:提交只有一个commit
为了开源规范和方便审核,注意提交的时候只能有一个 commit
如果提交的多次的话,可以使用 rebase 去合并 commit,详情参考下面链接:
https://jingyan.baidu.com/article/27fa73268a6cec46f8271fab.html