作為GitHub初級使用者,如何向GitHub貢獻程式碼
在Python之禪和他朋友們圈裡發現有一部分人還不知道如何使用GitHub,貢獻程式碼,這篇文章整理了一個完整的步驟,手把手交你如何操作。
一:先從GitHub Fork 一份程式碼到自己的帳號中
假設 pythonzhichan/DailyQuestion 就是我們將要給它貢獻程式碼的開源專案,
Fork完成後,可以在自己的 repositories 列表中看到該專案。
二:Fork專案克隆到本地
把Fork後的專案clone到本地,注意這裡選擇的是 “Use SSH”,而不是 “Use HTTPS”,或者在你push程式碼的時候每次都要輸入GitHub帳號密碼,而使用 SSH 只要你配置好了 SSH keys,就不需要每次輸入帳號密碼了。(關於如何配置SSH-Key參考文末連結)
git clone [email protected]:thezenofpython/DailyQuestion.git
專案成功clone下來,檢查是否有了DailyQuestion目錄
三:配置上游專案地址
配置上游專案地址的目的將來如果原來那個專案pythonzhichan/DailyQuestion有程式碼更新時,我們需要把它最新程式碼合併到我自己的Fork的專案中,這樣才能保持程式碼同步,否則你的專案永遠停留在Fork時候的版本。
切換到專案目錄:
cd DailyQuestion
假設原專案是 [email protected]:pythonzhichan/DailyQuestion.git
git remote add upstream git@github.com:pythonzhichan/DailyQuestion.git
這裡的 upstream
就是我們上游專案地址的別名,待會兒就是從這個專案中去拉最新的程式碼。
四:建立一個 Pull Request
現在假設你在本地專案中修改了程式碼,新增了檔案,當我們把程式碼push到Github之後,你就可以在GitHub發起一個Pull Request了,告知原專案,我修復了一些Bug,更新了某些特性,請把我的程式碼合併過去吧。
新建一個 Pull Request,如果GitHub發現你的程式碼和原專案差異,那麼就可以成功 Create Pull Request。這樣原專案的負責人就可以收到你的Pull Reuqest了。然後就等著他稽核、合併程式碼,稽核通過之後,你的程式碼將被正式合併到他的原專案中去。 df
五:合併開源專案最新程式碼到自己的Fork專案中
1、獲取上游專案更新
git fetch upstream
2、合併到本地分支
git merge upstream/master
3、提交推送
git push origin master
這樣你的程式碼就和原專案的程式碼保持同步了。
總結
這裡出現了好幾個名詞,包括 origin, master, upstream ,一圖勝千言。
- master:其實就是你的本地(Local)專案(在你自己電腦裡面)
- origin:是你GitHub上Fork的遠端專案(託管在GitHub上專案,屬於你自己的)
- upstream: 別人的開源專案,origin專案最開始就是從那fork過來的。(託管在GitHub上專案,屬於別人的)
在仔細看看這三者之間的關係(箭頭指向),fetch 命令可以直接把開源專案程式碼抓到本地來再合併(merge),push 命令是把原生代碼推送到遠端GitHub上自己的那個Fork專案中去。如果要把自己的程式碼合併到開源專案中去,就需要在GitHub中發起 Pull Request,再由開源專案負責人把你程式碼進行合併。
參考連結:
關注公眾號「Python之禪」(id:vttalk)獲取最新文章