250 GB の git リポジトリ内の少数のディレクトリにアクセスする必要があります。明らかに、全体をチェックアウトすると、時間とディスク容量が大幅に減少します。ただし、目的のディレクトリのみを取得する方法に対する有効な解決策が見つかりません。全体を複製してからスパース チェックアウトを有効にすることはできますが、それではポイント全体が無効になります。
私はこれが何度も尋ねられたことに気づきました:
Git リポジトリのサブディレクトリのみをクローンするにはどうすればよいですか? 最初にリポジトリ全体をチェックアウトせずにスパース チェックアウトを行うことは可能ですか?
しかし、これらの(または他の: http://jasonkarns.com/blog/subdirectory-checkouts-with-git-sparse-checkout/)ソリューションはどれもうまくいきません。
Fedora 25 マシンで git 2.9.3 を実行しています。私は開始するために次のことを試みましたが、レポ全体で終わります。最後の行の -f を -n に変更しても効果はありません。
mkdir <repo>
cd <repo>
git init
git remote add -f origin <url>
私もこれを無駄に試しました:
mkdir myrepo
cd myrepo
git init
git config core.sparseCheckout true
git remote add -f origin git://... #at this point, the whole repo comes down
echo "path/within_repo/to/desired_subdir/*" > .git/info/sparse-checkout
git checkout [branchname] # ex: master
(git remote add 行の前に echo 行を実行しても同じことが起こります。)
確かに、これには実際に機能する簡単な解決策がありますよね?
編集:完全を期すために、これはコメントに基づいて現在行っていることです。まだ同じ問題があります。
mkdir myrepo
cd myrepo
git init
git config core.sparseCheckout true
echo "path/within_repo/to/desired_subdir/*" > .git/info/sparse-checkout
git remote add origin git://...
git pull #at this point, the whole repo comes down