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

takahashi 著者:takahashi

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

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

  • この記事いいね! (0)

著者について

takahashi

takahashi administrator

Webエンジニア。 趣味で自宅サーバーを稼働中。 ファンタジーが好き。