在日常开发中,我们经常会在 GitHub 上通过 Pull Request(PR)来合并代码。但有时候你可能希望在服务器或本地手动完成合并,比如在生产环境机器上直接操作仓库。
本文以一个真实场景为例,带你完整走一遍:从获取 PR 分支 → 合并 → 处理编辑器 → 推送到远程。
假设你的仓库中有一个 PR 分支:
cursor/development-environment-setup-ce8c
你想把它合并到 main 分支。
一开始你可能会直接执行:
git merge cursor/development-environment-setup-ce8c
结果报错:
not something we can merge
👉 这个分支只存在于远程(origin),本地并没有
git fetch origin
你会看到类似输出:
[new branch] cursor/... -> origin/cursor/...
说明远程分支已经获取成功。
⚠️ 注意:这里一定要带 origin/
git merge origin/cursor/development-environment-setup-ce8c
执行 merge 后,你可能会进入一个界面(nano 编辑器),类似这样:
Merge branch 'cursor/xxx' into main
👉 这是 Git 在让你填写 合并提交信息(commit message)
按顺序操作:
Ctrl + O (保存)
回车 (确认文件名)
Ctrl + X (退出)
完成后,merge 就成功了。
Ctrl + X
按 N(不保存)
merge 只是本地完成,还需要 push:
git push origin main
如果你不想每次都进入 nano:
git merge origin/xxx --no-edit
git checkout -b cursor-dev origin/cursor/development-environment-setup-ce8c
git checkout main
git merge cursor-dev
git branch -a
| 问题 | 原因 |
|---|---|
| not something we can merge | 分支不存在(本地没拉) |
| merge 进入 nano | 正常现象,填写 commit message |
| push 被拒绝 | 远程有保护规则或冲突 |
👉 Git 合并远程 PR 分支的核心是:
先 fetch → 用 origin/分支名 merge → 保存提交 → push
如果你经常在服务器或生产环境直接操作 Git,这套流程基本就是你的“标配动作”。
掌握之后,处理 PR 将会非常顺畅 🚀