我有一个由另一个分支构建的分支,但实际上应该是一个独立的分支(它们是不同的功能)。现在我相信我有这个:
...- master
\
A1 - A2
\
B1
我想要的是A分支中的任何更改都不在B分支中。结果应该是:
B1
/
...-master
\
A1 - A2
到目前为止,我已尝试git branch --set-upstream-to=master
和git rebase master
(在B时),但那不是我想要的。
答案 0 :(得分:3)
这应该是rebase --onto
:
git checkout B1
git rebase --onto master A2 B1
答案 1 :(得分:0)
一种方法也可能是从master创建一个新的分支,并选择在B1
上完成的提交git checkout master
git checkout -b B1 #(either delete beforehand B1 (git branch -D B1) or use a different name here)
git cherry-pick SHA-Commit-on-B1
...
因为cherry-pick支持提交范围,请参阅https://stackoverflow.com/a/3664543/1657377这也值得一试