如何正确推送多个Feature分支至远程仓库?PR冗余提交问题排查
问题根源
你的核心问题是:每次开发前,本地main分支没有和远程main分支保持完全一致,反而把未合并到远程的feature分支提交合并到了本地main,导致后续新分支继承了这些未被审核的提交。
修正后的开发流程
完全抛弃之前第7步的操作,改用以下流程:
- 克隆远程仓库后,始终确保本地main是最新的:
git checkout main git pull origin main - 基于最新的本地main创建新的feature分支:
git checkout -b feature/new-function - 在feature分支开发,做原子提交:
git add . git commit -m "feat: 实现XX功能的某一部分" - 推送远程feature分支并创建PR:
git push origin feature/new-function - 当一个PR被合并到远程main后,再更新本地main:
git checkout main git pull origin main - 基于更新后的本地main创建下一个feature分支,重复流程。
紧急修复现有问题的方法
如果现在本地main已经混杂了未合并的提交,先重置本地main到远程main的状态:
git checkout main git fetch origin git reset --hard origin/main
之后再按照修正后的流程开发新功能。
关键注意事项
- 绝对不要在本地main分支合并任何未被远程main接受的feature分支提交
- 每次开新分支前,必须拉取远程main的最新代码,确保新分支的起点是干净的远程main
- 如果需要在多个feature分支间共享代码,不要合并到main,而是用
git cherry-pick把需要的提交复制到目标分支,或者创建专门的开发分支临时共享
内容的提问来源于stack exchange,提问作者Optiq
相关产品推荐
相关产品推荐

