切换·Esc 返回

合并请求Pull Request

Git 专区
提交一组改动供检查,确认后再并入主版本

合并请求是 GitHub 等平台上的改动评审页面,不是 git 命令。创建时要说明目的、改动、验证方式和已知风险,再查看差异、运行检查并决定是否合并。

main
feat/dark-mode审查通过
$ gh pr create --title "首页深色模式"
PR 不是 git 命令,是 GitHub 网页上的评审卡:分支 push 上去后开单,请人看完改动、审查通过才合进 main

什么时候用

  • 把分支推到远程后,在托管平台创建合并请求
    feat/dark-mode 刚 push 上来
    feat/dark-modeCompare & pull request
  • 标题写清改了什么,说明补上怎么验证,review 的人才接得住
    feat: 首页加上深色模式改了什么:导航栏 + 卡片支持深色
    怎么验证:切换右上角开关
  • 按照项目约定选择合并、压缩合并或变基
    Squash and merge ▾
    Create a merge commitSquash and mergeRebase and merge
    7 条试探 commit 压成 1 条进主干
  • 一个人玩也走 PR:每次大改都留一份带说明的档案,日后好查
    Merged#12 feat: 深色模式
    Merged#11 fix: 手机端导航换行
    一个人玩也留了一份改动档案

什么时候不用

  • 把 Pull Request 当成可以在终端直接运行的 git 命令
    $ git pull-requestgit: 'pull-request' is not a git command.PR 是 GitHub 的网页功能,不是命令
  • 标题写 「update」「改了点东西」,说明空白,三天后自己都看不懂
    Openupdate #14
    说明空白,三天后自己都看不懂改了啥
  • 一个 PR 塞三个功能、37 个文件:太大没人敢看,拆小再提
    Files changed 37+2,140 −867
    一个 PR 塞三个功能,没人敢 review
  • 不看项目约定就合并:wip、试试这类提交让历史难以追溯
    提交说明:
    ● wip
    ● 试试
    ● 再试试
    ● 终于好了
    没按项目约定整理历史,之后很难追溯
组成结构 · Anatomy
● Openfeat: 首页加上深色模式 #12
xiao-hu 想把 feat/dark-mode 合并进 main
ConversationCommits 3Checks ✓Files changed 2
✓ 没有冲突,可以自动合并Squash and merge ▾
1标题与编号Title & #一句话说清改了什么;#12 是这张申请单的编号
2分支对Branches从哪个分支合进哪个分支:feat/dark-mode → main
3对话与改动TabsConversation 讨论、Commits 存档点、Files changed 逐行改动
4合并按钮Merge Button检查、测试和审批通过后再点;合并方式遵循项目约定
常见变体 · Variants
Squash and mergeSquash
3 commits → 压成 1 条进 main
想把一组试探提交整理成一个完整改动时
Create a merge commitMerge Commit
每条 commit 原样保留 + 合并节点
需要保留完整过程记录时用
Rebase and mergeRebase
commits 排队接到 main 尾巴上
历史一条直线,没有合并节点
典型使用场景
GitHub 开 PR 页
Open a pull request
base: main compare: feat/dark-mode ✓ Able to merge
改了什么:导航栏 + 卡片支持深色
怎么验证:切换右上角开关看效果
PR 对话与 review
feat: 首页加上深色模式 #12
● Open xiao-hu 想把 3 个 commits 从 feat/dark-mode 合并进 main
you · 2 小时前 · Approved
说明写得很清楚,深色下导航栏对比度也没问题,可以合。
ConversationCommits 3Checks ✓Files changed 2
Files changed 看改动
Files changed 2 +18 −4
📄 index.html
- <button>点我</button>
+ <button class="btn btn-primary">立即开始</button>
  </section>
按项目约定选择合并方式
This branch has no conflicts with the base branch
3 个 commits 将压成 1 条进入 main:feat: 首页加上深色模式 (#12)
⤴ Merged xiao-hu merged 3 commits into main