2012-05-01 10 views
3

私はこのquestionを見ましたが、答えは最初のリポジトリの分割前に移動されたファイルの履歴を保存することについては論じません。リポジトリを分割するときに、移動したファイルのgitバージョン履歴を保存することはできますか?

私が興味を持っているのは、最初は1つのレポがあり、いくつかのファイルはリファクタリングのためにこのレポでさまざまな時間に移動しています。ここでは、このリポジトリからファイルのサブセットを選択して別のリポジトリを作成することで、この初期リポジトリを分割しています。 --subdirectory-filter引数を使用してfilter-branchを実行すると、新しいリポジトリを残りのファイルに関連する履歴のみに制限することができます。
しかし、いくつかの実験の後、これはファイルが最後に移動される前に作成されたファイルの履歴を破壊するように見えます(つまり、git log --followにはファイル名の変更の記録がなくなります)。

filter-branchコマンドを実行するときgit blamegit logはまだファイルの完全な履歴をたどることができるように、これを回避する方法はありますか、移動または名前が変更されているファイルの履歴を保持するために他の方法はありますか?

+0

なぜ、 'git clone'でリポジトリを作成し、それぞれから欲しがらないファイルをワイプしないのですか? –

+1

これについてはどうすればいいですか:http://help.github.com/remove-sensitive-data/ –

+0

私はあなたの質問に「ファイルの履歴を保存する」と読んでいたので、各ファイルの履歴を保存したいと思ったのです。 :-) –

答えて

0

大きなオリジナルのリポジトリをそのまま使用し、必要なものを含む2つの新しいリポジトリを作成し、gitグラフトを使用して元のリポジトリに接着します。

この方法では、履歴全体を2つに分けてコピーする必要はなく、履歴をまったく必要としない人は複製する必要はありません。

関連する問題