我有两个分支,master和feature1。我在feature1上工作时发现需要处理其他不相关的事情。不幸的是,我忘记从主分支上创建分支,而是从feature1创建了我的feature2分支。现在我想把feature2合并到master中,但由于该分支中有feature1的部分内容,所以无法进行合并。
我该如何从feature2分支中删除feature1的提交记录?这需要使用rebase吗?
我感觉如果我能够将feature2的起始参考点更改为master所在位置,那可能会有所帮助,但我不知道如何操作。
编辑:
感谢您们的回答!我尝试了@Mark解决方案中的rebase操作,但意识到历史记录比我最初想象的要复杂得多。 feature 2已经合并到其他feature分支中,而且master曾经被合并到feature2中。此外,master上还有与feature2无关的其他提交。所有内容仍然只在本地。
实际上,我的历史记录更像是这样的:
我该如何从feature2分支中删除feature1的提交记录?这需要使用rebase吗?
我感觉如果我能够将feature2的起始参考点更改为master所在位置,那可能会有所帮助,但我不知道如何操作。
编辑:
感谢您们的回答!我尝试了@Mark解决方案中的rebase操作,但意识到历史记录比我最初想象的要复杂得多。 feature 2已经合并到其他feature分支中,而且master曾经被合并到feature2中。此外,master上还有与feature2无关的其他提交。所有内容仍然只在本地。
实际上,我的历史记录更像是这样的:
A - B - C - D - - - - - - - - - - - - - L - M master
|
| - I - J - K feature2
\ / \
- E - F - G - H - - - - - -N - O - P feature1
我所想要的是这个:
A - B - C - D - - - - - - - - - - L - M master
|\
| - - - - - I - J - K feature2
\ \
- E - F - G - H - - - N - O - P feature1
我也尝试过:
git rebase --onto 1524b824cfce5856a49e feature1 feature2
// 1524b824cfce5856a49e == D
但这只是将分支名称feature 2指向了1524,并使提交I、J、K保留其原始父级。
I
从D
分支出来,然后在D
后的提交中合并回master
?除非我漏掉了什么,否则这没有太多意义。 - Andy