我们有开发分支,从中出现功能分支。一些功能足够大,它们成为主题分支。然后这些主题分支有更多的子分支被合并到主题分支中,在完成所有主题之后,它将合并到开发中。
现在,我从主题分支开始了功能分支,但我应该从开发开始。我该如何改变这个?
development
A--B--C--D--E--F--G
\
topic T1----------T2--T3--T4--T5
\ / \
U1--U2--U3 W1--W2--W3
sub-feature U feature W`
功能W应该从开发分支开始。
有没有办法在不触及主题分支T的情况下将W1,W2和W3提交到开发分支?
我知道我可以签出开发分支并挑选每个提交,但这会创建一个带有新元数据的新提交。我想保持提交创建日期,也许是作者!
答案 0 :(得分:3)
您可以制作rebase --onto
:
git rebase --committer-date-is-author-date --onto dev T4 W`
这将重播 T4
之后的任何提交,直至并包括W
HEAD,到dev
分支。
W1'--W2'--W3' (W)
/
A--B--C--D--E--F--G (dev)
\
topic T1----------T2--T3--T4--T5
\ /
U1--U2--U3
sub-feature U
请参阅“git rebase without changing commit timestamps”,作为保持合理提交日期的解决方法 但任何rebase都会改变元数据。