“只要有足够多的眼睛就可以让所有问题浮出水面。”

开源社区所倡导的理念正在吸引越来越多的人加入其中,开放、平等、协作、共享的开源模式,能够集众智、采众长,加速软件迭代升级,促进产用协同创新,推动产业生态完善,已成为全球软件技术和产业创新的主导模式。可以说“软件定义未来的世界,开源决定软件的未来”。

那么,如何成为开源社区大佬?如何为自己心动的开源项目贡献代码?

本文就以 AliOS Things 为例,为大家介绍 如何使用 Pull Request 向 git 仓库贡献代码。

除了文字版,也为大家提供了视频教程:

开源大佬第一步 如何提交Pull Request

让我们开始吧!

Step1  进入项目主页

AliOS-Things: AliOS Things物联网操作系统,采用弹性内核,支持Python和JavaScript轻应用,主打“易上手”。https://gitee.com/alios-things-admin/AliOS-Things

Step2 Fork仓库到自己的账号下

如果我们需要改动代码,最好的方法是,在自己的账号下有一份一模一样的代码仓库,通过在自己的仓库上进行修改,再将 改动生成的patch 提交给原始仓库。

gitee 为开发者们提供了 Fork 工具。 Fork的名词释义是“叉子”,作不及物动词时意为“分叉;分歧”。那么fork一个仓库,其实也就是创建了一个分叉。所以,下次你想告诉别人你要fork仓库的时候,可以这样说,来显得你非常内行(误):叉一个仓库

Step3 下载fork后的代码到本地(自己的计算机)

进入你刚刚fork出来的AliOS Things仓库,注意,该仓库地址已经从AliOS Things/AliOS-Things变成<YOUR_NAME>/AliOS-Things,如下图所示。然后根据图中提示的步骤复制仓库地址。

进入到你想存放代码仓库的目录  然后在命令行执行 git clone

# git clone 后面的链接来自你刚刚复制的地址
$ git clone https://gitee.com/<YOUR_NAME>/AliOS-Things.git

Step4 创建自己的改动 并提交改动到仓库

当你在本地修改完代码并验证之后,你就可以将自己的改动提交

# 进入仓库目录
$ cd AliOS-Things

# Commit and push your code
$ git add -A				#-A表示将本地所有修改文件提交,若只需要提交若干文件,请将-A替换成文件名
$ git commit -s 			#填写log日志,说明变更的内容,影响功能点等
$ git push				    #将本地代码push到远端仓库

在gitee网页按下图操作,如果出现你的提交记录,说明push成功

Step5 创建Pull Request

什么是 Pull Request ? 翻译成中文的意思是“请求拉取”,这两个动词。其实,它完整的解释是“请求 别人 拉取 自己的仓库”,也就是说,我们刚刚已经提交了改动到自己的仓库上,现在我们请求AliOS Things 的管理员去pull(拉取)我们自己的仓库,这样一来,我们的改动就能合入到 AliOS Things 的仓库,从而完成代码提交。

在你自己gitee的AliOS-Things仓库页面上,单击“ Pull requests ”按钮发起“+新建 pull request”. 如下图网页操作,创建一个pull request

前往 AliOS Things/AliOS-Things 页面,看到自己的pull request请求,即说明创建成功,等待审核

当 AliOS Things 仓库管理员验证你提交的代码没问题,就可以完成合入啦!

成功提交代码的贡献者,你的名字也会出现在贡献者表单里哦

extra 同步代码

在发起 Pull Request 之前,有可能原来的仓库AliOS Things/AliOS-Things有代码更新,那么请按照以下步骤,拉取AliOS Things/AliOS-Things最新的代码至本地。

$ git remote add upstream https://gitee.com/alios-things-admin/AliOS-Things.git
$ git remote -v						#此时本地有两个远程地址,origin和upstream,origin对应fork仓库,upstream对应AliOS Things仓库
$ git fetch upstream				#将alibaba仓库代码更新到本地									
$ git checkout master				#切换到master分支				
$ git merge upstream/master		    #合并AliOS Things/AliOS-Things的更新至本地		

如果merge过程中,代码有冲突,需要解决所有代码冲突以后,才能提交。

关注我们

如果你想实时了解Alios-Things的动态,请记得点击watch持续关注

我们的地址

Gitee: 

AliOS-Things: AliOS Things物联网操作系统,采用弹性内核,支持Python和JavaScript轻应用,主打“易上手”。https://gitee.com/alios-things-admin/AliOS-ThingsGithub:

https://github.com/alibaba/AliOS-Thingsicon-default.png?t=M1L8https://github.com/alibaba/AliOS-Things

点赞我们

如果你喜欢这个项目,就请给我们一个小星星吧

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐