Foreword
github是一個很火的代碼托管服務網站,可能好多人都想參與一兩個項目玩一玩學習一下,但由於是純英文的網站,可能又會止步於想法上沒有動手實踐。接下來我就介紹一下參與github上開源項目的大致流程,以及注意的地方。當然這里不會詳細介紹git的使用,看懂本文還得需要參考其他資料,學習git的相關使用方法。
大致流程
一、首先需要在github上注冊賬號並登陸,這個不多說了
二、安裝git,到github官網下載安裝包。
在這里我用的是github for windows。安裝好后會有一個圖形界面和一個Git Shell。圖形界面還用不了^_^,就以Git Shell介紹下邊的內容吧
三、為賬號添加添加ssh key
clone項目到本地不需要身份認證,但要push修改到github上需要身份驗證。push修改時走ssh協議,所以這里需要將我們的公鑰添加到github賬號中。這里就是ssh實現無密碼登陸,或者所謂的公鑰登陸,就是采用了私鑰確定唯一身份的原理。
1、生成密鑰對。運行Git Shell執行以下命令:
一直按 enter鍵生成密鑰對,最終顯示這個畫面:
這時在你的家目錄下的.ssh目錄下生成了id_rsa、id_rsa.pub兩個秘鑰文件,我的是windows,所以在C:\Users\Administrator\.ssh目錄下。
2、添加公鑰到github上
點擊github上的設置按鈕進入如下界面,然后點擊SSH keys
點擊 Ad SSH key 打開添加公鑰頁面:
打開生成的id_rsa.pub文件,復制內容,注意不要變動其內容。然后粘貼到上面的Key輸入框里,Title輸入框可以隨便起個名字。然后點擊 Add key即添加完成。
3、在本地使用剛剛生成的私鑰,執行如下命令:
四、fork你想參與的開源項目
瀏覽git上的開源項目,然后點擊fork,
這時就跳轉到了你的賬號下,此項目就是你賬號下的一個項目了
fork就相當於把別人的項目克隆到自己的賬號下一份,以后你的修改都應是提交到你自己github賬號下的這個項目中,你是沒有權限直接push到原作者賬號下的項目中的
五、clone項目到本地
1、復制項目clone地址
注意是clone自己賬號下的項目地址,不是原作者的,原作者的你雖然也可以clone到本地,但是你是沒push權限的。還要注意這里咱們使用ssh協議,所以要選擇ssh類型的地址,如圖:
2、clone 到本地,
在命令行下 輸入 git clone 並將復制的地址添加上,然后執行
然后就可以cd進項目目錄了
六、將項目原地址添加為遠程倉庫
復制原作者的項目地址,添加為自己的一個遠程倉庫,用來實時將原項目的修改更新到咱們本地並合並。注意也是復制ssh協議類型的地址哦
使用 git remote -v可以看到我們有兩個倉庫一個origin,咱們自己的github倉庫;一個upstream,原作者的遠程倉庫。當然也可以不用upstream這個名字。
七、創建branch,用於添加自己的修改
這只是一個約定成俗的方式,當然你也可以在master上添加修改,創建新的branch添加自己的修改的好處是,你可以同時添加多個修改,在一個修改還沒有被原作者merge時,你可以用master創建新的branch繼續你的其它修改。
在這里我們在新添加的分支上修改:執行如下命令
git branch test //創建你test分支
git checkout test//切換到test分支
然后就可以添加我們的修改了
八、將修改push到我們的github上
由於我們的github上還沒有test分支,所以我們得把命令寫全了:git push origin test:test
九、pull request
你的修改已經push到了你的github下了,但是你要向原作者請求合並到原項目中,如果原作者合並了,也就意味着你是此項目的貢獻者了。
到你的github上點擊如下按鈕
當然你也可以選擇test分支,,然后點擊項目右邊的
創建一個pull request。
提交完pull request,原作者就會看到你的合並請求,采不采納就是他的事了^_^。
注意事項
1、clone時一定要注意選擇ssh協議的鏈接。否則可能導致clone失敗,或者后續push失敗
2、將公鑰添加到github后,一定要更新自己當前的私鑰(命令:ssh-add ~/.ssh/id_rsa),否則會push失敗