2012-06-08 9 views
7

私は、次のgitツリーがあります。分割gitのブランチ

branch v2 =>     /--- [lots of work] --- [new version] --- ref_d 
          /
    root --- ref_a --- ... --- ref_b (project reset) 
      \ 
branch v1 => \ --- [some works] --- ref_c 

をv1とv2が本当に異なっているように、2つの異なるチームがv1とv2を維持します、私は別のgitに二つの別々のブランチ2をしたいと思いますリポジトリ:

repo_v1 : from root to ref_c 
repo_v2 : from ref_b to ref_d 

どうすればよいですか?おかげさまで

答えて

11

次に、repo_v1repo_v2という名前のリモコンとして2つの別々のreposを設定したと仮定します。

v1のブランチは簡単です:

git push repo_v1 ref_c:v1 

v2の分岐は難しいことではありません。

git checkout --orphan v2 ref_b 
git cherry-pick ref_b..ref_d 
git push repo_v2 v2 

git checkout --orphan <branchname> <startpoint>が指定された点から始まるのではなく、全く新しい歴史を作成し、そのコミットの両親を持っている)