LoginSignup
64
66

More than 5 years have passed since last update.

Gitで特定のディレクトリだけcloneする方法

Last updated at Posted at 2017-06-28

gitで複数のプロジェクトファイルを管理していた場合などに、特定のディレクトリ配下だけcloneしたい場合などあると思います。そんな時に便利なgitの使い方があったので紹介します。

git cloneする

git clone リポジトリのURL

※既存でgitリポジトリがある場合スキップ

configを編集する

.gitのあるディレクトリに移動して

git config core.sparsecheckout true

このコマンドを実行することで
.git/configのファイルにsparsecheckout = trueが追加される。

checkoutしたいディレクトリを指定

.git/info/の配下にsparse-checkoutというファイルを追加する。

vi .git/info/sparse-checkout

checkoutしたいディレクトリのパスを記述する。
ちなみに!パスとすることで除外することもできるようです。
例)sparse-checkout

/html
!/html/css

こんな感じのはず。

設定をリポジトリに反映させる

git read-tree -m -u HEAD

これで指定したディレクトリのみがリポジトリにある状態になったかと思います。

普通にgit pullするだけでもいけそうな気がする

 補足

branchを変更したい場合

複数branchがあったとして、git branchをしても
git read-tree -m -u HEADを実行した時のbranchしか表示されない。

なので.git/configからbranchを書き換える必要がある。

[branch "master"]
remote = origin
merge = refs/heads/master

こんな感じで書いてある箇所があるので、このケースであればmasterと書いてある箇所を書き換えれば良い。
こんなことをしなくても


git branch --set-upstream-to=origin/ブランチ名 ブランチ名

これでブランチが追加される。

それでもbranchが表示されないかもしれないですが、
git checkout ブランチ名でいけると思います。
そしてgit pull!!

 参考サイト
* Git 特定のフォルダのみcloneする
* git sparse checkout で一部のサブディレクトリだけを clone せずに pull/checkout する
* Gitで他のリポジトリから一部のファイルのみをcloneする方法

64
66
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
66