17

gitで元のブランチのサブセットのみを複製する方法はありますか?

例えば

私は次のフォルダ構造を持っています:

A
| _ B
| _ C
| _ D

そしてクローンの後、私は欲しいです:

A
| _ C
| _ D

このフローを使用してアプリケーションをデプロイしたいと思います。

  • リポジトリの一部のみを取得し、不要な開発ファイルを無視することで、クローンを高速化するため。
  • セキュリティ上の理由から、本番環境にいくつかのファイルを入れたくありません。

何かアドバイス?

4

3 に答える 3

25

Git 1.7以降、sparse-checkoutと呼ばれるものを使用して、必要なことは可能です。

ここに良い説明があります

于 2016-11-22T11:44:12.477 に答える
1

コメントが示唆するように、パスの一部を複製することはできません。Subversion で使用されるものなど、さまざまなソース管理パラダイムに慣れている場合、これは最初は直感的ではないように思えるかもしれません。それができない理由は、git がツリー全体のスナップショットを保存するためです。したがって、浅いクローンを取得できます。つまり、ある時点までの最近の履歴のみを取得できます。これは、あなたが求めている垂直方向のものではなく、水平方向のスライスまたはカットオフに似ています.

必要なものを取得する最善の方法は、サブモジュールを使用することです。1 つのリポジトリにすべてが既にある場合は、このパラダイムで新たに開始するか、フィルター ブランチを使用してリポジトリを複数のリポジトリに分割する必要があります。すべてのリポジトリで空のコミットになってしまうため、これも注意が必要です。それらを取り除くと、サブモジュールの適切なコミットを親リポジトリに結び付けるために、いくつかのトリッキーなフォローアップ フィルター ブランチが必要になります。

http://git-scm.com/bookのサブモジュールに関する章をご覧ください。

于 2012-11-14T09:52:47.063 に答える