建立乾淨,管理良好的GitHub貢獻的簡短指南。前端
在本文中,我將給出10個簡單的步驟,以確保GitHub的貢獻快速而乾淨。git
fork主倉庫會在你的賬戶中建立一個副本。你能夠進行更改並將任何代碼推送到此fork,而沒必要擔憂會弄亂原始代碼庫。單擊頁面頂部的fork按鈕以建立一個新的fork。github
Fork後的版本庫如今能夠在你的帳戶中的「Repositories」部分找到。shell
Fork後的倉庫克隆到電腦上,這樣咱們就有了代碼的本地副本。單擊Fork後的倉庫的SSH或HTTPS URL旁邊的剪貼板圖標來複制它。ide
如今在你的電腦上打開一個終端,而後運行如下命令來克隆fork的倉庫:fetch
git clone git@github.com:theawesomenayak/guava.git
在對代碼進行任何修改時,最好的作法是爲咱們須要進行的修改建立一個新的特性分支。這樣能夠確保咱們保持master分支的整潔,而且可以在必要時簡單地還原咱們的代碼或進行更新。ui
切換到克隆分支倉庫後建立的目錄:google
cd guava
建立一個新特性分支,其名稱能夠標識你計劃進行的更改。例如:spa
git checkout -b fix-npe-issue
若是你在更改中建立了任何新文件,則須要將其添加到剛建立的分支中。翻譯
git add <filename>
對於所作的全部更改,你必須將它們提交到分支。確保添加有效的提交消息(根據項目的約定):
git commit -m "Fixed the NPE issue due to a null key used in cache"
如今是時候將你的提交推送到fork的倉庫中了:
git push origin fix-npe-issue
將代碼推送到fork後的倉庫後,就能夠針對主倉庫提交PR了。單擊「Pull Request」按鈕以啓動新的PR。
這將帶你進入一個畫面,在這個畫面上,你的fork版本庫中的變化將與主版本庫中的代碼進行比較。你能夠在提交更改以前查看更改並提供有效的更改描述。
代碼維護人員一般會針對你所作的更改返回某些評論,這能夠是功能上的改變,也能夠是修飾性的改變,好比格式等等。一旦你作出了這些更改,只需將它們推到你的分支,PR就會自動更新。
一旦你的修改沒有什麼不妥的話,維護人員將把它們合併到主倉庫中。恭喜你!!你如今正式成爲一名開源貢獻者了。
除了你以外,許多其餘開發人員還一直將其代碼合併到主存儲庫中,咱們須要與它的分支庫連續進行同步,以獲取最新的代碼。
你克隆的存儲庫已連接到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)
設置上游後,你能夠提取其餘開發人員在主倉庫中所作的更改,這將更新本地計算機上的克隆倉庫:
git pull upstream master
一旦你在你的本地機器上有了全部的更新,你將須要把它們推送到你的fork後的倉庫中,使其與主倉庫同步。
git push origin master
特性合併到主倉庫後,便再也不須要它,能夠將其刪除:
git branch -d fix-npe-issue
你還能夠從fork的倉庫中刪除遠程分支:
git push origin --delete fix-npe-issue
爲GitHub項目作貢獻可能會很棘手,這取決於有多少開發人員同時在作。但願這篇文章能爲你掃清GitHub貢獻的流程,讓你的開發週期變得更簡單一些。
感謝你花時間閱讀個人文章。
原文:https://medium.com/better-programming
翻譯:公衆號《前端全棧開發者》