1. 程式人生 > >作為GitHub初級使用者,如何向GitHub貢獻程式碼

作為GitHub初級使用者,如何向GitHub貢獻程式碼

Python之禪和他朋友們圈裡發現有一部分人還不知道如何使用GitHub,貢獻程式碼,這篇文章整理了一個完整的步驟,手把手交你如何操作。

一:先從GitHub Fork 一份程式碼到自己的帳號中

假設 pythonzhichan/DailyQuestion 就是我們將要給它貢獻程式碼的開源專案, github1

Fork完成後,可以在自己的 repositories 列表中看到該專案。

二:Fork專案克隆到本地

把Fork後的專案clone到本地,注意這裡選擇的是 “Use SSH”,而不是 “Use HTTPS”,或者在你push程式碼的時候每次都要輸入GitHub帳號密碼,而使用 SSH 只要你配置好了 SSH keys,就不需要每次輸入帳號密碼了。(關於如何配置SSH-Key參考文末連結)

git clone [email protected]:thezenofpython/DailyQuestion.git

github3

專案成功clone下來,檢查是否有了DailyQuestion目錄

github4

三:配置上游專案地址

配置上游專案地址的目的將來如果原來那個專案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,更新了某些特性,請把我的程式碼合併過去吧。

github5.jpg

新建一個 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 ,一圖勝千言。

github7.png

  • master:其實就是你的本地(Local)專案(在你自己電腦裡面)
  • origin:是你GitHub上Fork的遠端專案(託管在GitHub上專案,屬於你自己的)
  • upstream: 別人的開源專案,origin專案最開始就是從那fork過來的。(託管在GitHub上專案,屬於別人的)

在仔細看看這三者之間的關係(箭頭指向),fetch 命令可以直接把開源專案程式碼抓到本地來再合併(merge),push 命令是把原生代碼推送到遠端GitHub上自己的那個Fork專案中去。如果要把自己的程式碼合併到開源專案中去,就需要在GitHub中發起 Pull Request,再由開源專案負責人把你程式碼進行合併。

參考連結:


關注公眾號「Python之禪」(id:vttalk)獲取最新文章 python之禪