為開源項目做貢獻的10個步驟
創(chuàng)建干凈,管理良好的GitHub貢獻的簡短指南。
在本文中,我將給出10個簡單的步驟,以確保GitHub的貢獻快速而干凈。
目錄:
- 貢獻的生命周期(步驟)
- 1.fork主倉庫
- 2.Fork后的倉庫克隆到你的電腦
- 3.創(chuàng)建功能/特性分支
- 4.將更改提交到特性分支
- 5.將特性分支推到你fork的倉庫
- 6.針對主倉庫提出Pull Request(PR)
- 7.處理評論并合并PR
- 8.將主存儲庫作為上游添加到克隆倉庫中
- 9.從上游更新你的master分支
- 10.將主分支push到你的fork倉庫
- (可選)刪除特性分支
- 最后
貢獻的生命周期(步驟)
1.fork主倉庫
fork主倉庫會在你的帳戶中創(chuàng)建一個副本。你可以進行更改并將任何代碼推送到此fork,而不必擔心會弄亂原始代碼庫。單擊頁面頂部的fork按鈕以創(chuàng)建一個新的fork。
Fork后的版本庫現(xiàn)在可以在你的賬戶中的“Repositories”部分找到。
2.Fork后的倉庫克隆到你的電腦
Fork后的倉庫克隆到電腦上,這樣我們就有了代碼的本地副本。單擊Fork后的倉庫的SSH或HTTPS URL旁邊的剪貼板圖標來復制它。
現(xiàn)在在你的電腦上打開一個終端,然后運行以下命令來克隆fork的倉庫:
- git clone git@github.com:theawesomenayak/guava.git
3.創(chuàng)建功能/特性分支
在對代碼進行任何修改時,最好的做法是為我們需要進行的修改創(chuàng)建一個新的特性分支。這樣可以確保我們保持master分支的整潔,并且能夠在必要時簡單地還原我們的代碼或進行更新。
切換到克隆分支倉庫后創(chuàng)建的目錄:
- cd guava
創(chuàng)建一個新特性分支,其名稱可以標識你計劃進行的更改。例如:
- git checkout -b fix-npe-issue
4.將更改提交到特性分支
如果你在更改中創(chuàng)建了任何新文件,則需要將其添加到剛創(chuàng)建的分支中。
- git add <filename>
對于所做的所有更改,你必須將它們提交到分支。確保添加有效的提交消息(根據(jù)項目的約定):
- git commit -m "Fixed the NPE issue due to a null key used in cache"
5.將特性分支推到你fork的倉庫
現(xiàn)在是時候?qū)⒛愕奶峤煌扑偷絝ork的倉庫中了:
- git push origin fix-npe-issue
6.針對主倉庫提出Pull Request(PR)
將代碼推送到fork后的倉庫后,就可以針對主倉庫提交PR了。單擊“Pull Request”按鈕以啟動新的PR。
這將帶你進入一個畫面,在這個畫面上,你的fork版本庫中的變化將與主版本庫中的代碼進行比較。你可以在提交更改之前查看更改并提供有效的更改描述。
7.處理評論并合并PR
代碼維護人員通常會針對你所做的更改返回某些評論,這可以是功能上的改變,也可以是修飾性的改變,比如格式等等。一旦你做出了這些更改,只需將它們推到你的分支,PR就會自動更新。
一旦你的修改沒有什么不妥的話,維護人員將把它們合并到主倉庫中。恭喜你!!你現(xiàn)在正式成為一名開源貢獻者了。
8.將主存儲庫作為上游添加到克隆倉庫中
除了你之外,許多其他開發(fā)人員還一直將其代碼合并到主存儲庫中,我們需要與它的分支庫連續(xù)進行同步,以獲取最新的代碼。
你克隆的存儲庫已鏈接到fork后倉庫了,為了使fork的倉庫與主倉庫保持同步,你需要通過在克隆的倉庫中添加主倉庫作為上游(upstream)來連接它們。
- git remote add upstream git@github.com:google/guava.git
使用以下命令驗證上游設(shè)置是否正確:
- git remote -v
它應該顯示以下值,以確認源和上游指向正確的倉庫:
- origin git@github.com:theawesomenayak/guava.git (fetch)
- origin git@github.com:theawesomenayak/guava.git (push)
- upstream git@github.com:google/guava.git (fetch)
- upstream git@github.com:google/guava.git (push)
9.從上游更新你的master分支
設(shè)置上游后,你可以提取其他開發(fā)人員在主倉庫中所做的更改,這將更新本地計算機上的克隆倉庫:
- git pull upstream master
10.將主分支push到你的fork倉庫
一旦你在你的本地機器上有了所有的更新,你將需要把它們推送到你的fork后的倉庫中,使其與主倉庫同步。
- git push origin master
(可選)刪除特性分支
特性合并到主倉庫后,便不再需要它,可以將其刪除:
- git branch -d fix-npe-issue
你還可以從fork的倉庫中刪除遠程分支:
- git push origin --delete fix-npe-issue
最后為GitHub項目做貢獻可能會很棘手,這取決于有多少開發(fā)人員同時在做。希望這篇文章能為你掃清GitHub貢獻的流程,讓你的開發(fā)周期變得更簡單一些。
本文轉(zhuǎn)載自微信公眾號「前端全棧開發(fā)者」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系前端全棧開發(fā)者公眾號。