- 原文地址:The beginner's guide to contributing to a GitHub project
- 原文做者:Rob Allen
- 譯文出自:掘金翻譯計劃
- 本文永久連接:github.com/xitu/gold-m…
- 譯者:sophia
- 校對者:maoqyhz Isabella
這是一個針對於如何在 GitHub 上貢獻開源代碼的新手指南。該指南主要基於我看到 Zend Framework,Slim Framework 和 joind.in 它們如何操做。可是,這僅僅是一個通用的指南,所以請先檢查項目的 README 文件以瞭解具體狀況。html
首先你須要這個項目的本地克隆,因此先在 GitHub 中按下「fork」按鈕。按下按鈕後會自動在你的 GitHub 帳戶中建立一個該項目倉庫的副本,並且你會看到在已經被 fork 成功的項目名稱下面有一行註釋:前端
如今你須要一個本地副本,所以在右側列中找到「SSH clone URL」,並使用它在本地終端進行克隆:android
$ git clone git@github.com:akrabat/zend-validator.git
複製代碼
以下圖所示:ios
轉到新項目所在目錄中去:git
$ cd zend-validator
複製代碼
最後,在這個階段,你須要設置一個指向原始項目的新遠端地址,以便你能夠抓取原始項目的任何更改並將它們更新至本地副本。首先定位到原始項目的連接 —— 它在 GitHub 頁面的頂部,經過「fork from」標記。該連接會將你帶回原始項目的 GitHub 主頁,所以你能夠在該頁面找到「SSH clone URL」,並使用它去建立新的遠端,咱們稱之爲 upstream。github
$ git remote add upstream git@github.com:zendframework/zend-validator.git
複製代碼
你如今在磁盤上擁兩個此項目的遠端:後端
這是你爲項目做出貢獻時最有趣的一步。一般狀況下,最好從修復一個使人討厭的 bug 開始,或者是你在項目的 issue 跟蹤器中找到的問題。若是你正在尋找一個開始的地方,不少項目使用「easy pick「標籤(或者相近意思的標籤)來代表這個問題能夠由剛剛接觸此項目的人來解決。瀏覽器
第一法則是將每一份修改工做都放到本身的分支上。若是項目使用 git-flow,那麼它將同時擁有一個 master 和一個 develop 分支。通常的規則是,若是你是修復 bug,那麼從 master 上拉下新分支。若是你正在添加一個新功能,那麼從 develop 上拉下新分支。若是該項目只有一個 master 分支,直接從該 master 拉取新分支。有一些項目,如 Slim 使用以版本號命名的分支(2.x 和 3.x)。在這種狀況下,選擇相關的分支。bash
對於這個例子,咱們假設咱們正在修復 zend-validator 中的一個 bug, 因此咱們從 master 拉出新分支:ide
$ git checkout master
$ git pull upstream master && git push origin master
$ git checkout -b hotfix/readme-update
複製代碼
首先,咱們要確保咱們在 master 分支上。而後 git pull 命令將咱們的本地副本與上游項目同步,而且 git push 命令將它同步到咱們所在分支的 GitHub 副本項目中。最後咱們建立咱們的新分支。你能夠根據你的喜愛命名你的分支,可是它最好是有意義的。好比分支名中包含 issue 的編號通常頗有益處。若是該項目像 zend-validator 同樣使用 git-flow,那麼在特定的命名約定中分支名的前綴是「hotfix/」或者「feature/」。
如今你就能夠開始作你的工做了。
確保你只修復你正在處理的事情。不要試圖解決你修復問題過程當中看到的其餘問題,包括格式問題,由於你的 PR 可能會被拒絕。
確保你在邏輯塊中提交。每次提交的備註(commit message)應該清晰說明改動的內容。請閱讀 Tim Pope 的關於 Git 提交消息的注意事項。
要建立 PR,你須要將你的分支推送到 origin 遠端,而後按下 GitHub 上的一些按鈕。
推送一個新分支:
$ git push -u origin hotfix/readme-update
複製代碼
這樣作將會在你的 GitHub 項目上建立新分支。-u 標誌符表示將本地分支與遠端分支相連,以便未來只需輸入 git push origin 就能夠推送到遠端分支。
返回瀏覽器並導航到你 fork 的項目(在個人示例中地址是:https://github.com/akrabat/zend-validator),你會發現你的新分支在頂部列出了一個簡便的「Compare & pull request」按鈕:
繼續而後按下按鈕!
若是你看到這樣的黃色框:
點擊連接能夠將你帶到項目的 CONTRIBUTING 文件而且你須要閱讀它!它包含有關如何使用該項目代碼庫的寶貴信息,並將幫助你如何使你的貢獻被接受。
在此頁面上,確保「base fork」指向正確的倉庫和分支。而後確保你爲 pull request 提供了一個很好,簡潔的標題,並在說明框中解釋你爲何建立了它。若是你有相關的 issue 編號,請添加進去。
若是你向下滾動一點,你就會看到你的更改與原版本的差別。仔細檢查它是不是你想要的結果。
要是你以爲沒什麼問題了,按下「Create pull request」按鈕便可完成。
爲了將你的修改工做集成到項目中,維護人員將檢查你的修改工做,並請求更改或合併它。
Lorna Mitchell 的文章代碼審查:在你運行代碼以前涵蓋了維護人員將要查找的內容,因此閱讀它並確保不給維護人員增添麻煩。
以上就是所有流程了。基礎步驟以下:
若是你想爲一個開源項目作貢獻,最好的選擇就是你正在使用的某個項目。項目的維護者會很感謝你的!
若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。