pull request是啥意思
Pull Request(PR,拉取请求) 是 Git 协作中的核心概念,用于向项目维护者提议将你的代码变更合并到主分支。以下是通俗易懂的解释:
- 本质是什么?
• 功能:将你的代码变更「申请」合并到目标分支(如 main/master)
• 作用:代码审查(Code Review)的入口,团队协作的标准化流程
- 为什么需要 PR?
场景 无 PR 的风险 使用 PR 的好处
多人协作 代码冲突或错误直接污染主分支 隔离变更,提前发现冲突
开源贡献 无法控制陌生人提交的代码质量 维护者审核通过后才合并
持续集成(CI) 错误代码导致构建失败 自动触发测试,验证通过才能合并
- PR 的生命周期
graph LR
A[你 Fork 或创建分支] --> B[开发并提交代码]
B --> C[推送分支到远程仓库]
C --> D[创建 Pull Request]
D --> E{团队审查}
E -->|通过| F[合并到主分支]
E -->|拒绝| G[修改后重新提交]
- 创建 PR 的完整流程
(1) 本地准备
git checkout -b feature/login # 创建新分支
git add . # 添加修改
git commit -m “添加登录功能”
git push origin feature/login # 推送到远程
(2) 在 GitHub/GitLab 创建 PR
-
进入仓库页面 → Pull Requests 标签页
-
点击 New Pull Request
-
选择:
• base: main(目标分支)• compare: feature/login(你的分支)
-
填写标题和描述(模板参考下文)
-
点击 Create Pull Request
-
优秀的 PR 描述模板
变更内容
- 添加用户登录接口
- 优化密码加密逻辑
相关 Issue
Close #123
测试验证
- 已通过 Postman 测试所有接口
- 单元测试覆盖率 85%
截图/录屏
- 关键注意事项
• 粒度控制:一个 PR 只解决一个问题(避免混杂多个功能)
• 及时同步:定期 git rebase main 避免冲突
• 标签使用:添加 bugfix/feature 等标签分类
• CI 检查:确保所有自动化测试通过(如 GitHub Actions)
- 合并策略对比
合并方式 命令 适用场景 历史记录
Merge git merge 保留完整开发历史 有合并提交节点
Rebase git rebase 追求线性历史 无额外节点
Squash GitHub squash 选项 合并多个琐碎提交为一个 只保留一个提交
-
开源项目 PR 特殊要求
-
确保签署 CLA(贡献者协议)
-
遵循项目的 Commit Message 规范
-
通过 DCO(开发者证书认证)
-
常见问题
Q:PR 和 Merge Request 的区别?
• GitHub/Bitbucket 叫 Pull Request (PR)
• GitLab 叫 Merge Request (MR)
• 功能完全相同,只是平台术语差异
Q:如何修改已提交的 PR?
git commit --amend # 修改最后一次提交
git push -f origin 分支名 # 强制推送更新
Q:PR 被拒绝怎么办?
- 本地修改代码
- 添加新的提交或压缩修改
- 重新推送分支(PR 会自动更新)
通过 PR,开发者能高效协作,同时保障代码质量。记住:小步快跑,频繁提交是高效 PR 的黄金法则! 🚀