之前也用過github管理過自己的項目牺弄,但沒有參與過他人的開源項目,這次有機會參與他人的項目掸驱,根據(jù)要求肛搬,需要為該項目提供一篇文章没佑,并發(fā)起Pull Request,僅以此文記錄温赔。
什么是Pull Request 蛤奢? 請參考知乎高票回答:GitHub 的 Pull Request 是指什么意思?
好了陶贼,正式開始啤贩。
1、首先拜秧,我們要參與他人的開源項目痹屹,并為之做貢獻(xiàn),首先需要 Fork 對方的項目枉氮。為什么呢志衍?很好理解暖庄,因為你沒有權(quán)限直接去修改別人的代碼。所以楼肪,需要先 Fork 對方的項目培廓,那樣你自己的GitHub賬號上,就有了一份該項目的備份春叫。本文中肩钠,我們需要 Fork 的是 TrueChain/wiki 項目:
1.png
2.png
圖2顯示的就是開源項目TrueChain/wiki ,點擊右上角的 Fork 按鈕暂殖,那樣我們自己的賬號上就有了備份:1.png
2.png
3.png
圖3左上角的信息价匠,顯示了我自己的GitHub賬號下的wiki,以及該 wiki 從何處 Fork 而來呛每。
2霞怀、接著,我們需要把我們自己賬號下的這個 wiki 項目 clone 到本地倉庫莉给,然后在本地倉庫進(jìn)行操作毙石,最后提交到我們賬號下的遠(yuǎn)程倉庫 wiki 。
2.1 在電腦上新建文件夾 Fairy , 打開終端颓遏,cd 進(jìn)這個文件夾徐矩,然后把我們自己賬號下的這個 wiki 項目 clone 到 Fairy 文件夾。
4.png
4.png
2.2 參加開源項目的時候叁幢,要養(yǎng)成好習(xí)慣滤灯,為特定的功能新建分支。我在這里新建了一個 yyg_branch 分支曼玩,并切換到了此分支鳞骤。下面,我需要在 wiki 項目中的 task_list/task_20180601 目錄下黍判,新增一個文件豫尽。有兩種做法,一種是繼續(xù)使用終端命令行顷帖,切換到該目錄美旧,新建文件;另外就是直接電腦上建好文件贬墩,然后拖到我們本地倉庫 Fairy 文件夾中 wiki 項目下的 task_list/task_20180601 目錄榴嗅。我用的是后一種方法。
2.3重新回到終端陶舞,輸入status命令查看工作區(qū)的變化嗽测,發(fā)現(xiàn)文件已經(jīng)添加進(jìn)來了,然后使用add和commit命令肿孵,把新增的文件提交到本地倉庫唠粥。
5.png
5.png
2.4 把本地倉庫的改動优炬,用push命令推送到我們的GitHub賬號下的wiki 遠(yuǎn)程倉庫。這里遇到個突發(fā)情況厅贪,push 失敗蠢护,提示說:remote : Permission to YangYegao/wiki.git denied to Zhaoran521。what 养涮?黑人問號臉葵硕。原來,我之前使用過別的GitHub賬號 Zhaoran521 提交過代碼贯吓,而我用的是mac電腦懈凹,mac電腦有個keychain的應(yīng)用即鑰匙串訪問,這里存儲了github先前訪問的密碼悄谐,所以每次push的時候都會讀取這個本地用戶名及密碼介评,我的 git 操作是要 push 到 YangYegao/wiki.git,但電腦讀取的賬號信息是Zhaoran521爬舰,不匹配们陆,所以報錯。這個解決方案其實很簡單:打開Finder ----> 應(yīng)用程序 ---->實用工具 ---->鑰匙串訪問 ---->雙擊情屹,即可進(jìn)入到鑰匙串訪問記錄保存頁面坪仇,選擇github.com名稱的應(yīng)用,右鍵刪除即可垃你。最后椅文,回到終端,再次push代碼惜颇,會提示重新輸入用戶名及密碼镜撩,輸入github賬號及密碼即可督禽。
6.png
6.png
3厂抽、提交成功后评架,回到我們的GitHub頁面,發(fā)現(xiàn)頁面刷新了望伦,變成這樣:提示我們GitHub賬號下的wiki 遠(yuǎn)程倉庫林说,與開源項目TrueChain/wiki相比,存在不同:
7.png
7.png
4屯伞、點擊 Compare & pull request 按鈕,跳轉(zhuǎn)到下圖所示界面:
8.png
填寫相關(guān)資料豪直,點擊“Create pull request”按鈕劣摇,即可發(fā)起本文開頭提到的 Pull Request。剩下的事情弓乙,就是開源項目管理者的事情了末融,他會收到我們的 request 钧惧,然后他會根據(jù)自己的情況來處理這個request。
8.png