如何在GitHub上大顯身手?

碼農朋友們都知道,gitHub是一個面向開源及私有軟件項目的託管平臺,上面託管了衆多的優秀的項目,好比linux內核源碼、git源碼、機器學習框架tensorflow等等。固然,除了這些頂尖項目外,還有海量的高手開發的優秀項目。全部的這些項目,咱們均可覺得它貢獻代碼。linux

那麼,要如何爲這些項目貢獻代碼呢?咱們下面以實例來說解。git

好比說,如今gitHub上有個很牛逼的項目githubTest,它的做者是Alvin,項目地址以下:github

https://github.com/yychuyu/githubTest

如今Harry看到了這個項目,想要對它進行貢獻代碼。想要達到這個目的,Harry要完成下圖的這些步驟:框架

1. fork機器學習

Harry在找到這個項目以後,點擊右上角的「fork」按鈕。稍等片刻後,就會在Harry的帳號下克隆了一個同樣的項目githubTest,包括文件,提交歷史,issues,和其他一些東西。學習


2. clonefetch

經過fork以後,Harry的帳號下也有了githubTest這個項目,但還不能對它進行編譯、修改(實際上是能夠修改,可是不建議)。人工智能

這時,能夠經過git clone命令,將這個項目clone到本身的電腦裏。

3d

3. update a file & 4. commitcode

接下來,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,人工智能,等等。公衆號內回覆進羣,邀請您進高手如雲技術交流羣。

img


公衆號:良許Linux

有收穫?但願老鐵們來個三連擊,給更多的人看到這篇文章

相關文章
相關標籤/搜索