Git 在主控形状上重设要素分支的基础,不包括以前的要素分支

Git 在主控形状上重设要素分支的基础,不包括以前的要素分支,git,Git,我做了坏事。我的工作流程如下所示: git checkout master # we're on master git checkout -b feature/one # now do work git commit -a ... # create a new feature branch git checkout -b feature/two # now do work git commit -a ... # oh shoot, I based my feature branch on an

我做了坏事。我的工作流程如下所示:

git checkout master 
# we're on master
git checkout -b feature/one
# now do work
git commit -a ...
# create a new feature branch
git checkout -b feature/two
# now do work
git commit -a ...
# oh shoot, I based my feature branch on another feature branch, not master!
基本上,我是这样做的:

master:      a---b------------
feature/one       \-c--d------
feature/two             \-e--f
与此相反:

master:      a---b------------
feature/one      |-c--d-------
feature/two      \-e--f-------
既然
feature/two
已经存在,并且其中包含有用的提交,那么我如何重新设置它的基础,从
feature/one
中排除提交,并从
master
返回它应该基于的内容

git rebase --onto master sha123~
其中,
sha123
是功能/two的第一个SHA


我建议创建feature/two的一个复制分支来尝试此操作,以确保没有任何中断

您是否可以使用交互式重基来删除属于feature/one的提交?@Pythonic1可能,但是有没有更好的方法来处理它,而不需要我手动选择提交?ie在伪代码中:
git从功能中过滤出提交/one——排除主程序