情况:
-
master在X.
-
quickfix1在X 2提交
这样:
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
然后我开始研究quickfix2,但不小心将quickfix1作为源分支进行复制,而不是master . 现在quickfix2在X 2提交2相关提交 .
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
\
q2a--q2b (quickfix2 HEAD)
现在我希望有一个quickfix2分支,但没有属于quickfix1的2次提交 .
q2a'--q2b' (quickfix2 HEAD)
/
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
我尝试从quickfix2中的某个修订版创建补丁,但补丁不保留提交历史记录 . 有没有办法保存我的提交历史记录,但有一个分支没有更改quickfix1?
5 回答
你能做的最简单的事就是挑选一个范围 . 它与_383361相同,但对眼睛来说更容易:)
我相信它是:
这是 rebase --onto 的经典案例:
所以你应该去
至:
最好在干净的工作树上完成 .
See git config --global rebase.autostash true,尤其是after Git 2.10 .
我发现的唯一工作方式:
然后你需要再次提交更改,但手动操作要容易得多......
您可以使用
git cherry-pick
来选择要复制的提交 .可能最好的方法是从master创建分支,然后在该分支中使用
git cherry-pick
来自你想要的quickfix2的2次提交 .