1. ホーム
  2. git

[解決済み] git リポジトリから新しいリポジトリへ、履歴を維持したまま単一のディレクトリを移動するにはどうすればよいですか?

2022-10-17 15:53:05

質問

私は、別々のディレクトリに複数のプロジェクトを含む git リポジトリを継承しました。私は、リポジトリを新しい個々のリポジトリに分割し、各プロジェクトに1つずつ、そしてマスターリポジトリにサブモジュールとしてプロジェクトを含ませたいと思います。可能であれば、個々のプロジェクトのリビジョン履歴を維持しながら、このすべてを行いたいと考えています。

私は各プロジェクトのリポジトリをクローンし、毎回他のすべてのプロジェクトを削除することができましたが、各新しいプロジェクトのリポジトリにクローンされた履歴を持つことを避けるために、より良い方法があるのでしょうか?

どのように解決するのですか?

あなたは git filter-branch を使って、プロジェクトの履歴を書き換えることができます。ドキュメントより。

としてリポジトリを書き換えるには をプロジェクトルートとして書き換えることです。 他の履歴はすべて破棄します。

git filter-branch --subdirectory-filter foodir -- --all

レポをいくつかコピーして、分割したい各サブディレクトリに対してそれを行ってください。