Gitで特定のディレクトリのみチェックアウトする方法

  • 2019年1月25日
  • 2019年1月25日
  • 未分類

Gitリポジトリは扱いやすさの面で、基本的に一つのプロジェクトに対して一つのリポジトリにすべきだと思っています。(一つのリポジトリに複数のプロジェクトを入れてしまうと管理がちょっと面倒くさくなる。)

ただ、やむをえない事情で複数のプロジェクトを一つのリポジトリに入れておかないといけない場合が出てくることがあります。(使用できるリポジトリ数に制限がある場合など)

そういう時にGitリポジトリの一部をチェックアウトできると便利ですよね。

今回は、Gitで一部のディレクトリだけをチェックアウトする方法をご紹介します。

今回は、操作はCUI上ですべて行います。

まず、目的のGitローカルリポジトリ内の”.git”が存在するディレクトリがカレントディレクトリになるように移動します。

例:

cd path/to/gitdir #.gitがあるディレクトリに移動
ls -a #ディレクトリの中身を表示
. .. hoge huga .git piyo 

次に、下記のコマンドで”.git/info/sparse-checkout”ファイルを作ります。

vi .git/info/sparse-checkout

エディタで下記のように編集します。

/hoge

/hogeのみをチェックアウト

あるいは

!/huga
!/piyo

/huga
/piyo
を除外

というように指定します。

この後、

git read-tree -m -u HEAD

とすると、指定されたディレクトリのみが残ります。

ls -a
. .. hoge .git

こうしておけば、リポジトリが同じでも、自分が触っていないところを誤って変更したり削除してしまったり、ということも防ぐことができて便利です。

お試しあれ。

参考サイト:
Gitで特定のディレクトリだけcloneする方法 – Qiita

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG