2016-08-18 16 views
1

私はある程度Visual Studioで作業していて、変更をGitリポジトリに保存しています。さんは一緒にマージされた2つのGitリポジトリを分離する

A0-A1-A2-A3-A4-A5-A6 

後、私は別のGitのリポジトリにある別のプロジェクトプロジェクトB、上で作業を開始し、次のいるこのプロジェクトAは、歴史をコミット呼ぶことにしましょう。

B0-B1-B2-B3 

は、いくつかの点で私は、これら二つのプロジェクトが実際に相互に直接関連していると判断し、私はプロジェクトのリポジトリにプロジェクトBをマージし、プロジェクトAのVisual Studioソリューションに追加します。プロジェクトAのrepoには、2つのルートコミットA0とB0があります。

A0-A1-A2-A3-A4-A5-A6-M1 
        /
     B0-B1-B2-B3- 

この後、私はこれらのプロジェクトを引き受けるには一つであり、独立したプロジェクトAとプロジェクトBの枝に私の仕事を分離する気にしないでください。私は

A0-A1-A2-A3-A4-A5-A6-M1-AB1-A7-B4-B5-AB2-B6-A8-A9 
        /
     B0-B1-B2-B3- 

AとBの両方に変更しかし、今、私はこれらのプロジェクトをマージする間違っていたことを決定した作られたいくつかのコミットがある、が、コミットのほとんどは、プロジェクトAまたはプロジェクトBのいずれかに関連しています2つのプロジェクトの歴史を個別のgitリポジトリに分割したいと考えています。

A0-A1-A2-A3-A4-A5-A6-A7-A8-A9 

B0-B1-B2-B3-B4-B5-B6 

これらのプロジェクトはどちらも、私が取り組んでいる完全に私的なプロジェクトです。したがって、すべてのコミットを再構築/再作成することは問題ではありません。私はSOやその他のウェブ上の多くの記事を読んできましたが、これを分割することが最善の策なのかどうかはまだ分かりません。

答えて

0

git rebaseのための仕事です:

git clone current_repos new_repos_only_a ; cd new_repos_only_a 
git rebase -i A6 
# skip all B commits, pick all A commits, do not pick the merge commit (should be skipped by git automatically) 

(同じコースのBのために、別の新しいリポジトリに)。

関連する問題