現在SVNリポジトリをGitにインポートしています。 SVNリポジトリの構造はちょっと面倒ですので、3つの別々のGitリポジトリに変換して、それらをすべて一緒にマージする必要があります。グラフトされたGitの履歴のマージを導入する
これらは、単一の歴史への3つの部分から単純なプロジェクトだった場合、私はちょうど例えば、他の上にそれらをリベースかもしれない:私の例では
cd part3
git remote add -f part1 url_to_part1
git remote add -f part2 url_to_part2
git rebase part2/master
git rebase part1/master
しかしpart3
は、上記のタグの数十が含まれており、 3つの枝。部品1と2がSVN内のmaster
(よく、トランク)にきれいにマージされていたならば、私はthisのようなことをして、ブランチを履歴に正しく移植します。これには、リベースとは異なり、すべてのタグが所定の位置に留まるという利点があります。
しかし、ブランチの1つに孤立したコミットがあり、これを履歴にマージしたいと考えています。私がグラフトの履歴を修正しようとすると、孤立したコミットからの変更が失われます。下の例では、XからCへのマージがSVNで起こったので、移植でリンクを作成できます。しかし、私は移植片がファイルのようなものを使用してグラフ構造を指定することができる方法はありコミットE、Gなど
A-B-C-[ ]-D-E-F-G-H-...
\//
X--O
上のタグを維持しながら、CとDの間に孤立したコミットOをマージしたいです実際に暗黙のマージを実行しますか?または、私がここで使用するはずのフィルタブランチコマンドがありますか?
[この質問に記載されている](http://stackoverflow.com/questions/3810348/setting-git-parent-pointer-to-a-different-parent/3811028#3811028)これは移植片。リベースして、手動でタグを移動する必要があります。 – jkeirstead