65
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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!!

 参考サイト

65
67
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
65
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?