之前也用過(guò)github管理過(guò)自己的項(xiàng)目,但沒(méi)有參與過(guò)他人的開(kāi)源項(xiàng)目,這次有機(jī)會(huì)參與他人的項(xiàng)目,根據(jù)要求,需要為該項(xiàng)目提供一篇文章,并發(fā)起Pull Request,僅以此文記錄。
什么是Pull Request ? 請(qǐng)參考知乎高票回答:GitHub 的 Pull Request 是指什么意思?
好了,正式開(kāi)始。
1、首先,我們要參與他人的開(kāi)源項(xiàng)目,并為之做貢獻(xiàn),首先需要 Fork 對(duì)方的項(xiàng)目。為什么呢?很好理解,因?yàn)槟銢](méi)有權(quán)限直接去修改別人的代碼。所以,需要先 Fork 對(duì)方的項(xiàng)目,那樣你自己的GitHub賬號(hào)上,就有了一份該項(xiàng)目的備份。本文中,我們需要 Fork 的是 TrueChain/wiki 項(xiàng)目:
1.png
2.png
圖2顯示的就是開(kāi)源項(xiàng)目TrueChain/wiki ,點(diǎn)擊右上角的 Fork 按鈕,那樣我們自己的賬號(hào)上就有了備份:
1.png

2.png

3.png
圖3左上角的信息,顯示了我自己的GitHub賬號(hào)下的wiki,以及該 wiki 從何處 Fork 而來(lái)。
2、接著,我們需要把我們自己賬號(hào)下的這個(gè) wiki 項(xiàng)目 clone 到本地倉(cāng)庫(kù),然后在本地倉(cāng)庫(kù)進(jìn)行操作,最后提交到我們賬號(hào)下的遠(yuǎn)程倉(cāng)庫(kù) wiki 。
2.1 在電腦上新建文件夾 Fairy , 打開(kāi)終端,cd 進(jìn)這個(gè)文件夾,然后把我們自己賬號(hào)下的這個(gè) wiki 項(xiàng)目 clone 到 Fairy 文件夾。
4.png

4.png
2.2 參加開(kāi)源項(xiàng)目的時(shí)候,要養(yǎng)成好習(xí)慣,為特定的功能新建分支。我在這里新建了一個(gè) yyg_branch 分支,并切換到了此分支。下面,我需要在 wiki 項(xiàng)目中的 task_list/task_20180601 目錄下,新增一個(gè)文件。有兩種做法,一種是繼續(xù)使用終端命令行,切換到該目錄,新建文件;另外就是直接電腦上建好文件,然后拖到我們本地倉(cāng)庫(kù) Fairy 文件夾中 wiki 項(xiàng)目下的 task_list/task_20180601 目錄。我用的是后一種方法。
2.3重新回到終端,輸入status命令查看工作區(qū)的變化,發(fā)現(xiàn)文件已經(jīng)添加進(jìn)來(lái)了,然后使用add和commit命令,把新增的文件提交到本地倉(cāng)庫(kù)。
5.png

5.png
2.4 把本地倉(cāng)庫(kù)的改動(dòng),用push命令推送到我們的GitHub賬號(hào)下的wiki 遠(yuǎn)程倉(cāng)庫(kù)。這里遇到個(gè)突發(fā)情況,push 失敗,提示說(shuō):remote : Permission to YangYegao/wiki.git denied to Zhaoran521。what ?黑人問(wèn)號(hào)臉。原來(lái),我之前使用過(guò)別的GitHub賬號(hào) Zhaoran521 提交過(guò)代碼,而我用的是mac電腦,mac電腦有個(gè)keychain的應(yīng)用即鑰匙串訪問(wèn),這里存儲(chǔ)了github先前訪問(wèn)的密碼,所以每次push的時(shí)候都會(huì)讀取這個(gè)本地用戶名及密碼,我的 git 操作是要 push 到 YangYegao/wiki.git,但電腦讀取的賬號(hào)信息是Zhaoran521,不匹配,所以報(bào)錯(cuò)。這個(gè)解決方案其實(shí)很簡(jiǎn)單:打開(kāi)Finder ----> 應(yīng)用程序 ---->實(shí)用工具 ---->鑰匙串訪問(wèn) ---->雙擊,即可進(jìn)入到鑰匙串訪問(wèn)記錄保存頁(yè)面,選擇github.com名稱的應(yīng)用,右鍵刪除即可。最后,回到終端,再次push代碼,會(huì)提示重新輸入用戶名及密碼,輸入github賬號(hào)及密碼即可。
6.png

6.png
3、提交成功后,回到我們的GitHub頁(yè)面,發(fā)現(xiàn)頁(yè)面刷新了,變成這樣:提示我們GitHub賬號(hào)下的wiki 遠(yuǎn)程倉(cāng)庫(kù),與開(kāi)源項(xiàng)目TrueChain/wiki相比,存在不同:
7.png

7.png
4、點(diǎn)擊 Compare & pull request 按鈕,跳轉(zhuǎn)到下圖所示界面:
8.png
填寫(xiě)相關(guān)資料,點(diǎn)擊“Create pull request”按鈕,即可發(fā)起本文開(kāi)頭提到的 Pull Request。剩下的事情,就是開(kāi)源項(xiàng)目管理者的事情了,他會(huì)收到我們的 request ,然后他會(huì)根據(jù)自己的情況來(lái)處理這個(gè)request。

8.png