如何在GitHub上大顯身手?

碼農(nóng)朋友們都知道,gitHub是一個(gè)面向開(kāi)源及私有軟件項(xiàng)目的托管平臺(tái),上面托管了眾多的優(yōu)秀的項(xiàng)目,比如linux內(nèi)核源碼、git源碼、機(jī)器學(xué)習(xí)框架tensorflow等等。當(dāng)然,除了這些頂尖項(xiàng)目外,還有海量的高手開(kāi)發(fā)的優(yōu)秀項(xiàng)目。所有的這些項(xiàng)目,我們都可以為它貢獻(xiàn)代碼。

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、浦江ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的浦江網(wǎng)站制作公司

那么,要如何為這些項(xiàng)目貢獻(xiàn)代碼呢?我們下面以實(shí)例來(lái)講解。

比如說(shuō),現(xiàn)在gitHub上有個(gè)很牛逼的項(xiàng)目githubTest,它的作者是Alvin,項(xiàng)目地址如下:

https://github.com/yychuyu/githubTest

如何在GitHub上大顯身手?

現(xiàn)在Harry看到了這個(gè)項(xiàng)目,想要對(duì)它進(jìn)行貢獻(xiàn)代碼。想要達(dá)到這個(gè)目的,Harry要完成下圖的這些步驟:

如何在GitHub上大顯身手?

1. fork

Harry在找到這個(gè)項(xiàng)目之后,點(diǎn)擊右上角的「fork」按鈕。稍等片刻后,就會(huì)在Harry的賬號(hào)下克隆了一個(gè)一樣的項(xiàng)目githubTest,包括文件,提交歷史,issues,和其余一些東西。

如何在GitHub上大顯身手?

2. clone

通過(guò)fork之后,Harry的賬號(hào)下也有了githubTest這個(gè)項(xiàng)目,但還不能對(duì)它進(jìn)行編譯、修改(其實(shí)是可以修改,但是不建議)。

這時(shí),可以通過(guò)git clone命令,將這個(gè)項(xiàng)目clone到自己的電腦里。

如何在GitHub上大顯身手?

如何在GitHub上大顯身手?

3. update a file & 4. commit

接下來(lái),Harry就可以大顯身手了,可以自由對(duì)這個(gè)項(xiàng)目進(jìn)行修改。但是,不建議在master分支直接修改,建議在master分支基礎(chǔ)上切出一個(gè)dev分支,然后在dev分支上自由發(fā)揮。修改完之后,再將dev分支merge到master分支。

如何在GitHub上大顯身手?

5. push

在自己的電腦上修改好代碼之后,再使用git push命令將改動(dòng)同步到自己的gitHub項(xiàng)目倉(cāng)庫(kù)里。

如何在GitHub上大顯身手?

通過(guò)這個(gè)操作后,就可以在代碼倉(cāng)庫(kù)里看到自己的提交了。

如何在GitHub上大顯身手?

6. pull request

接下來(lái),就是向原作者Alvin提交你的代碼了。首先點(diǎn)擊文件列表上的「New pull request」。

如何在GitHub上大顯身手?

之后,gitHub會(huì)自動(dòng)對(duì)源倉(cāng)庫(kù)分支及自己倉(cāng)庫(kù)分支代碼進(jìn)行比對(duì),看看是否有沖突。如果它顯示「Able to merge」的話,Harry就可以點(diǎn)擊下面的「Create pull request」綠色按鈕,進(jìn)行代碼提交。

如何在GitHub上大顯身手?

如何在GitHub上大顯身手?

再之后,系統(tǒng)會(huì)要求你寫(xiě)一段注釋?zhuān)鋵?shí)也可不寫(xiě)。但最好寫(xiě)一下,跟作者說(shuō)明一下你改動(dòng)了什么,為啥這么改。

通過(guò)以上6步,原作者Alvin就會(huì)收到一個(gè)pull request,如下圖:

如何在GitHub上大顯身手?

然后,Alvin可以點(diǎn)進(jìn)去,看看Harry具體提交了一些什么修改。如果他覺(jué)得這個(gè)修改確實(shí)夠niubility的話,它就可以點(diǎn)擊「merge pull request」,將Harry的提交集成到自己的項(xiàng)目里。

如何在GitHub上大顯身手?

如何在GitHub上大顯身手?

至此,功德圓滿,Harry順利完成一次對(duì)項(xiàng)目githubTest的代碼貢獻(xiàn)。

如何在GitHub上大顯身手?

但是,這個(gè)項(xiàng)目實(shí)在太出眾了,很多高手看到了并貢獻(xiàn)了眾多代碼。比如現(xiàn)在Alvin自己提交了一個(gè)文件:

如何在GitHub上大顯身手?

現(xiàn)在原作者項(xiàng)目已經(jīng)發(fā)生了改變,那Harry賬號(hào)下的githubTest如何與原作者Alvin的項(xiàng)目保持同步呢?Harry需要做以下三步操作:

如何在GitHub上大顯身手?

1. fetch

現(xiàn)在代碼不同步了,我們要先把Alvin倉(cāng)庫(kù)的代碼fetch到自己電腦的倉(cāng)庫(kù)下。注意,這是在自己電腦上操作,不是在github上操作。

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

上面這條命令,git fetch 之后 的那部分,是原作者Alvin項(xiàng)目git地址,通過(guò)點(diǎn)擊原項(xiàng)目「clone or download」按鈕可以看到。再之后master:latest這部分,master是原項(xiàng)目分支,latest是自己項(xiàng)目分支。如果latest分支不存在的話,將自動(dòng)創(chuàng)建。其實(shí)也可以將代碼fetch到自己的master分支,但也不建議這么做。

2. merge

代碼fetch到latest分支之后,再切到master分支,再使用git merge命令將最新代碼合并到master分支。

3. push

現(xiàn)在,Harry電腦上的代碼與原項(xiàng)目代碼保持同步了。我們?cè)偈褂胓it push命令,就可以將最新代碼推到Harry賬號(hào)下githubTest項(xiàng)目里

以上的三個(gè)步驟具體操作過(guò)程如下圖示。

如何在GitHub上大顯身手?

接下來(lái),Harry就可以在此基礎(chǔ)上,繼續(xù)貢獻(xiàn)自己的代碼了。

更多精彩內(nèi)容,請(qǐng)關(guān)注公眾號(hào)良許Linux,公眾內(nèi)回復(fù)1024可免費(fèi)獲得5T技術(shù)資料,包括:Linux,C/C++,Python,樹(shù)莓派,嵌入式,Java,人工智能,等等。公眾號(hào)內(nèi)回復(fù)進(jìn)群,邀請(qǐng)您進(jìn)高手如云技術(shù)交流群。

如何在GitHub上大顯身手?

本文名稱(chēng):如何在GitHub上大顯身手?
URL鏈接:http://muchs.cn/article34/jophpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、虛擬主機(jī)服務(wù)器托管、定制開(kāi)發(fā)、品牌網(wǎng)站制作自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)