碼農(nóng)朋友們都知道,GitHub是一個面向開源及私有軟件項目的托管平臺,上面托管了眾多的優(yōu)秀的項目,比如Linux內(nèi)核源碼、Git源碼、機器學習框架Tensorflow等等。當然,除了這些頂尖項目外,還有海量的高手開發(fā)的優(yōu)秀項目。所有的這些項目,我們都可以為它貢獻代碼。
那么,要如何為這些項目貢獻代碼呢?我們下面以實例來講解。
比如說,現(xiàn)在GitHub上有個很牛逼的項目githubTest,它的作者是Alvin,項目地址如下:https://github.com/yychuyu/githubTest。
現(xiàn)在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分支基礎(chǔ)上切出一個dev分支,然后在dev分支上自由發(fā)揮。修改完之后,再將dev分支merge到master分支。
5. push
在自己的電腦上修改好代碼之后,再使用git push命令將改動同步到自己的GitHub項目倉庫里。
通過這個操作后,就可以在代碼倉庫里看到自己的提交了。
6. pull request
接下來,就是向原作者Alvin提交你的代碼了。首先點擊文件列表上的「New pull request」。
之后,GitHub會自動對源倉庫分支及自己倉庫分支代碼進行比對,看看是否有沖突。如果它顯示「Able to merge」的話,Harry就可以點擊下面的「Create pull request」綠色按鈕,進行代碼提交。
再之后,系統(tǒng)會要求你寫一段注釋,其實也可不寫。但最好寫一下,跟作者說明一下你改動了什么,為什么這么改。
通過以上6步,原作者Alvin就會收到一個pull request,如下圖:
然后,Alvin可以點進去,看看Harry具體提交了一些什么修改。如果他覺得這個修改確實夠niubility的話,它就可以點擊「merge pull request」,將Harry的提交集成到自己的項目里。
至此,功德圓滿,Harry順利完成一次對項目githubTest的代碼貢獻。
但是,這個項目實在太出眾了,很多高手看到了并貢獻了眾多代碼。比如現(xiàn)在Alvin自己提交了一個文件:
現(xiàn)在原作者項目已經(jīng)發(fā)生了改變,那Harry賬號下的githubTest如何與原作者Alvin的項目保持同步呢?Harry需要做以下三步操作:
1. fetch
現(xiàn)在代碼不同步了,我們要先把Alvin倉庫的代碼fetch到自己電腦的倉庫下。注意,這是在自己電腦上操作,不是在GitHub上操作。
gitfetchgit@github.com:yychuyu/githubTest.gitmaster:latest
上面這條命令,git fetch 之后的那部分,是原作者Alvin項目git地址,通過點擊原項目「clone or download」按鈕可以看到。再之后master:latest這部分,master是原項目分支,latest是自己項目分支。
如果latest分支不存在的話,將自動創(chuàng)建。其實也可以將代碼fetch到自己的master分支,但也不建議這么做。
2. merge
代碼fetch到latest分支之后,再切到master分支,再使用git merge命令將最新代碼合并到master分支。
3. push
現(xiàn)在,Harry電腦上的代碼與原項目代碼保持同步了。我們再使用git push命令,就可以將最新代碼推到Harry賬號下githubTest項目里。
以上的三個步驟具體操作過程如下圖示:
接下來,Harry就可以在此基礎(chǔ)上,繼續(xù)貢獻自己的代碼了。
-
機器學習
+關(guān)注
關(guān)注
66文章
8441瀏覽量
133091 -
GitHub
+關(guān)注
關(guān)注
3文章
473瀏覽量
16565
原文標題:如何在 GitHub 上大顯身手?
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
教你如何快速在Github上為RT-Thread貢獻代碼
![教你如何快速在<b class='flag-5'>Github</b>上為RT-Thread<b class='flag-5'>貢獻</b><b class='flag-5'>代碼</b>](https://file1.elecfans.com//web2/M00/A6/D7/wKgZomUMQMyAV1WtAADOELTuczw800.png)
上傳本地項目代碼到github
Github發(fā)布史上最大更新
【直播回顧】戰(zhàn)碼先鋒第七期:三方應用開發(fā)者如何為開源做貢獻
來自GitHub的安全威脅應該如何應對
github是什么_github有什么用
github入門到上傳本地項目步驟
github使用教程_github菜鳥教程
![<b class='flag-5'>github</b>使用教程_<b class='flag-5'>github</b>菜鳥教程](https://file1.elecfans.com//web2/M00/A6/FB/wKgZomUMQZyAXHx9AAAyrusqjYc057.png)
2018 年 2 月份 GitHub 上最熱門的開源項目
微軟北極代碼庫項目,GitHub代碼可存儲500年
GitHub無故封禁開源項目引網(wǎng)友不滿 都是開源代碼受管制惹的禍?
如何對OpenHarmony貢獻代碼
![如何對OpenHarmony<b class='flag-5'>貢獻</b><b class='flag-5'>代碼</b>](https://file.elecfans.com/web2/M00/16/4B/pYYBAGFSeH6AOcSUAAAXDlHlt-A153.png)
如何使用Github高效率的查找項目
![如何使用<b class='flag-5'>Github</b>高效率的查找<b class='flag-5'>項目</b>](https://file1.elecfans.com/web2/M00/A7/B1/wKgZomUP2yqAHfbqAAAa6TG1ebk979.png)
評論