码农同学们都晓得,gitHub是一个面向开源及私有软件项目的托管平台,里面托管了诸多的优秀的项目,例如linux内核源码、git源码、机器学习框架tensorflow等等。其实,不仅这种顶级项目外,还有海量的前辈开发的优秀项目。所有的这种项目,我们都可以为它贡献代码。

这么,要怎样为这种项目贡献代码呢?我们下边以实例来讲解。

例如说红旗linux系统下载,如今gitHub上有个很牛逼的项目githubTest,它的作者是Alvin,项目地址如下:

https://github.com/yychuyu/githubTest

如今Harry看见了这个项目,想要对它进行贡献代码。想要达到这个目的,Harry要完成右图的这种步骤:

linux系统tensorflow_系统软件erp_系统np

1.fork

linux系统tensorflow_系统np_系统软件erp

Harry在找到这个项目以后国内linux主机,点击右上角的「fork」按钮。稍等片刻后,才会在Harry的帐号下克隆了一个一样的项目githubTest,包括文件,递交历史,issues,和其余一些东西。

2.clone

通过fork以后,Harry的帐号下也有了githubTest这个项目,但还不能对它进行编译、修改(虽然是可以更改,而且不建议)。

这时,可以通过gitclone命令,将这个项目clone到自己的笔记本里。

3.updateafile&4.commit

接出来,Harry就可以大显身手了,可以自由对这个项目进行更改。并且,不建议在master分支直接更改,建议在master分支基础上切出一个dev分支,之后在dev分支上自由发挥。更改完以后,再将dev分支merge到master分支。

系统np_系统软件erp_linux系统tensorflow

5.push

系统软件erp_linux系统tensorflow_系统np

在自己的笔记本上更改好代码然后linux系统tensorflow,再使用gitpush命令将改动同步到自己的gitHub项目库房里。

通过这个操作后,就可以在代码库房里看见自己的递交了。

6.pullrequest

接出来,就是向原作者Alvin递交你的代码了。首先点击文件列表上的「Newpullrequest」。

系统np_linux系统tensorflow_系统软件erp

以后,gitHub会手动对源库房分支及自己库房分支代码进行比对,瞧瞧是否有冲突。假如它显示「Abletomerge」的话,Harry就可以点击下边的「Createpullrequest」绿色按键,进行代码递交。

系统np_linux系统tensorflow_系统软件erp

linux系统tensorflow_系统软件erp_系统np

系统np_系统软件erp_linux系统tensorflow

再以后,系统会要求你写一段注释,虽然也可不写。但最好写一下,跟作者说明一下你改动了哪些,为何如此改。

通过以上6步,原作者Alvin都会收到一个pullrequest,如右图:

linux系统tensorflow_系统np_系统软件erp

之后,Alvin可以点进去,瞧瞧Harry具体递交了一些哪些更改。假如他认为这个更改确实够niubility的话,它就可以点击「mergepullrequest」,将Harry的递交集成到自己的项目里。

linux系统tensorflow_系统np_系统软件erp

系统软件erp_系统np_linux系统tensorflow

至此,功德完满,Harry顺利完成一次对项目githubTest的代码贡献。

然而,这个项目实在太出色了,好多大神听到了并贡献了诸多代码。例如现今Alvin自己递交了一个文件:

linux系统tensorflow_系统np_系统软件erp

如今原作者项目早已发生了改变,那Harry帐号下的githubTest怎样与原作者Alvin的项目保持同步呢?Harry须要做以下三步操作:

系统np_linux系统tensorflow_系统软件erp

1.fetch

现今代码不同步了,我们要先把Alvin库房的代码fetch到自己笔记本的库房下。注意,这是在自己笔记本上操作,不是在github上操作。

git fetch git@github.com:yychuyu/githubTest.git master:latest

前面这条命令,gitfetch以后的那部份,是原作者Alvin项目git地址,通过点击原项目「cloneordownload」按钮可以看见。再然后master:latest这部份,master是原项目分支,latest是自己项目分支。假如latest分支不存在的话,将手动创建。虽然也可以将代码fetch到自己的master分支,但也不建议如此做。

2.merge

代码fetch到latest分支以后,再切到master分支,再使用gitmerge命令将最新代码合并到master分支。

3.push

系统软件erp_系统np_linux系统tensorflow

如今,Harry笔记本上的代码与原项目代码保持同步了。我们再使用gitpush命令,就可以将最新代码推到Harry帐号下githubTest项目里

以上的三个步骤具体操作过程如右图示。

接出来,Harry就可以在此基础上,继续贡献自己的代码了。

>2020精选阿里/腾讯等一线大厂笔试、简历、进阶、电子书「**良许Linux**」后台回复「**资料**」免费获取

####看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!

1.关注**原创**「**良许Linux**」linux系统tensorflow,第一时间获取最新Linux干货!

2.后台回复【资料】【面试】【简历】获取精选一线大厂笔试、自我提高、简历等资料。

3.关注我的博客:[]()

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复