2012-01-10 9 views
3

私はいくつかのレガシーコードを改良しています。私はgitを使ってバージョンを扱います。そして、同じレガシーコードの別のブランチを見つけたので、私はそれを自分のコードにマージしたい。問題は: これらの2つのバージョンの最初のコミットが異なるので、単にgitでリベースすることはできません。git:gitでベースがuntrackedのrebase

NOW: 
(origin) -- (untracked modifications) -- my tracked improvements 
     \- (other untracked modifications) --some other tracked improvements 
NEEDED: 
(origin) -- some other tracked improvements -- my tracked improvements 

グラフのように、2つのブランチは2つの個別レポジトリにあります。

私は多分、すべての変更を別の新しいリポジトリにインポートする必要があると思っていますが、どうすればよいか分かりません。

答えて

1

非常に似ている2つのレポがある場合は、もう1つのレポのコミットを他のレポのコミットにするためにグラフトポイントを使用することができます。
"How to merge two branches without a common ancestor?"の例がありますが、ローカルの修正(移植点)を永久にするには、git filter-branchが必要です。

さらに古典的な解決策は、subtree mergingPro Git bookにも示されています)を使用することです。

ブログ投稿 "Having Fun with Git Subtree"は、この2つのリポジトリ間のマージの例を示しています。

+0

うまくいくようですが、ありがとうございます。 – Haocheng

+0

@Haocheng:excellent。選択したソリューション(グラフトまたはサブツリーマージ)と入力したコマンドを回答として投稿して、必要なものを実現できますか? – VonC

関連する問題