基于主干分支工作流,如何从main分支选部分Commit创建v1.1发布分支?
可行性与解决方案
完全可行,你之前的问题出在分支创建的起点错误——直接从main分支切分会继承main的全部提交历史,正确的做法是从v1.0版本的基点创建分支,再挑选main中的指定提交。
具体Git命令步骤
1. 定位v1.0版本的基点
先找到v1.0对应的提交哈希值(可通过git log --oneline查看),如果已经给v1.0打了标签,直接用标签名v1.0即可。
2. 从v1.0基点创建v1.1发布分支
# 以v1.0标签为起点创建分支 git checkout -b release/v1.1 v1.0 # 或者以具体提交哈希(比如abc123)为起点 git checkout -b release/v1.1 abc123
3. 从main分支挑选需要的提交并合并
逐个指定要挑选的提交哈希(从main分支的提交历史中获取):
git cherry-pick <commit-id-1> <commit-id-2> <commit-id-3>
- 若遇到冲突:手动解决代码冲突后,执行
git cherry-pick --continue继续后续挑选 - 若要放弃当前操作:执行
git cherry-pick --abort
4. 完成后打标签(可选)
确认分支历史符合预期后,给v1.1版本打标签:
git tag -a v1.1 -m "Release version 1.1"
关键说明
- 这样创建的
release/v1.1分支,历史仅包含v1.0版本的所有提交,加上你挑选的指定提交,完全匹配你的需求。 - 挑选提交前请确认这些提交没有依赖
main中未被挑选的其他提交,否则可能引发大量冲突。
内容的提问来源于stack exchange,提问作者Dutt
相关产品推荐
相关产品推荐

