我有以下结构:更改源提交
A-B-C-D (branch-C)
\ \
\ H (branch-A)
\
\-E-F-G (branch-B)
我想是这样的:
A-B-C-D (branch-A and branch-C)
\
\
\
\-E-F-G-H (branch-B)
我该怎么办呢?
我有以下结构:更改源提交
A-B-C-D (branch-C)
\ \
\ H (branch-A)
\
\-E-F-G (branch-B)
我想是这样的:
A-B-C-D (branch-A and branch-C)
\
\
\
\-E-F-G-H (branch-B)
我该怎么办呢?
假设你有分支-B签出:
git cherry-pick branch-A
git push . branch-C:branch-A -f
您现在可以删除任一分支-A或分支机构-C选择 - 或者只是保持两者。
git checkout branch-B
git cherry-pick branch-A # you could also specify H directly
现在你有ħ顶上G.
从含有A-B-C-d的分支git checkout branch-A
git reset --hard HEAD^ # you could also specify D directly
# HEAD is the current commit; HEAD^ is the previous one
现在已经移除小时。
请注意,这只有在分支引用指向H和G时才有意义,因为git中的提交对象合并了它的祖先; “移动”提交并不意味着它改变了你的分支。
对于OP:将G和H替换为在这些提交中开始的分支。 (这就是Borealid在最后一段中的看法,但我认为这样做会更清楚一些。) – Cascabel 2012-02-17 04:40:47
我冒昧地为你贴了几个分支;这会帮助答案变得更好。 – Cascabel 2012-02-17 04:52:21
添加分支C使其更好:) – 2012-02-17 09:21:24