如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码
最好的中文TTS項目Bert-vits2更新了中文特化分支,但可能由于時間倉促,代碼中存在不少的bug,作為普通用戶,有的時候也想為自己喜歡的開源項目做一點(diǎn)點(diǎn)貢獻(xiàn),幫助作者修改一些簡單的bug,那么該如何開始?
本次我們以Bert-vits2項目為例子,分享正確提交PR(Pull Requests)的方式。
FORK項目
首先面對一個開源項目,作為普通用戶我們有三個選項:
點(diǎn)擊Watch可以關(guān)注該項目,項目有了更新會提醒關(guān)注者,點(diǎn)擊Star可以給作者鼓勵,類似點(diǎn)贊之類的操作,這里最重要的是Fork,可以把項目拷貝一份到自己的項目庫中:
在項目列表中可以看到明確標(biāo)出了該項目是fork自fishaudio/Bert-VITS2項目:
Forked from fishaudio/Bert-VITS2
至此,我們對自己項目列表中的Bert-VITS2項目就有完整的讀寫和提交權(quán)限了。
修改代碼
Github默認(rèn)顯示的都是主分支代碼,直接修改主分支代碼是非常不理智的行為,一般情況下,我們需要修改的是開發(fā)分支,這里先切換到中文特化分支上:
隨后開始修改代碼,這里的bug是2.3版本去掉了clap特征,而中文特化版本又加了回來,但是代碼沒有正確回退,導(dǎo)致中文特化版本訓(xùn)練的時候會報錯:
修改成功后,提交到自己fork的分支上,注意寫清楚提交理由。
提交PR
當(dāng)我們提交了修改后,在項目上方會自動彈出PR窗口:
此時點(diǎn)擊Compare & pull request,正式提交PR
提交PR的時候,也可以描述一下此次pull request的具體理由:
這里描述的越清楚,越容易被作者采納。
作者合并PR的分支
最后,就是等待作者查看PR請求,如果代碼修改的比較合理,那么作者就會考慮合并到目標(biāo)分支:
如果作者認(rèn)為代碼有可取的地方,那么就會手動合并兩個分支,也就是把fork的代碼,合并到正式項目的指定分支上,如上圖所示。
結(jié)語
GitHub 中的 Pull Request(PR)合并分支的原理是通過創(chuàng)建分支保護(hù)規(guī)則來實現(xiàn)的。分支保護(hù)規(guī)則定義了非項目小組的協(xié)作者在推送更改到分支之前必須滿足的條件,例如需要通過狀態(tài)檢查或者需要有一個線性的提交歷史。這樣可以確保在合并 PR 到受保護(hù)的分支之前,必須滿足一定的條件。
在 GitHub 中,你可以通過創(chuàng)建分支保護(hù)規(guī)則來強(qiáng)制執(zhí)行特定的工作流程或要求。這些規(guī)則可以限制誰可以推送更改到受保護(hù)的分支,以及是否允許強(qiáng)制推送或刪除分支。
當(dāng)你創(chuàng)建一個分支保護(hù)規(guī)則后,協(xié)作者在推送更改或合并 PR 到受保護(hù)的分支時,必須滿足規(guī)則中定義的條件。這有助于確保代碼的質(zhì)量和安全性,特別是在團(tuán)隊協(xié)作的情況下。
總而言之,GitHub 中的分支保護(hù)規(guī)則可以幫助開源團(tuán)隊管理代碼的流程和質(zhì)量,確保在合并非開發(fā)小組的代碼到指定分支之前,必須滿足一定的條件和要求。
總結(jié)
以上是生活随笔為你收集整理的如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32CubeMX教程8 TIM 通
- 下一篇: 如何找到 niche 出海细分市场的