在进行其他几次提交后,如何将提交分离为分支?

时间:2010-11-17 15:44:10

标签: git merge branch rebase

我有一个具有以下结构的Git仓库:

A--B--C--D--E

我想将C提交分成一个分支:

     C
    / \
A--B---D--E

我该怎么做?

2 个答案:

答案 0 :(得分:2)

git branch new-branch C

将创建一个指向名为C的{​​{1}}的新分支,最后以此结尾:

new-branch

答案 1 :(得分:2)

正确的答案是尊重D在输出中有2个父母的事实。我将假设大师指的是E。

git branch new-branch C
git checkout -b merge-base B
git merge --no-ff new-branch
git rebase --onto merge-base D^ master
git checkout master

你最终会得到这个:

     C
    / \
A--B---Y--D'--E'

这将保留C作为合并到主分支中的父级。你可以用git rebase -i head ^^^将D压入Y.然后你会:

     C
    / \
A--B---D''--E''