【发布时间】:2015-10-06 18:09:40
【问题描述】:
我的 git 存储库中有两个不相关的“部分”,其中一个包含合并:
X---Y
A---B---C
/ \
D---E---F---G---H
现在Y 和D 包含完全相同的文件(将这两部分视为一个不相交的历史)
我想将整个第二部分 (D..H) 重新定位到第一部分,所以我得到类似
A---B---C
/ \
X---Y---D---E---F---G---H
不幸的是,做一个简单的git rebase 只适用于单个分支,并且会展平历史并丢失分支/合并部分。
我怎样才能变基整个“分支树”?
背景
代码最初是使用 subversion 开发的。 在某些时候,我切换到 git 来实现实验性功能,但只是从 svn-repository 的最后一个状态开始(而不是进行适当的 svn2git 转换)。 git历史包括分支、合并和事物。
我现在想完全切换到git,但也想将两个历史记录合并为一个(包括所有合并)。
【问题讨论】:
-
嗨@umläute,你试过这个吗:1. git checkout branch_D_to_H; 2. git pull --rebase origin branch_x_y?
-
@Phoebe 没有远程(例如
origin),这都是一个具有不相交分支的本地存储库。
标签: git merge branching-and-merging