【发布时间】:2011-05-09 00:17:52
【问题描述】:
我使用git-svn 创建了一个 SVN 存储库的 git 镜像。 SVN 内部的结构有点不规范,所以 git 创建了一个与 master 分支没有共同提交的分支。
A---B---C topic
D---E---F---G master
我知道提交 A 是基于提交 E 并且我非常肯定我已经解决了导致 git 无法识别该事实的问题(使用 filter-branch)。我想要做的是将topic 重新附加到master 分支,将E 设置为A 的父级:
A---B---C topic
/
D---E---F---G master
git-rebase 似乎对我不起作用,因为提交A 的差异列出了master 中已经存在的大量文件的创建,从而导致大量冲突。
根据我对 git 的理解,只需将 E 设置为 A 的父级就足以解决所有问题。
这可能吗?如果是,我该怎么做?
【问题讨论】:
-
有没有机会重新初始化 svn 的 git 镜像,将“分支”指向正确的目录?还是先修好svn结构?
-
实际上 repo 确实使用了标准的trunk/tags/branches 布局。然而,我试图修复的分支是通过仅复制主干的子路径创建的 - 猜测这对于 git-svn 来说有点太多了。
-
rebase 有一个
root选项。如果需要,可以将其与onto和preserve-merges一起使用。