Git分支嵌套场景下,如何仅推送当前分支且保留本地嵌套结构?
独立推送branch2提交PR的方案
你可以通过创建干净分支+Cherry-pick独立变更的方式实现需求,具体步骤如下:
切换到main分支并拉取最新代码
git checkout main git pull基于main创建一个用于提交PR的干净分支(比如命名为
branch2-clean)git checkout -b branch2-clean找出branch2中仅属于自身的提交(即不包含branch1的变更)
先查看提交列表确认范围:git log --oneline branch1..branch2输出会显示branch2相对于branch1新增的所有提交哈希(比如
abc123、def456这类)将这些独立提交Cherry-pick到干净分支
git cherry-pick abc123 def456如果遇到冲突,解决冲突后执行
git cherry-pick --continue完成操作推送干净分支到远程并提交PR
git push origin branch2-clean用这个分支提交的PR就只会包含branch2的独立变更,完全不涉及branch1的内容
切回原branch2继续正常开发
git checkout branch2本地分支依然基于branch1,不影响你后续的开发工作
等branch1合并到main后,再处理原branch2:
git checkout branch2 git rebase main # 解决可能出现的冲突后,推送更新(需要强制推送时用--force-with-lease更安全) git push origin branch2 --force-with-lease
内容的提问来源于stack exchange,提问作者user19735176
相关产品推荐
相关产品推荐

