1. ホーム
  2. git

[解決済み] Git リポジトリのサブディレクトリのみをクローンする方法を教えてください。

2022-03-17 07:42:33

質問

Git リポジトリのルートに、2 つのサブディレクトリがあります。

/finisht
/static

これが SVN , /finisht は1か所でチェックアウトされたのに対し /static というように、他の場所でチェックアウトされていました。

svn co svn+ssh://[email protected]/home/admin/repos/finisht/static static

Gitでこれを行う方法はありますか?

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

EDIT : Git 2.19 では、ようやくこのようなことが可能になりました。 答え .

その答えにupvoteすることを検討する。

注:Git 2.19では、クライアント側のサポートのみが実装されており、サーバー側のサポートはまだありません。したがって、ローカルリポジトリをクローンする場合にのみ機能します。また、GitHubなどの大規模なGitホスティングは、実際にはGitサーバーを使用しておらず、彼ら自身の実装を使用しているため、Gitサーバーでサポートが表示されても、それが自動的にGitホスティングで動作することを意味しないことに注意してください。(逆に、彼らはGitサーバーを使用していないので、Gitサーバーに現れる前に、彼ら自身の実装でより速く実装することができます)。


いいえ、それはGitでは不可能です。

このようなことをGitに実装するのは大変な作業ですし、クライアント側のリポジトリの整合性が保証されなくなることを意味します。もし興味があれば、gitメーリングリストの "sparse clone" と "sparse fetch" に関する議論を検索してください。

一般に、Git コミュニティでは、常に独立してチェックアウトされる複数のディレクトリがある場合、それらは実際にはふたつの異なるプロジェクトであり、ふたつの異なるリポジトリで暮らすべきだという見解があります。これらのディレクトリをひとつにまとめるには Git サブモジュール .