Gitのsparse checkoutを利用すると特定のディレクトリやファイルのみpullすることが可能になります。
手順
空のローカルリポジトリを作成
git init
sparse checkoutの有効化
git config core.sparseCheckout true
有効化されると.git/config
にsparseCheckout = true
が追加されます。
cat .git/config
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
sparseCheckout = true
設定ファイルの作成
git sparse-checkout init
上記コマンドを実行すると.git/info/sparse-checkout
が作成されます。
このファイルで取得したいディレクトリやファイルを指定します。
※.gitignore
と同じ構文が使用できます。
cat .git/info/sparse-checkout
/*
!/*/
デフォルトでルートにある全てのファイルを追加、ディレクトリを拒否しています。
取得したいディレクトリの追加
git sparse-checkout add /app/
vi
コマンド等で.git/info/sparse-checkout
を直接編集してもOKです。
リモートリポジトリの登録
git remote add origin git@github.com:usename/example.git
取得したいブランチ名を指定してpull
git pull origin main