Git技术问询:如何按文件而非提交拆分分支与Pull Request
按文件拆分Pull Request的实操步骤
没问题,我来帮你一步步搞定这个需求——把一个包含多文件变更的分支拆成两个独立的小PR,完全不用纠结原来的提交记录~
第一步:先给原分支做个备份(安全第一!)
先切换到你的原分支branch_1,然后创建一个备份分支,防止后续操作搞砸了没法恢复:
git checkout branch_1 git checkout -b branch_1_backup
备份完就可以放心操作原分支或者新分支啦。
第二步:创建第一个只包含file_1的分支
我们从主分支master出发,新建一个专门用来提交file_1变更的分支:
git checkout master git checkout -b branch_1_file1
接下来把branch_1里file_1的所有变更同步到这个新分支里:
git checkout branch_1 -- file_1
现在你可以查看一下状态,确认只有file_1有变更,然后提交并推送到远程:
git add file_1 git commit -m "只提交file_1的变更" git push origin branch_1_file1
第三步:创建第二个只包含file_2的分支
用同样的逻辑处理file_2:
git checkout master git checkout -b branch_1_file2 # 同步branch_1里file_2的变更 git checkout branch_1 -- file_2 # 提交推送 git add file_2 git commit -m "只提交file_2的变更" git push origin branch_1_file2
第四步:创建两个独立的Pull Request
现在你在代码托管平台上,分别针对branch_1_file1和branch_1_file2向master创建PR就可以了。
额外小提示
- 如果之后
branch_1还有后续修改,你可以基于备份分支branch_1_backup继续开发,或者直接在原branch_1上操作,不会影响已经拆分出去的两个PR。 - 因为你提到两个文件没有引用关系,所以完全不用担心拆分后出现依赖问题,直接按上面的步骤来就行~
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

