共计 2100 个字符,预计需要花费 6 分钟才能阅读完成。
码农敌人们都晓得,gitHub 是一个面向开源及公有软件我的项目的托管平台,下面托管了泛滥的优良的我的项目,比方 linux 内核源码、git 源码、机器学习框架 tensorflow 等等。当然,除了这些顶尖我的项目外,还有海量的高手开发的优良我的项目。所有的这些我的项目,咱们都能够为它奉献代码。
那么,要如何为这些我的项目奉献代码呢?咱们上面以实例来解说。
比如说,当初 gitHub 上有个很牛逼的我的项目githubTest,它的作者是 Alvin,我的项目地址如下:
https://github.com/yychuyu/githubTest
当初 Harry 看到了这个我的项目,想要对它进行奉献代码。想要达到这个目标,Harry 要实现下图的这些步骤:
1. fork
Harry 在找到这个我的项目之后,点击右上角的「fork」按钮。稍等片刻后,就会在 Harry 的账号下克隆了一个一样的我的项目 githubTest,包含文件,提交历史,issues,和其余一些货色。
2. clone
通过 fork 之后,Harry 的账号下也有了 githubTest 这个我的项目,但还不能对它进行编译、批改(其实是能够批改,然而不倡议)。
这时,能够通过 git clone 命令,将这个我的项目 clone 到本人的电脑里。
3. update a file & 4. commit
接下来,Harry 就能够大显神通了,能够自在对这个我的项目进行批改。然而,不倡议在 master 分支间接批改,倡议在 master 分支根底上切出一个 dev 分支,而后在 dev 分支上自由发挥。批改完之后,再将 dev 分支 merge 到 master 分支。
5. push
在本人的电脑上批改好代码之后,再应用 git push 命令将改变同步到本人的 gitHub 我的项目仓库里。
通过这个操作后,就能够在代码仓库里看到本人的提交了。
6. pull request
接下来,就是向原作者 Alvin 提交你的代码了。首先点击文件列表上的「New pull request」。
之后,gitHub 会主动对源仓库分支及本人仓库分支代码进行比对,看看是否有抵触。如果它显示「Able to merge」的话,Harry 就能够点击上面的「Create pull request」绿色按钮,进行代码提交。
再之后,零碎会要求你写一段正文,其实也可不写。但最好写一下,跟作者阐明一下你改变了什么,为啥这么改。
通过以上 6 步,原作者 Alvin 就会收到一个 pull request,如下图:
而后,Alvin 能够点进去,看看 Harry 具体提交了一些什么批改。如果他感觉这个批改的确够 niubility 的话,它就能够点击「merge pull request」,将 Harry 的提交集成到本人的我的项目里。
至此,功德圆满,Harry 顺利完成一次对我的项目 githubTest 的代码奉献。
然而,这个我的项目切实太出众了,很多高手看到了并奉献了泛滥代码。比方当初 Alvin 本人提交了一个文件:
当初原作者我的项目曾经产生了扭转,那 Harry 账号下的 githubTest 如何与原作者 Alvin 的我的项目放弃同步呢?Harry 须要做以下三步操作:
1. fetch
当初代码不同步了,咱们要先把 Alvin 仓库的代码 fetch 到本人电脑的仓库下。留神,这是在本人电脑上操作,不是在 github 上操作。
git fetch git@github.com:yychuyu/githubTest.git master:latest
下面这条命令,git fetch 之后 的那局部,是原作者 Alvin 我的项目 git 地址,通过点击原我的项目「clone or download」按钮能够看到。再之后 master:latest 这部分,master 是原我的项目分支,latest 是本人我的项目分支。如果 latest 分支不存在的话,将主动创立。其实也能够将代码 fetch 到本人的 master 分支,但也不倡议这么做。
2. merge
代码 fetch 到 latest 分支之后,再切到 master 分支,再应用 git merge 命令将最新代码合并到 master 分支。
3. push
当初,Harry 电脑上的代码与原我的项目代码放弃同步了。咱们再应用 git push 命令,就能够将最新代码推到 Harry 账号下 githubTest 我的项目里
以上的三个步骤具体操作过程如下图示。
接下来,Harry 就能够在此基础上,持续奉献本人的代码了。
更多精彩内容,请关注公众号 良许 Linux,公众内回复 1024 可收费取得 5T 技术材料,包含:Linux,C/C++,Python,树莓派,嵌入式,Java,人工智能 ,等等。公众号内回复 进群,邀请您进高手如云技术交换群。
最初,最近很多小伙伴找我要Linux 学习路线图,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!
收费送给大家,只求大家金指给我点个赞!
电子书 | Linux 开发学习路线图
也心愿有小伙伴能退出我,把这份电子书做得更完满!
有播种?心愿老铁们来个三连击,给更多的人看到这篇文章
举荐浏览:
- 干货 | 程序员进阶架构师必备资源免费送
- 神器 | 反对搜寻的资源网站