无法从同一分支创建多个Pull Request,新提交自动归入首个PR求助
解决同一分支多Commit独立创建PR的问题
问题根源很明确:GitHub的PR是基于分支间的差异对比生成的。你在testBranch上连续提交后,它和目标分支(比如main)的差异会包含所有提交记录,所以新创建的PR自然会把之前的提交也包含进去。要实现每个commit单独对应PR,得给每个独立的commit单独创建临时分支,具体操作如下:
方法:为每个Commit创建临时分支提PR
假设你在testBranch上已经有多个独立的commit,按以下步骤操作:
- 查看所有commit的哈希值和描述:
git log --oneline
执行后会得到类似输出:
abc123 fix issue #2: 修复XX功能 def456 fix issue #1: 修复XX bug
这里def456是第一个问题的commit哈希,abc123是第二个问题的commit哈希。
- 为第一个commit创建临时分支并推送:
# 基于目标commit创建分支 git checkout -b pr-issue1 def456 # 推送到远程仓库 git push origin pr-issue1
之后去GitHub上,选择pr-issue1作为源分支、目标分支(比如main)作为基础分支,创建PR并关联对应的问题1即可。
- 回到testBranch,继续处理第二个commit:
git checkout testBranch # 基于第二个commit创建临时分支 git checkout -b pr-issue2 abc123 # 推送到远程仓库 git push origin pr-issue2
同样在GitHub上创建PR关联问题2,这个PR只会包含abc123这个commit的修改。
- 后续在testBranch上提交新的commit后,重复上述步骤即可:查看新commit的哈希,创建对应临时分支,推送后提PR。
这种方法的好处是,你的testBranch可以继续保留所有提交记录,临时分支只用于提PR,PR合并后可以直接删除这些临时分支,不影响主线分支的工作流程。
内容的提问来源于stack exchange,提问作者user18003748
相关产品推荐
相关产品推荐

