No Programming, No Life

プログラミング関連の話題や雑記

Gitの普通のリポジトリとベアリポジトリの違いについて

Gitでリポジトリを作成する場合は以下の二種類がある。


git init


git init --bare

で、ベアリポジトリってのは、ワークツリーを持たないリポジトリだけで構成されたリポジトリ*1ってことなんですが、じゃあ、普通に作ったリポジトリと何が違うの?っていう素朴な疑問があった。

結果

で、調べてみた結果、大きな違いはたった一つだけだった。*2

[core]
	bare = false

がtrueかfalseかの違いのみだった。bare = true になっているとワーキングツリーを持てないってこと以外は本当にほぼ一緒のよだ。その証拠にgit cloneなどもきちんとできるみたい。


ものすごくシンプルな設計だなぁとまた一つ感心した。

*1:hoge.gitみたいに.gitまでをフォルダ名にするのが通例

*2:他にも細かい違いはあるんだけど今回は割愛。