我目前有以下情况(简化)。
master C --+-- E
| | |
hotfix | D --+
| |
develop A - B - C ----- F - G - H - I
|
feature + J - K - L
最后我想说的是:
master C --+-- E ------+
| | | |
hotfix | D --+ |
| | |
develop A - B - C ----- F - G - | --- H - I
|
feature + J - K - L
我该如何以一种体面的方式去做这件事呢?feature
中的所有内容都不依赖于G
,因为在feature
上编辑的所有内容都在一个单独的文件夹中。
我尝试了以下方法(在feature
上),但所有这些似乎都在feature
中留下了F
之后提交的痕迹:
1. git rebase --onto master develop feature
2. git rebase --onto E J~1
3. git rebase --onto master develop
3条答案
按热度按时间flseospp1#
Cherry从特征到主分支上选择J、K、L。你应该在将来使用一个好的分支策略。我正在使用这个one和它工作得很好。
9q78igpj2#
由于我不能再等待一个彻底的解决方案,我决定使用cherrypick建议。虽然,我不想直接在
master
分支上进行cherrypick,但这在我的 * git flow * 工作流中是不好的做法。所以我做了以下事情:1.启动新的修补程序
feature
的提交1.完成修补程序,将精选提交合并为
master
和develop
1.确保我永远不会合并来自旧
feature
分支的提交,方法是在本地删除它们,并可能在origin
上删除它们。在此之后,我得到了以下内容:
我仍然相信我应该能够用变基更优雅地解决这个问题,但我认为这是一种稍微优雅的方式。
k5hmc34c3#
git rebase -i --onto E H L
将JKL转换为E