码农同学们都晓得,gitHub是一个面向开源及私有软件项目的托管平台,里面托管了诸多的优秀的项目,例如linux内核源码、git源码、机器学习框架tensorflow等等。其实,不仅这种顶级项目外,还有海量的前辈开发的优秀项目。所有的这种项目,我们都可以为它贡献代码。
这么,要怎样为这种项目贡献代码呢?我们下边以实例来讲解。
例如说红旗linux系统下载,如今gitHub上有个很牛逼的项目githubTest,它的作者是Alvin,项目地址如下:
https://github.com/yychuyu/githubTest
如今Harry看见了这个项目,想要对它进行贡献代码。想要达到这个目的,Harry要完成右图的这种步骤:
1.fork
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分支。
5.push
在自己的笔记本上更改好代码然后linux系统tensorflow,再使用gitpush命令将改动同步到自己的gitHub项目库房里。
通过这个操作后,就可以在代码库房里看见自己的递交了。
6.pullrequest
接出来,就是向原作者Alvin递交你的代码了。首先点击文件列表上的「Newpullrequest」。
以后,gitHub会手动对源库房分支及自己库房分支代码进行比对,瞧瞧是否有冲突。假如它显示「Abletomerge」的话,Harry就可以点击下边的「Createpullrequest」绿色按键,进行代码递交。
再以后,系统会要求你写一段注释,虽然也可不写。但最好写一下,跟作者说明一下你改动了哪些,为何如此改。
通过以上6步,原作者Alvin都会收到一个pullrequest,如右图:
之后,Alvin可以点进去,瞧瞧Harry具体递交了一些哪些更改。假如他认为这个更改确实够niubility的话,它就可以点击「mergepullrequest」,将Harry的递交集成到自己的项目里。
至此,功德完满,Harry顺利完成一次对项目githubTest的代码贡献。
然而,这个项目实在太出色了,好多大神听到了并贡献了诸多代码。例如现今Alvin自己递交了一个文件:
如今原作者项目早已发生了改变,那Harry帐号下的githubTest怎样与原作者Alvin的项目保持同步呢?Harry须要做以下三步操作:
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
如今,Harry笔记本上的代码与原项目代码保持同步了。我们再使用gitpush命令,就可以将最新代码推到Harry帐号下githubTest项目里
以上的三个步骤具体操作过程如右图示。
接出来,Harry就可以在此基础上,继续贡献自己的代码了。
>2020精选阿里/腾讯等一线大厂笔试、简历、进阶、电子书「**良许Linux**」后台回复「**资料**」免费获取
####看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!
1.关注**原创**「**良许Linux**」linux系统tensorflow,第一时间获取最新Linux干货!
2.后台回复【资料】【面试】【简历】获取精选一线大厂笔试、自我提高、简历等资料。
3.关注我的博客:[]()