如何在本地获取GitHub合并请求的已合并版本并基于其变基?
本地获取GitHub复刻仓库合并请求预合并版本的方法
如果你需要在本地拿到合并请求(MR)与目标分支合并后的版本,同时得到可直接用于变基的分支,按以下步骤操作:
基础准备(若已完成可跳过)
- 添加原仓库为本地远程(假设原仓库远程名为
upstream):git remote add upstream <原仓库Git地址> - 拉取原仓库所有分支的最新代码:
git fetch upstream
方法一:手动合并(直观可控)
- 切换到原仓库的目标分支(比如
main分支):git checkout upstream/main - 创建新的本地分支用于测试合并后的版本:
git checkout -b test-mr-<MR编号> - 合并该MR所在复刻分支的代码:
git pull <你的复刻仓库远程名> <MR的源分支名>
(例如你的复刻远程名为origin,MR源分支是feature-fix,命令即为git pull origin feature-fix)
完成后,test-mr-<MR编号>分支就是合并后的版本,可直接用于后续变基或调试。
方法二:利用GitHub的MR合并引用(最快捷)
GitHub为每个MR提供了预合并的引用,直接拉取即可获得与线上流水线一致的版本:
- 执行命令创建并切换到合并后的本地分支:
git fetch upstream pull/<MR编号>/merge:mr-<MR编号>-merged && git checkout mr-<MR编号>-merged
其中<MR编号>是你在GitHub上看到的MR数字编号,比如MR为第123号,命令即为git fetch upstream pull/123/merge:mr-123-merged && git checkout mr-123-merged
该分支完全匹配线上测试使用的预合并版本,且可直接用于变基操作。
内容的提问来源于stack exchange,提问作者Sebastian Barth
相关产品推荐
相关产品推荐

