1@page contribute_code 贡献代码说明 2 3**[更正文档](https://gitee.com/alios-things/documentation/edit/rel_3.3.0/developer/contribute_code.md)**      **[贡献说明](https://help.aliyun.com/document_detail/302301.html)** 4 5项目地址:[https://gitee.com/alios-things/AliOS-Things](https://gitee.com/alios-things/AliOS-Things) 6 7AliOS Things为开发者在Gitee平台上提供了贡献代码的入口,开发者可以在AliOS Things项目下找到想到修改的仓库进行代码提交,具体步骤如下。 8 9# 查找目标仓库 10AliOS Things 3.3版本在Gitee平台上,每个功能模块分配一个独立的仓库。 11若开发者想对某个组件或案例仓库贡献代码,可以在AliOS Things概览页面点击选项栏中的“仓库”切换到“仓库”页,在搜索栏中输入目标组件或案例的名称,确认后即可显示搜索结果。以目标仓库为netmgr为例,搜索方式如下图: 12 13<div align="left"> 14 <img src="https://img.alicdn.com/imgextra/i2/O1CN01FLjYJF1abQiC3Xk26_!!6000000003348-2-tps-789-326.png" style="max-width:800px;" > 15</div> 16 17 18# 切换分支 19打开目标组件或案例的仓库,切换代码分支为rel_3.3.0,即可查看到该组件或案例3.3版本对应的源代码。以目标仓库为netmgr为例,切换分支方法如下图。 20 21<div align="left"> 22 <img src="https://img.alicdn.com/imgextra/i1/O1CN01Ul5th61rda2VfNObR_!!6000000005654-2-tps-919-555.png" style="max-width:800px;" > 23</div> 24 25 26# 创建 Fork下载代码 271、在Gitee 上的目标仓库里单击 “fork” 按钮,将目标仓库fork一份到开发者自己的名下。以目标仓库为amp为例,Fork代码的方法如下图: 28 29<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i1/O1CN01Zg2mW91z0CvYKEaGT_!!6000000006651-2-tps-1236-791.png" style="max-width:800px;" /> </div> 30 312、进入开发者fork出来的目标仓库,注意,该仓库地址已经从AliOS Things/<TARGET> 变成<YOUR_NAME>/<TARGET>,如下图所示。然后根据图中提示的步骤复制仓库地址。 32 33<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i1/O1CN01njxqmz1MMP6YUS3Co_!!6000000001420-2-tps-1236-499.png" style="max-width:800px;" /> </div> 34 35 36 373、下载代码 38注意:gitee提供多种下载方式,本文使用https,下载代码时会要求输入密码,密码是开发者的gitee登录密码。 39 40```bash 41# 注意YOUR_NAME替换成开发者Gitee账号的名称;TARGET替换为Gitee仓库名称 42$ git clone https://gitee.com/<YOUR_NAME>/<TARGET>.git 43``` 44# 本地开发并提交 45本文以提交amp仓库下的代码为例子,提供完整开发命令供参考 46 47```bash 48# 1、Checkout and switch to your new branch 49# 注意TARGET替换为Gitee仓库名称 50$ cd <TARGET> 51$ git checkout rel_3.3.0 52 53# Commit and push your code 54git add -A #-A表示将本地所有修改文件提交,若只需要提交若干文件,请将-A替换成文件名 55git commit -s #填写log日志,说明变更的内容,影响功能点等 56git push #将本地代码push到github 57``` 58 59在gitee网页按下图操作,如果出现你的提交记录,说明push成功 60 61<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i4/O1CN013qWfcb1hMV7Wl8uch_!!6000000004263-2-tps-1236-475.png" style="max-width:800px;" /> </div> 62 63 64# 创建pull request 65当功能开发完成后,可以发起 Pull Request,申请合入代码到AliOS Things/<TARGET>。 66 67在开发者gitee的AliOS-Things仓库页面上,然后单击“ Pull requests ”按钮发起“+新建 pull request”. 如下图网页操作,创建一个pull request 68 69<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i4/O1CN01cH38pj1E96gMPplyV_!!6000000000308-2-tps-1240-1045.png" style="max-width:800px;" /> </div> 70 71<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i4/O1CN013qWfcb1hMV7Wl8uch_!!6000000004263-2-tps-1236-475.png" style="max-width:800px;" /> </div> 72 73 74在AliOS Things/<TARGET> 页面,看到自己的pull request请求,即说明创建成功,等待审核 75 76<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i2/O1CN01CVuWdl1G5YqVci86P_!!6000000000571-2-tps-1240-487.png" style="max-width:800px;" /> </div> 77 78 79 80# 同步代码 81在发起 Pull Request 之前,有可能原来的仓库AliOS Things/<TARGET>有代码更新,那么请按照以下步骤,拉取AliOS Things/<TARGET>最新的代码至本地。 82```bash 83# 注意TARGET替换为Gitee仓库名称 84$ git remote add upstream https://gitee.com/alios-things/<TARGET>.git 85$ git remote -v #此时本地有两个远程地址,origin和upstream,origin对应fork仓库,upstream对应<TARGET>仓库 86$ git fetch upstream #将alibaba仓库代码更新到本地 87$ git checkout rel_3.3.0 #切换到master分支 88$ git merge upstream/rel_3.3.0 #合并AliOS Things/<TARGET>的更新至本地 89``` 90如果merge过程中,代码有冲突,需要解决所有代码冲突以后,才能提交。 91 92 93# 关注我们 94如果你想实时了解Alios-Things的动态,请记得点击watch持续关注 95 96<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i4/O1CN01sTnsXX1XMpFDKSs9b_!!6000000002910-2-tps-2830-912.png" style="max-width:800px;" /> </div> 97 98 99 100# 点赞我们 101如果你喜欢这个项目,就请给我们一个小星星吧 102 103<div align=left display=flex> <img src="https://img.alicdn.com/imgextra/i2/O1CN01J3HMIe1ecaBDvfWOl_!!6000000003892-2-tps-2818-850.png" style="max-width:800px;" /> </div> 104