ちょっと厨二っぽいSEのブログ

プログラミングとかのシステム備忘録など

【Git】特定のフォルダのみを操作対象にする

同じシステムの改修が何年も続くと、Gitリポジトリが重くなっていきます。
さらに同一のリポジトリに複数のシステムが乗っておりPullするだけでヒドイ状態・・なんてことがプロジェクトによってはありえますよね。(最近経験した話)

そんな時は特定フォルダのみを操作対象にして動作を軽くしましょう。
sparsecheckout という機能を使うことで、対象フォルダ以外の存在を隠し、動作を高速にすることが出来ます。

git config core.sparsecheckout true
echo 対象フォルダのPATH/ > .git/info/sparse-checkout
git read-tree -m -u HEAD

対象リポジトリに対して行います。
まず、sparsecheckoutを有効にします。
その後、以下のファイルに、必要なフォルダを相対Pathで記述します。
.git/info/sparse-checkout 
Windowsだとしても / 区切りで記述してください。

これで準備は完了です。以下のコマンドを実行すると、不要なファイルはいなくなります。

git read-tree -m -u HEAD

.git/info/sparse-checkoutには改行区切りで複数のフォルダを記載できます。

echo 追加で表示させるPATH/ >> .git/info/sparse-checkout