git - 如何分离一个分支并将其重新附加到 Git 中的某个不同分支

标签 git

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

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

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

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

这里的 master 和 feature 分支在远程和本地都存在,而主题只在我的本地。我想在重新附加到功能后推送主题。

谢谢

最佳答案

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

git rebase --onto feature B

不同之处在于,如果 B 不包含在 feature 中,rebase 命令将不知道在重放之前回退多远。

一般来说,git rebase --onto X Y 意味着“在 X 之上重播 Y 之后的所有提交”。 git rebase X 是首先找到 HEADX 的共同祖先的简写(Z = git merge-base HEAD X),然后在 X 之上重播 Z 之后的所有提交。

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

关于git - 如何分离一个分支并将其重新附加到 Git 中的某个不同分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610081/

相关文章:

git - 找不到 Homebrew 安装的应用程序

git - 如何使我的分支与其对应的远程分支相同?

git - "Layering"git 存储库

git - 在 "git fetch"期间中止安全吗?

git - 为什么“cherry-pick”会导致 git merge 丢弃我的部分提交?

git - 在 git 别名中使用变量

git - Gerrit - 当前分支和远程分支存在分歧

git - 使用 Git 对 Microsoft Dynamics NAV 进行版本控制?

c# - 使用 octokit.net 从 GitHub 下载代码

git - 您如何重新 merge 还原的 merge