Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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する方法

kuriya
laravelとかvue.jsちょっとできる。
http://protagram.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした