gitの管理ディレクトリを外出にする方法
はじめに
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 などのクラウドストレージを利用するときにも、活用できそうな方法です。