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