将一个git分支拆分为两个,然后只删除其中一个分支上的代码部分

将一个git分支拆分为两个,然后只删除其中一个分支上的代码部分,git,Git,我有一个git分支(我们称之为branch\u a),在这个分支上,我做了一些工作,以便稍后合并到master。我现在意识到,到目前为止我编写的代码应该是两个独立的分支,因为实际上这是两个特性,其中一个几乎完成合并,而另一个是第一个的扩展,但需要更多的工作 我的第一个想法是再次分支branch\u A以获得branch\u B,而不是删除branch\u A上未完成功能的行,将其合并到master中,然后在完成后也合并branch\u B 我看到的问题是,在我将分支机构A合并到主控机构中之后,将

我有一个git分支(我们称之为
branch\u a
),在这个分支上,我做了一些工作,以便稍后合并到
master
。我现在意识到,到目前为止我编写的代码应该是两个独立的分支,因为实际上这是两个特性,其中一个几乎完成合并,而另一个是第一个的扩展,但需要更多的工作

我的第一个想法是再次分支
branch\u A
以获得
branch\u B
,而不是删除
branch\u A
上未完成功能的行,将其合并到
master
中,然后在完成后也合并
branch\u B

我看到的问题是,在我将
分支机构A
合并到
主控机构
中之后,将
主控机构
合并到
分支机构B
(以保持其他更改的最新状态)也会删除
分支A
中缺失的第二个功能的代码,因为删除它们的提交会合并到
分支B
,对吗

在将
master
合并到
Branch\u B
时,如何删除
Branch\u A
上的部分代码,而不在
Branch\u B
上删除它们


我对git没有太多经验,所以可能有更好的解决方案。我也希望我的解释对任何人都有意义……

假设您从A分支:在分支B中,将有A的一部分。如果您经常提交,您可能能够识别一组仅包含功能A内容的提交,以及仅包含功能B内容的提交。如果是这样,请从“主”分支(或等效分支),然后
git cherry从分支A中选择您需要的内容。删除分支A中的编辑。请记住:每次提交都会记录上一次提交中的编辑并可以重播。您可以“接受”提交并从另一个起点重播它。如果运气好的话,它可能会起作用。这只是一个探索的想法。@DaemonPainter我将对此进行研究,但我认为我没有经常承诺以这种方式将两者分开。。。