GitHub PR 拉取、编辑与推送工作流
537 字
3 分钟
GitHub PR 拉取、编辑与推送工作流
作为仓库维护者,有时需要在合并 PR 之前对提交者的代码进行修改。本文记录如何拉取别人的 PR 到本地、编辑后推回原 PR 的完整流程。
前提条件
- 你有仓库的维护者权限
- PR 开启了 “Allow edits from maintainers”(允许维护者编辑)
1. 拉取 PR 到本地
GitHub 为每个 PR 提供了一个特殊的 ref,可以直接 fetch:
# 将 PR #300 拉取到本地分支 pr-300git fetch origin pull/300/head:pr-300
# 切换到该分支git checkout pr-3002. 查看 PR 改动
# 查看 PR 相对于 master 的文件变更git diff master..pr-300 --stat
# 查看具体改动git diff master..pr-300
# 查看提交记录git log pr-300 --oneline -53. 修改代码
正常编辑文件,然后提交:
# 编辑文件...git add <修改的文件>git commit -m "feat: 你的修改说明"4. 推送回 PR
这是关键步骤。refs/pull/xxx/head 是 GitHub 的隐藏 ref,不能直接推送。
需要添加 PR 贡献者的 fork 作为 remote,然后推送到源分支:
# 添加 PR 贡献者的 fork 作为 remotegit remote add <贡献者名> https://github.com/<贡献者名>/<仓库名>.git
# 推送到 PR 的源分支(根据 PR 的目标分支而定)git push <贡献者名> pr-300:master如何查看 PR 的源分支?
运行以下命令查看 PR 的来源:
curl -s "https://api.github.com/repos/<owner>/<repo>/pulls/<PR号>" | grep -E '"ref"|"label"' | head -6输出示例:
"label": "贡献者名:master", # PR 贡献者:源分支"ref": "master","label": "CuteLeaf:master", # 目标仓库:目标分支"ref": "master",:::
完整流程示例
以 PR #300 为例(贡献者名:master → CuteLeaf:master):
# 1. 拉取 PRgit fetch origin pull/300/head:pr-300git checkout pr-300
# 2. 查看改动git diff master..pr-300
# 3. 修改并提交git add src/config/siteConfig.tsgit commit -m "feat: 修改配置文件"
# 4. 添加 fork remote(如果还没添加过)git remote add 贡献者名 https://github.com/贡献者名/Firefly.git
# 5. 推送到 PR 源分支git push 贡献者名 pr-300:master注意事项
- 必须 PR 开启了 “Allow edits from maintainers”,否则无法推送
refs/pull/xxx/head是 GitHub 管理的隐藏 ref,不能直接 push- 推送到贡献者的 fork 时,分支名要对应 PR 的源分支(不一定是
master)
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
GitHub PR 拉取、编辑与推送工作流
https://blog.cuteleaf.cn/posts/dev-notes/github-pr-edit-workflow/ 相关文章 智能推荐
1
为Git设置代理,解决无法拉取和推送GitHub
实用技巧 解决使用Git时因网络问题导致无法拉取和推送GitHub,为 Git 配置 HTTP/HTTPS/SOCKS 代理来提升连接速度,包含 CMD 和 PowerShell 示例。
2
GitHub 公开仓库与私有仓库的同步管理实践
实用技巧 私有仓库能选择性同步公开仓库的更新,既保留网站配置,又能及时获取基础框架的 bug 修复和功能升级。
3
提交Commit或PR的同时关闭Issue
实用技巧 在 GitHub 上通过 Commit 或 PR 描述自动关闭 Issue 的写法。
4
Git 保持主分支(master)和开发分支(develop)同步
实用技巧 在Git Flow 工作流中,确保 master 和 develop 分支保持同步,用于并行开发新特性和修复Bug,避免分支分叉导致的问题,分享常用的同步方法和遇到的问题。
5
在 Astro 博客实现 Live2D 看板娘
开发笔记 介绍如何在 Astro 博客中集成 Live2D 看板娘,兼容 Cubism 2(.moc)和 Cubism 4/6(.moc3)格式,使用 l2d-widget 库实现模型展示、菜单交互、提示气泡等功能。
随机文章 随机推荐