こんにちは!!最近、かなりgit を使う場面が増えてきたので、色々git に苦しみながら、try and error を重ねていってます。普段git clone する時や git pull する時って、全部のファイルをディレクトリを取得することが多いと思います。けれども、一部のファイルのみを取得したいときってありますよね??
前提
- git アカウントをお持ちであること
- git config の設定が完了していること
- git init を既に実行していること
sparse-checkout の設定
sparse checkout をtrue にする
git config core.sparseCheckout true
# 設定が反映されているかを確認できます
git config -l
これをすることによって、sparseCheckout の設定をローカル内で適用させることができます。今回はglobal に適用させることは目的としておらず、その作業ディレクトリのみで適用させていきます。
sparse checkout のリストを確認
git sparse-checkout list
現在はなにも設定していないので、何も表示されないと思います
これから、取得したいファイルの設定を行います
# test.html を取得したい場合
git sparse-checkout set path/to/your/sparse-checkout/test.html
#複数ファイルを取得したい場合
git sparse-checkout set path/to/your/sparse-checkout/test.html path/to/second/sparse-checkout/second.txt
一つのファイルのみ取得したい場合は、一つのパスとファイル名をコマンドで設定します。複数の時は複数のファイルとそのパスを設定してあげます。
設定が適用されているかを確認します
git sparse-checkout list
=> 想定される表示(下記ファイルとそのパス)
path/to/your/sparse-checkout/test.html
path/to/second/sparse-checkout/second.txt
実際に pull してみるとこの二つのファイルが取得できると思います!!
まとめ
もし全部のファイルを編集しないけど、一部のファイルを編集したいとか思っている人がいれば、ぜひ使ってみてください。この例ではファイルを取得しましたが、ディレクトリでも対応可能なようです。
参考資料