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