如果您是一名開發(fā)人員,您可能會遇到“開源”這個詞。如果您曾經想知道它的全部內容以及如何做出貢獻,那么您來對地方了。在 2020 年 Hacktoberfest 期間,我拋開了我對如何以及貢獻什么的所有恐懼,并為開源世界做出了我的第一個貢獻。由于這是我第一次,我從一些初學者友好的項目開始,然后慢慢變得更高級?,F(xiàn)在,如果您是一名新開發(fā)人員,您可能想知道開源到底是什么?如何開始?你應該期待什么?好吧,在本文中,我們將涵蓋所有這些以及更多內容。
什么是開源?
開源是指在許可許可下向公眾提供以查看、使用、修改和分發(fā)的源代碼。
開源代碼通常符合公司或個人的最大利益,無論他們是個人、公司、小型企業(yè)、非營利組織還是政府機構。
為開源項目做出貢獻是一種學習、教授、分享和積累經驗的有益方式。您應該為開源項目做出貢獻的原因有很多,例如:
- 改進您每天依賴的軟件
- 如果您需要,請找一位導師
- 學習新技能
- 分享你的技能
- 更深入地了解您正在使用的軟件
- 建立您的聲譽并幫助您發(fā)展事業(yè)
- 此外,它很有趣,讓您滿意
如何為開源做貢獻
為開源項目做出貢獻并不一定意味著您必須為代碼庫做出貢獻。您可以通過多種不同的方式為開源做出貢獻,例如:
- 您可以在項目文檔中添加描述以詳細說明某一點
- 您可以針對特定項目提供指導
- 您可以添加示例來展示代碼的工作原理
- 您可以為項目編寫教程
- 您可以為項目添加翻譯
- 您可以回答有關項目的問題(例如在 Stack Overflow 或 Reddit 上)
- 您可以提議指導另一位貢獻者
- 您可以修復拼寫錯誤并正確排列項目的工作文件夾
所有這些以及更多方式都可以為開源項目做出貢獻。
在為開源項目做出貢獻之前需要了解什么
每個開源社區(qū)都是不同的。每個社區(qū)都有不同的人,他們提供不同的角色和獎勵。他們每個人都有自己的規(guī)則和貢獻的期望。
一個典型的開源項目會有這些人:
- 作者- 這是創(chuàng)建項目的人。他們有權為其他成員分配新角色以幫助維護項目。
- 所有者-所有者擁有項目的管理所有權(并且可以與作者為同一人)
- 維護者- 這些人負責推動項目的愿景和目標。他們通常是對項目方向負責并致力于改進項目的人
- 貢獻者- 貢獻者以一種或另一種方式添加到項目中。他們遵循相同的代碼審查流程,遵守相同的代碼風格要求,等等。
- 社區(qū)成員/用戶- 這些有價值的社區(qū)成員可以提供有關功能、錯誤報告等的反饋。
所有開源項目都應該具備的重要元素
每個開源項目都應該有以下指南和信息:
- 許可證- 如果一個項目沒有開源許可證,那么它就不是開源的。該許可證有助于保護貢獻者和用戶。沒有這種保護,企業(yè)和精明的開發(fā)人員通常不會接觸項目。如果您想知道如何獲得,請單擊此處閱讀更多信息。
- README - 這是一本說明如何開始項目的手冊。一個好的 README 應該包含潛在貢獻者想要了解的有關項目的所有不同內容。您可以在此處閱讀有關如何編寫好的 README 文件的更多信息。
- 如何貢獻 - 這些指南幫助人們貢獻并展示需要什么類型的貢獻者(此文件不是必須的)
- CODE_OF_CONDUCT - 行為準則是??一份文件,用于確定您對貢獻者和參與者的行為方式的期望。采用和執(zhí)行行為準則有助于為您的社區(qū)創(chuàng)造一個積極的環(huán)境。
要創(chuàng)建開源項目,您需要創(chuàng)建一個環(huán)境,讓人們可以分享他們的挑戰(zhàn)并進行深入討論。這可以通過以下工具實現(xiàn):
- 問題跟蹤器 - 這是人們討論與項目相關的問題的地方
- 拉取請求 - 這是人們審查正在進行的更改的地方
- 同步聊天頻道 - 這是專門供人們分享他們的想法并進行對話(如 Slack、Discord 等)
如何找到要參與的項目
既然您已經了解了開源項目的工作原理,那么是時候尋找可以貢獻的項目了。
貢獻在各個層面都有效——不要過度思考你將如何去做。而是想想您已經使用的一些項目,以及如何對它們進行更改或改進。
研究表明,大約 30% 的臨時貢獻是文檔、錯別字修復甚至翻譯。
如果你是第一次貢獻者——每個人在某個時候都是這樣——這里有一些鏈接可以讓你開始進入開源世界:
在開源軟件的世界中,問題會很快得到報告和修復。所以,如果你想解決一個問題,一定要盡快嘗試解決它。
如何選擇開源項目
找到您想要幫助的項目后,請確保它符合以下標準,以確保它是一個不錯的候選人:
首先,您必須檢查:
- 它有許可證文件嗎?
- 最近一次提交是什么時候完成的?是最近的嗎?(也就是說,項目是否積極維護/工作?)
- 它有多少貢獻?
- 人們多久提交一次?
如果您看到很多最近的活動,那很好——這意味著它有一個活躍的社區(qū)來維護它。
現(xiàn)在您應該繼續(xù)檢查以下內容:
- 有多少未解決的問題?
- 維護者需要多長時間做出回應?他們及時嗎?
- 是否對某個問題進行了積極的討論?
- 問題是否定期關閉?
- 有多少開放的拉取請求?
- 最近多久合并最新的拉取請求?最近?
- 拉取請求是否首先被審查?(他們應該是。)
- 維護者是否感謝人們的貢獻?
如果上述所有條件都滿足您的需求,那么就去做吧,并開始為這些項目做出貢獻。
開源之前需要考慮什么
好的,所以您迫不及待地開始為您的第一個操作系統(tǒng)項目做出貢獻。讓我們通過一些提示來幫助您選擇要處理的內容。
項目使用什么編程語言?
任何應用程序背后最基本的技術都是它使用的編程語言。GitHub 上一些最流行的語言是 JavaScript、Python、Java、Ruby 和 PHP——但還有更多。
有許多項目可能適合您的技能和興趣。所以只要找到一個你覺得工作起來很舒服的。
項目類型
在您選擇了您想要使用的語言后,您需要選擇您喜歡的項目類型。只需環(huán)顧四周并選擇一個您感興趣的主題的項目。
一旦你找到了一個項目,你就會想要真正做出貢獻。你將通過提交拉取請求來做到這一點。讓我們現(xiàn)在談談。
如何提交拉取請求
如果你處于這個階段,你已經找到了一個項目,你可以開始了。那么讓我們來談談如何實際提交拉取請求。
首先,什么是拉取請求?這是您在 GitHub 中請求更新的方式,也是您在將代碼合并到另一個分支之前讓某人檢查您的代碼的方式
提交 PR 的步驟
- Fork the repository在右上角,您將看到術語“fork”。您需要做的就是單擊它,您將在您的帳戶中創(chuàng)建同一個項目的副本。URL 將更改為:
https://github.com/<YourUserName>/projectname
- 將它克隆到您的本地機器在您的計算機上,如果您安裝了 Git,請打開 CMD 并運行此命令。如果您還沒有 Git,請參閱此處,它將向您展示如何開始使用 Git。然后繼續(xù)執(zhí)行以下步驟:
git clone https://github.com/<YourUserName>/<projectname>
這將在您的本地計算機上創(chuàng)建項目的副本?,F(xiàn)在您已經克隆了 repo,我們需要做兩件事:
首先,您需要創(chuàng)建一個分支。更改到您計算機上的存儲庫目錄(如果您還沒有):您可以通過以下方式執(zhí)行此操作:
cd project folder name
現(xiàn)在使用 git checkout 命令創(chuàng)建一個分支:
git checkout -b your-new-branch-name
例如:
git checkout -b lary-mak-blog
接下來,您需要進行必要的更改并提交這些更改。在進行更改并添加新文件之后,是時候將這些更改添加到您創(chuàng)建的分支中了。
要查看您所做的所有更改,請運行以下git status命令:
git status
這會顯示您最近所做的所有更改。現(xiàn)在要添加它們,請使用以下git add *命令:
git add *
現(xiàn)在使用以下git commit命令提交這些更改:
git commit -m "<initial commit> "
- 將更改推送到 GitHub您可以使用 `git push 命令輕松完成此操作:
git push origin <add-your-branch-name>
替換<add-your-branch-name>為您之前創(chuàng)建的分支的名稱。
- 提交您的更改以供審核如果您轉到 GitHub 上的存儲庫并刷新頁面,您將看到一個比較和拉取請求按鈕。單擊該按鈕。
很快,維護者會將您的所有更改合并到該項目的主分支中(除非他們需要您的更改)。合并更改后,您將收到一封通知電子郵件。
對另一個倉庫的拉取請求類似于“推送”。但是,它允許做一些事情:
首先,它允許您為另一個存儲庫做出貢獻,而無需管理權限來對存儲庫進行更改。
其次,它允許其他人查看您的更改并提出更正、添加、編輯等建議。
第三,它讓倉庫管理員可以控制添加到他們項目倉庫中的內容。
在你的第一個拉取請求之后下一步是什么?
恭喜!您剛剛完成了作為貢獻者經常遇到的標準 fork -> 克隆 -> 編輯 -> 拉取請求工作流程!
現(xiàn)在找到一個項目并做出更多貢獻。一定要留意Digital Ocean舉辦的開源月,這樣你就可以參加Hacktoberfest 并有機會贏取一些很酷的東西。
為開源做貢獻的好處
既然您已經了解了如何為操作系統(tǒng)做出貢獻,那么貢獻的一些好處是什么?
- 為開源項目做出貢獻的人可以比僅僅使用該技術更深入地了解該技術
- 您可以根據(jù)在現(xiàn)實世界中有效和無效的經驗,專注于添加和利用有益于企業(yè)的功能。
- 它可以建立你的士氣和聲譽。為開源項目做出貢獻的人可以獲得其他社區(qū)成員的見解和經驗。
- 為開源做出貢獻可以清晰地了解項目的未來
- 如果您在 GitHub 上,那么您在該平臺上所做的大部分事情都是公開的。通過在貢獻和與其他貢獻者溝通時始終盡最大努力來利用這一點。你永遠不知道誰在找,你的下一個雇主可能在那里
為什么你應該為開源做貢獻
作為開發(fā)人員,這就是為什么我認為您應該為開源做出貢獻的原因:
- 它可以幫助您編寫更清晰的代碼
- 它可以幫助社區(qū)和您的同齡人了解您。這種認可可以為您的職業(yè)生涯帶來很多機會。
- 它可以幫助您了解有關項目的更多信息
- 它提高了您的編碼技能
有關更多信息,請閱讀w3cschool后續(xù)文章。