2010-11-23 18 views
5

私は多くの履歴を持つGitリポジトリを持っています。私はこれを他の人が利用できるようにしたいと思いますが、その中のディレクトリの1つには配布できない独自のコードが含まれています。そのディレクトリを除外したリポジトリ(履歴あり)のクローンを作成する方法はありますか?サブディレクトリを除いたGitリポジトリのクローン

ボーナス:以前のメインリポジトリで作成された「パブリック」コードの変更をクローンにマージすることもできます。

答えて

1

各コミットハッシュを書き換えるつもりがない限り、これを行うことはできません。リポジトリの履歴を書き換えてそのディレクトリを除外する場合は、リポジトリの投稿者またはコンシューマの誰かと調整する必要があります。

ツリーを調整するには、filter-branchが必要です。スクリプトは、最初にリポジトリ内のサブモジュールであるリポジトリを作成する必要があります。変更があるときはいつでも、その内部リポジトリにコミットする必要があり、そのレベルでコミットするサブモジュール参照を親に調整する必要があります。

これでリポジトリをパブリッシュできるようになりました。誰もgitサブモジュール操作を行うことはできませんが、それはあなたが望むものです。

関連する問題