如何分离分支并将其重新连接到Git中的某个不同分支

时间:2016-07-27 10:15:06

标签: git github

我有一个主分支和主题分支,如下所示:

A---B---C---D master
     \
      E---F topic

我想分离这个主题分支并将其附加到我的功能分支,如下所示:

G---H---I---J feature
             \
              E---F topic

此处主要和功能分支存在于远程和本地,而主题仅在我的本地。我想在将主题重新连接到功能后推送主题。

由于

3 个答案:

答案 0 :(得分:2)

如果feature包含B,那么它就像git rebase feature分支中的topic一样简单。如果不是这种情况,您需要:

git rebase --onto feature B

不同之处在于,如果B中未包含feature,则rebase命令将无法知道在重播之前要回退多远。

通常,git rebase --onto X Y表示“在Y之后重播X之后的所有提交”。 git rebase X是速记,首先找到HEADXZ = git merge-base HEAD X)的共同祖先,然后重播Z之后X之后的所有提交}。

文档:https://git-scm.com/docs/git-rebase

答案 1 :(得分:1)

您想要rebase

git checkout topic-branch
git rebase feature-branch

Git book也有关于这个主题的章节,如果你想要更深入的知识:https://git-scm.com/book/en/v2/Git-Branching-Rebasing

答案 2 :(得分:1)

您需要结帐主题分支

git checkout  \E--F(*topic branch)` 

然后所有内容将与远程分支同步 你需要改变你的功能分支

git rebase G--H--I--J(*feature branch)