登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
群组
›
IT互联网
›
网站
›
程序园子
›
如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目 ...
如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码
[ 复制链接 ]
寅斫
2026-1-12 13:50:03
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
最好的中文TTS项目Bert-vits2更新了中文特化分支,但可能由于时间仓促,代码中存在不少的bug,作为普通用户,有的时候也想为自己喜欢的开源项目做一点点贡献,帮助作者修改一些简单的bug,那么该如何开始?
本次我们以Bert-vits2项目为例子,分享正确提交PR(Pull Requests)的方式。
FORK项目
首先面对一个开源项目,作为普通用户我们有三个选项:
点击Watch可以关注该项目,项目有了更新会提醒关注者,点击Star可以给作者鼓励,类似点赞之类的操作,这里最重要的是Fork,可以把项目拷贝一份到自己的项目库中:
在项目列表中可以看到明确标出了该项目是fork自fishaudio/Bert-VITS2项目:
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 中的分支保护规则可以帮助开源团队管理代码的流程和质量,确保在合并非开发小组的代码到指定分支之前,必须满足一定的条件和要求。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
签约作者
程序园优秀签约作者
发帖
寅斫
2026-1-12 13:50:03
关注
0
粉丝关注
18
主题发布
程序园子
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
韶又彤
9912
6
宋子
9878
7
荪俗
9016
8
闰咄阅
9995
9
刎唇
9995
10
俞瑛瑶
10000
查看更多
今日好文热榜
697
做了一个网页天气可视化
141
vue表格vxe-table实现表头合并,分组表头自
246
回复CSDN博友ECTOS_JiuHuaShan:
691
nanobot 源码解析(五):Skills 系统——
67
骡子快跑MuleRun:自进化AI数字员工开启“
719
从能用到性能: gcsfuse 中`CreateEmptyFile
129
轻松掌控Stateflow开发
334
2.Langchain 1.2.0 学习 --- Models
833
罗兰艺境GEO技术架构:基于DSS原则的认知基
749
Openclaw接入公众号自动发文教程
445
【译】 我们如何同步 .NET 的虚拟单体仓库
382
用 C# 写一个完整的 ReAct 智能体:从命令
238
组织与运营 RF RACER母体大揭秘:成都吉世
833
打破运维数据孤岛:燕千云平台CMDB运维监控
478
测试一下
475
GitHub 热榜 Top 10 (3·16)
1004
B003 找循环节 建图 ABC167D
86
微信电脑版绕过低版本限制工具-过低版本登
140
这是一个测试
350
一天一个Python库:greenlet - 轻量级并发