本地合并分支后如何处理GitHub上无法自动合并的pull request?
已本地合并解决冲突后的后续操作
- 首先确认本地目标分支(通常是PR要合入的
main/master分支)已完整包含特性分支的所有修改,冲突全部解决:执行git log核对提交记录,运行相关测试验证功能无异常 - 将本地更新后的目标分支推送到GitHub远程仓库:
git push origin 目标分支名 - 推送完成后返回原PR页面,GitHub会自动检测到目标分支已包含该PR的全部提交,自动将PR状态标记为已合并。若未自动识别,可手动关闭PR,在关闭备注中说明已通过本地合并解决冲突后推送到目标分支,附上对应提交哈希即可
标准正确操作流程(保障GitHub自动识别操作)
- 当PR提示无法自动合并时,优先不要直接在本地合并两个分支,首先切换到PR对应的本地特性分支:
git checkout 特性分支名 - 拉取远程目标分支的最新代码:
git pull origin 目标分支名 - 按终端提示解决所有文件的合并冲突后,执行
git add 冲突文件名标记冲突已解决,再执行git commit完成合并提交(可按团队规范调整提交信息) - 将解决完冲突的特性分支推送到对应的远程分支:
git push origin 特性分支名 - 返回GitHub PR页面,系统会自动识别到特性分支已更新、冲突已解决,将PR状态更新为可合并,此时直接点击页面的合并按钮即可,PR的审核记录、修改轨迹都会完整保留
注意:直接在本地将特性分支合并到目标分支再推送的方式,虽然能实现代码合并的效果,但会丢失PR与代码提交的关联轨迹,部分场景下也可能出现状态识别延迟,优先选择在特性分支解决冲突后推送的方案
内容的提问来源于stack exchange,提问作者Joshua Foxworth
相关产品推荐
相关产品推荐

