我正在同时在两个不同的分支上使用git(例如feature/feature_1
和feature/feature_2
)
在feature/feature_1
上,我从母版开始,已经推送了一些提交(但未合并)。
对于feature/feature_2
,我也想从大师那里开始,但是不幸的是,我从feature/feature_1
开始,但是一开始我没有注意到它,所以我提出了一些承诺。
因此,在feature/feature_2
上,我有feature/feature_1
的每一次提交(我不想在此分支上),以及我想保留的其他一些提交。
如何从feature_1
中“删除”对feature_2
的提交,而又不删除对feature_2
所做的工作。
我要指出的是,两个分支都已经被推送但尚未合并,并且没有任何共同点。
谢谢
答案 0 :(得分:4)
最简单的方法:
git rebase --onto master feature/feature_1 feature/feature_2
就这样
答案 1 :(得分:1)
结帐feature_2
:
$ git checkout feature/feature_2
针对主服务器进行交互式变基:
$ git rebase -i master
在出现的编辑器中删除所有不需要的feature_2
提交,然后保存并退出。
如果需要其他人来查看更改,则需要强制推动分支-此操作正在更改历史记录。