给开源项目提 PR 修 bug 的流程,其实就像“搬进别人家的房子帮忙修水管”,既要修好,还得符合人家的规矩。
我给你分成 发现问题 → 修复代码 → 提交 PR → 跟进 四个阶段,顺便补上注意事项。
1️⃣ 发现问题
- 确认是 bug:先看看是不是自己环境问题、依赖版本问题。
- 搜索 issue:在项目的 Issues 里查一下有没有人提过同样问题。
- 有:可以在已有 issue 下留言,表明你也遇到,并且愿意修。
- 没有:新建一个 issue,简明描述问题、复现步骤、期望结果。
2️⃣ 修复代码
- Fork 项目
- 在 GitHub/GitLab 点击
Fork,把仓库复制到你自己的账号下。
- Clone 到本地
1 2 3 4 5
| bash
复制编辑 git clone https://github.com/你的账号/项目名.git
|
- 创建分支(不要在
main/master 上直接改)
1 2 3 4 5
| bash
复制编辑 git checkout -b fix/xxx-bug
|
- 本地运行并复现 bug(确保能稳定复现,修的时候才能验证成功)。
- 修改代码(遵循项目的代码规范,比如缩进、命名、注释格式)。
- 写单元测试(能防止 bug 再次出现,维护者会很喜欢)。
- 本地跑测试(
mvn test / npm test / pytest 等,看项目用什么工具)。
3️⃣ 提交 PR
- 提交修改
1 2 3 4 5 6 7
| bash
复制编辑 git add . git commit -m "fix: 修复 xxx 导致的 xxx 问题" git push origin fix/xxx-bug
|
- commit 信息一般用英文描述,遵循项目 commit 规范(如 Conventional Commits)。
- 在 GitHub 发起 Pull Request
- 选择目标仓库的主分支作为
base,你的分支作为 compare。
- 在 PR 描述里写清:
- 问题背景
- 修复思路
- 测试结果截图(可选)
- 关联的 issue(比如
Closes #123 会自动关闭 issue)
- 注意 CI 检查:很多项目会自动跑代码检查、测试用例,不通过的话你需要再改。
4️⃣ 跟进与维护
- 维护者可能会 review:他们可能会提修改建议,你要及时回复并修改代码。
- PR 合并后:可以在后续 release 中看到自己的贡献。
- 养成习惯:在你 fork 的项目里定期
git fetch upstream 同步源仓库代码。
💡 小技巧
- 别急着直接修,先看看项目的
CONTRIBUTING.md(贡献指南)和 CODE_OF_CONDUCT.md(行为规范)。
- 如果 bug 比较复杂,可以先发 issue 让维护者确认,避免白做。
- 先修小 bug、文档错别字,熟悉流程后再做大功能,容易建立信任。