如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码

最好的中文TTS项目Bert-vits2更新了中文特化分支,但可能由于时间仓促,代码中存在不少的bug,作为普通用户,有的时候也想为自己喜欢的开源项目做一点点贡献,帮助作者修改一些简单的bug,那么该如何开始?

本次我们以Bert-vits2项目为例子,分享正确提交PR(Pull Requests)的方式。

FORK项目

首先面对一个开源项目,作为普通用户我们有三个选项:

点击Watch可以关注该项目,项目有了更新会提醒关注者,点击Star可以给作者鼓励,类似点赞之类的操作,这里最重要的是Fork,可以把项目拷贝一份到自己的项目库中:

在项目列表中可以看到明确标出了该项目是fork自fishaudio/Bert-VITS2项目:

csharp 复制代码
Forked from fishaudio/Bert-VITS2

至此,我们对自己项目列表中的Bert-VITS2项目就有完整的读写和提交权限了。

修改代码

Github默认显示的都是主分支代码,直接修改主分支代码是非常不理智的行为,一般情况下,我们需要修改的是开发分支,这里先切换到中文特化分支上:

随后开始修改代码,这里的bug是2.3版本去掉了clap特征,而中文特化版本又加了回来,但是代码没有正确回退,导致中文特化版本训练的时候会报错:

修改成功后,提交到自己fork的分支上,注意写清楚提交理由。

提交PR

当我们提交了修改后,在项目上方会自动弹出PR窗口:

此时点击Compare & pull request,正式提交PR

提交PR的时候,也可以描述一下此次pull request的具体理由:

这里描述的越清楚,越容易被作者采纳。

作者合并PR的分支

最后,就是等待作者查看PR请求,如果代码修改的比较合理,那么作者就会考虑合并到目标分支:

如果作者认为代码有可取的地方,那么就会手动合并两个分支,也就是把fork的代码,合并到正式项目的指定分支上,如上图所示。

结语

GitHub 中的 Pull Request(PR)合并分支的原理是通过创建分支保护规则来实现的。分支保护规则定义了非项目小组的协作者在推送更改到分支之前必须满足的条件,例如需要通过状态检查或者需要有一个线性的提交历史。这样可以确保在合并 PR 到受保护的分支之前,必须满足一定的条件。

在 GitHub 中,你可以通过创建分支保护规则来强制执行特定的工作流程或要求。这些规则可以限制谁可以推送更改到受保护的分支,以及是否允许强制推送或删除分支。

当你创建一个分支保护规则后,协作者在推送更改或合并 PR 到受保护的分支时,必须满足规则中定义的条件。这有助于确保代码的质量和安全性,特别是在团队协作的情况下。

总而言之,GitHub 中的分支保护规则可以帮助开源团队管理代码的流程和质量,确保在合并非开发小组的代码到指定分支之前,必须满足一定的条件和要求。

相关推荐
zjjsctcdl13 分钟前
开源模型应用落地-FastAPI-助力模型交互-进阶篇-中间件(四)
开源·交互·fastapi
云中飞鸿14 分钟前
git、svn;TortoiseGit、TortoiseSVN;gitlab、github、bitbucket、bamboo有什么关系?
git·svn·gitlab
2301_7644413315 分钟前
MiroFish:多智能体技术的开源AI推演预测引擎
人工智能·深度学习·语言模型·自然语言处理·数据挖掘·数据分析·开源
狐571 小时前
2026-03-15-因服务器网络访问问题从 GitHub 平滑迁移至 Gitee 等国内平台的方法
服务器·gitee·github
草梅友仁8 小时前
墨梅博客 1.9.0 发布与 LeanCloud 停服应对 | 2026 年第 11 周草梅周报
开源·github·ai编程
朱包林9 小时前
Python基础
linux·开发语言·ide·python·visualstudio·github·visual studio
qqxhb11 小时前
04|最小工程素养:文件、命令行、依赖、环境变量、Git
git·环境·依赖·工程·项目结构
code 小楊12 小时前
英伟达免费开源大参数模型 Nemotron 3 Super 全解析
人工智能·开源
sunny_13 小时前
📖 2026年 大厂前端面试手写题库已开源(2.3k star)
前端·面试·github
aiAIman15 小时前
OpenClaw Web Search 完全指南(2026年3月最新)
人工智能·开源·aigc