1. ホーム
  2. ギット

[解決済み】最初にリポジトリ全体をチェックアウトせずに、スパースチェックアウトを行うことは可能でしょうか?

2022-04-18 05:30:21

質問

チェックアウトに何時間もかかる、非常に多くのファイルを含むリポジトリで作業しています。Git が疎なチェックアウトをサポートするようになったので、この種のリポジトリで Git がうまく機能するかどうか調べているのですが、私が見つけたどの例も次のような感じです。

git clone <path>
git config core.sparsecheckout true
echo <dir> > .git/info/sparse-checkout
git read-tree -m -u HEAD

この一連のコマンドの問題は、オリジナルのクローンもチェックアウトを行うことです。オリジナルのcloneコマンドに-nを付けると、read-treeコマンドは以下のようなエラーになります。

エラーが発生しました。Sparse checkout leaves no entry on working directory(疎なチェックアウトは作業ディレクトリにエントリを残さない

すべてのファイルをチェックアウトせずに、スパースチェックアウトを行うにはどうすればよいですか?

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

git 2.28で動作します。

git clone --filter=blob:none --no-checkout --depth 1 --sparse <project-url>
cd <project>
git sparse-checkout init --cone

クローンするファイルやフォルダーを指定する

git sparse-checkout add <folder>/<innerfolder> <folder2>/<innerfolder2>
git checkout