は、あなたがリポジトリを持っているとしましょう*名前を変更します。モジュールを独立させるためにコードをリファクタリングする。 megaProjectディレクトリのファイルは、自分のディレクトリに移動します。 moveを強調 - これらのファイルの履歴は保持されます。GITスプリットリポジトリディレクトリ保存*動きは/歴史
myCode/megaProject
myCode/moduleA
myCode/moduleB
これらのモジュールを自分のGITリポジトリに移動したいとします。独自のmegaProjectだけでオリジナルを残してください。
myCode/megaProject
newRepoA/moduleA
newRepoB/moduleB
filter-branch
コマンドは、これを行うためにdocumentatedされますが、ファイルがターゲットディレクトリの外に移動されたとき、それは歴史に従っていません。そのため、履歴は、ファイルが新しいディレクトリに移動されたときに開始され、古いmegaProjectディレクトリにあった履歴は保存されません。
ターゲットディレクトリに基づいてGIT履歴を分割し、このパス以外の履歴に従う方法 - これらのファイルに関連するコミット履歴のみを残し、それ以外は何も残しませんか?
他の多くの答えは、一般的にレポを分割することに重点を置いていますが、分割したり、移動履歴に従ったりすることは言及していません。
研磨場合はクールに見えますが、ASIS適用された場合には動作しません。 – Vasaka