推薦一篇良許大佬的文章,如何在github上大顯身手。擁有本身的github,且有所貢獻,這是一件頗有意義的的事情,在面試上也是加分項哦,趕忙搞起來。
轉載至 http://uee.me/aHAfN
這推薦一個網站,收集了有趣、入門級的開源項目: https://hellogithub.com/
碼農朋友們都知道,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. clone工具
經過fork以後,Harry的帳號下也有了githubTest這個項目,但還不能對它進行編譯、修改(實際上是能夠修改,可是不建議)。學習
這時,能夠經過git clone命令,將這個項目clone到本身的電腦裏。fetch
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的提交集成到本身的項目裏。
[圖片上傳中...(image-19e584-1547014948798-10)]
至此,功德圓滿,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就能夠在此基礎上,繼續貢獻本身的代碼了。
推薦閱讀:
THANDKS
一個立志成大腿而天天努力奮鬥的年輕人
伴學習伴成長,成長之路你並不孤單!