Git/GitHub如何仅合并特性分支指定commit到main分支并保留其余提交
问题结论
该需求可以通过Git、SVN原生功能实现,无需GitHub特殊配置,且操作全程不会修改特性分支的提交记录,其他开发者拉取特性分支时可正常获取全部3个提交。
Git 操作步骤
Git可以通过cherry-pick功能提取单个commit合并到目标分支,操作流程如下:
- 切换到本地
main分支:git checkout main - 查看特性分支的提交记录,获取需要合并的第一个commit的哈希值:
git log <你的特性分支名称> - 执行单个commit合并操作:
git cherry-pick <目标commit哈希值>,如果出现合并冲突,解决冲突后执行git cherry-pick --continue即可完成合并 - 将合并后的本地
main分支推送到GitHub:git push origin main
注意:该操作仅会向
main分支新增目标commit的内容,不会对特性分支的提交历史做任何修改,其他开发者正常拉取特性分支即可获取全部3个提交。后续需要全量合并特性分支到main时,Git会自动识别已合并的commit,不会出现重复合并的问题。
SVN 操作步骤
SVN可以通过指定修订版本号的方式合并单个提交,操作流程如下:
- 进入
main分支对应的本地工作副本目录 - 执行单版本合并命令:
svn merge -c <目标提交的修订版本号> <特性分支的SVN远程路径> - 解决合并冲突后执行提交操作即可,特性分支的所有内容不会被修改
GitHub 相关说明
GitHub原生支持单commit合并操作,无需额外特殊配置:
- 你可以在网页端打开目标commit的详情页,点击「Cherry-pick」按钮直接选择将该提交合并到
main分支 - 如果你向
main分支提了包含全部3个commit的PR,也可以选择仅合并单个commit,无需执行全量PR合并
内容的提问来源于stack exchange,提问作者odai jawasreh
相关产品推荐
相关产品推荐

