执行git fetch & git rebase后上游仓库更新问题及PR操作相关问询

问题1解答
会引发的问题
- PR页面会提示合并冲突,无法自动完成合并,上游仓库维护者无法直接合并你的提交
- 就算不存在字面代码冲突,你的提交基于旧版本的上游代码开发,合并后可能触发功能异常、单元测试/CI流程不通过的问题
- 大部分规范化的仓库会设置分支保护规则,要求PR源分支必须与目标分支保持最新,不符合要求的PR会被直接阻止合并
对应解决方案
- 本地切换到你的
myfeature功能分支,重新执行git fetch upstream(upstream为你本地配置的original/repo远程地址别名),再执行git rebase upstream/master - 如果变基过程中出现冲突,手动修改冲突文件后执行
git add <冲突文件路径>,再运行git rebase --continue完成整个变基流程 - 变基完成后执行
git push --force origin myfeature强制推送到你fork的$user/repo的myfeature分支,已创建的PR会自动同步更新,无需重复新建PR
问题2解答
- 工作流第6步就是推送本地
myfeature分支到你fork的$user/repo的同名myfeature分支 - 向
original/repo创建PR时,源分支就是$user/repo的myfeature分支,目标分支是original/repo的master(或main)分支,你没有权限直接推送代码到original/repo,不需要做额外推送操作 - 创建PR前不需要将
$user/repo的master分支rebase/mergemyfeature分支,正确逻辑是让你的myfeature分支基于最新的original/repo的master分支做变基,你自己fork的仓库的master分支只需要定期同步上游代码即可,不需要和功能分支做合并 - PR被上游成功合并后,建议删除两个分支:远程
$user/repo的myfeature分支可以直接在PR合并页点击删除按钮,也可以本地执行git push origin --delete myfeature删除;本地myfeature分支可以执行git branch -D myfeature删除,避免后续开新功能分支时基于旧分支提交,产生冗余的无效提交
内容的提问来源于stack exchange,提问作者user7693832
相关产品推荐
相关产品推荐

