[譯] 爲 GitHub 項目作出貢獻的初學者指南

這是一個針對於如何在 GitHub 上貢獻開源代碼的新手指南。該指南主要基於我看到 Zend FrameworkSlim Frameworkjoind.in 它們如何操做。可是,這僅僅是一個通用的指南,所以請先檢查項目的 README 文件以瞭解具體狀況。html

第 1 步:在你的計算機上設置工做副本

首先你須要這個項目的本地克隆,因此先在 GitHub 中按下「fork」按鈕。按下按鈕後會自動在你的 GitHub 帳戶中建立一個該項目倉庫的副本,並且你會看到在已經被 fork 成功的項目名稱下面有一行註釋:前端

Forked

如今你須要一個本地副本,所以在右側列中找到「SSH clone URL」,並使用它在本地終端進行克隆:android

$ git clone git@github.com:akrabat/zend-validator.git
複製代碼

以下圖所示:ios

Clone

轉到新項目所在目錄中去:git

$ cd zend-validator
複製代碼

最後,在這個階段,你須要設置一個指向原始項目的新遠端地址,以便你能夠抓取原始項目的任何更改並將它們更新至本地副本。首先定位到原始項目的連接 —— 它在 GitHub 頁面的頂部,經過「fork from」標記。該連接會將你帶回原始項目的 GitHub 主頁,所以你能夠在該頁面找到「SSH clone URL」,並使用它去建立新的遠端,咱們稱之爲 upstreamgithub

$ git remote add upstream git@github.com:zendframework/zend-validator.git
複製代碼

你如今在磁盤上擁兩個此項目的遠端:後端

  1. origin:它指向你 fork 的 GitHub 項目。你能夠向該遠端提交和拉取更新。
  2. upstream:你只能從這個上游的遠端拉取代碼更新,而沒法對其進行修改。

第 2 步:開始作出貢獻吧

這是你爲項目做出貢獻時最有趣的一步。一般狀況下,最好從修復一個使人討厭的 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 提交消息的注意事項

第 3 步:建立 PR

要建立 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」按鈕:

Pr button

繼續而後按下按鈕!

若是你看到這樣的黃色框:

Contributing

點擊連接能夠將你帶到項目的 CONTRIBUTING 文件而且你須要閱讀它!它包含有關如何使用該項目代碼庫的寶貴信息,並將幫助你如何使你的貢獻被接受。

在此頁面上,確保「base fork」指向正確的倉庫和分支。而後確保你爲 pull request 提供了一個很好,簡潔的標題,並在說明框中解釋你爲何建立了它。若是你有相關的 issue 編號,請添加進去。

Create pr

若是你向下滾動一點,你就會看到你的更改與原版本的差別。仔細檢查它是不是你想要的結果。

要是你以爲沒什麼問題了,按下「Create pull request」按鈕便可完成。

第 4 步:由維護人員審查

爲了將你的修改工做集成到項目中,維護人員將檢查你的修改工做,並請求更改或合併它。

Lorna Mitchell 的文章代碼審查:在你運行代碼以前涵蓋了維護人員將要查找的內容,因此閱讀它並確保不給維護人員增添麻煩。

總結

以上就是所有流程了。基礎步驟以下:

  1. Fork 原項目並克隆到本地。
  2. 建立一個 upstream 遠端並在你建立分支以前同步更新到你的本地副本。
  3. 爲每項單獨的工做建立分支。
  4. 作好你的工做,編寫良好的提交信息,並閱讀CONTRIBUTING文件(若是有的話)。
  5. 推送到 origin 倉庫。
  6. 在 GitHub 中建立一個新的 PR。
  7. 迴應每一條代碼審查的反饋信息。

若是你想爲一個開源項目作貢獻,最好的選擇就是你正在使用的某個項目。項目的維護者會很感謝你的!

若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索