gitの管理ディレクトリを外出にする方法

2018.12.10

はじめに

git の管理ディレクトリ(.git)とソースのディレクトリを別々のディレクトリにする方法を紹介します。

管理ディレクトリが同じことの弊害

.git ディレクトリがソースと同じディレクトにあると grep や find を使ってディレクトリ内を検索するとき、除外設定をしなければならなかったりと面倒です。
また、.git ディレクトリを他の人や一部の人に見せたくないシーンもあると思います。

管理ディレクトリを外に出す方法

リポジトリの作成から行う場合は、下記のコマンドを実行すると、--separate-git-dir=に指定したディレクトリに管理ディレクトリを置くことができます。

git init --separate-git-dir=/path/to/repository

ソースコードと同じディレクトリに.gitが作成されますが、これはディレクトリではなくファイルになっています。
ファイルの中身にディレクトリの位置が記載されています。

cat .git
gitdir: /path/to/repository

github などからgit cloneしてくるときにも、このオプションを使うことができます。

git clone https://url --separate-git-dir=/path/to/repository

dropbox などのクラウドストレージを利用するときにも、活用できそうな方法です。