如何基于现有分支拆分创建Git工作流并选择分支提交PR?
Git分支管理问题解答
问题1:仅合并feature/CRM-123_some_feature-experiment1到develop,原分支改动会丢失吗?
- 不会丢失。
feature/CRM-123_some_feature和feature/CRM-123_some_feature-experiment1是两个独立分支,合并实验分支到develop只会同步实验分支的代码到develop,原分支的提交记录和代码会完整保留,不受任何影响。
问题2:是否需要采用原分支下分出两个实验分支的三层结构,将选中的实验分支合并回原分支后再提交PR?
- 完全没必要。这种三层分支结构会徒增管理复杂度,只有当你需要基于原分支的不同提交节点做多次独立实验时才有意义,你的场景用简单的双分支结构就足够。
最简单的解决方案
按你原本的思路执行即可,具体步骤:
- 当前处于
feature/CRM-123_some_feature分支且带有新改动,执行命令创建实验分支保存当前代码:git checkout -b feature/CRM-123_some_feature-experiment1 - (可选)将实验分支推送到远程仓库,避免本地数据丢失:
git push origin feature/CRM-123_some_feature-experiment1 - 切回原分支:
git checkout feature/CRM-123_some_feature - 重置原分支到你想要继续修改的那次提交(先通过
git log查看目标提交的哈希值):
要是记不清哈希值,也可以用相对引用定位,比如实验分支的前一次提交就是目标提交:git reset --hard <目标提交的哈希值>git reset --hard feature/CRM-123_some_feature-experiment1~1 - 之后就可以在原分支上继续修改代码,完成后直接提交PR到develop即可。如果后续确定实验分支的方案更优,直接提交实验分支的PR到develop就行,原分支可保留或删除,二者完全不冲突。
内容的提问来源于stack exchange,提问作者John Little
相关产品推荐
相关产品推荐

