ベアリポジトリーとノンベアリポジトリー
リポジトリーには、使用用途により以下の2種類があります。
- ベアリポジトリー
- ノンベアリポジトリー
リポジトリーのクローンについて
すでにあるリポジトリーを自分の環境にコピーすることを、「クローン」と表現します。言い換えれば、リポジトリーのコピーです。
ベアリポジトリー(bare repository)
「ベアリポジトリー」は、他のユーザーと共有するリポジトリーです。複数のユーザーと共同して開発を行う場合など、他のユーザーと共有するリポジトリーを作成する時は、「ベアリポジトリー」を作成します。
リポジトリーのクローン
他のユーザーが、共有されたリポジトリーを利用する時は、「ノンベアリポジトリー」としてクローンします。「ベアリポジトリー」から「ノンベアリポジトリー」を作成します。
「ベアリポジトリー」から「ベアリポジトリー」をクローンすることもできます。
ワーキングディレクトリーがない
「ベアリポジトリー」は「ノンベアリポジトリー」と異なり、「ワーキングディレクトリー」が存在しません。「ベアリポジトリー」の「スナップショット」からプロジェクトのファイル群を「チェックアウト」することはできません。
「スナップショット」から取り出したプロジェクトのファイル群を配置する「ワーキングディレクトリー」が存在しないためです。
ユーザーは、「ベアリポジトリー」から「ノンベアリポジトリー」をクローンし、作業を開始します。
ノンベアリポジトリー(non-bare repository)
「ノンベアリポジトリー」は、ユーザーが作業を行うリポジトリーです。自分しか利用しないリポジトリーを作成する時や、「ベアリポジトリー」をクローンして作業を行う時は、「ノンベアリポジトリー」を作成します。
他のユーザーとリポジトリーを共有することはできません。
リポジトリーのクローン
「ノンベアリポジトリー」を「ノンベアリポジトリー」としてクローンすることはできますが、クローン元の「ノンベアリポジトリー」に、自分の環境で行ったプロジェクトのファイル群の変更を反映することはできません。(プッシュができない)「ノンベアリポジトリー」を「ベアリポジトリー」としてクローンすることも可能です。
その場合、他のユーザーと共有しないリポジトリーから、他のユーザーと共有するリポジトリーを作成することができます。
ワーキングディレクトリーがある
「ノンベアリポジトリー」は「ベアリポジトリー」と異なり、「ワーキングディレクトリー」が存在します。「ノンベアリポジトリー」の「スナップショット」からプロジェクトのファイル群を「チェックアウト」することができます。
「スナップショット」から取り出したプロジェクトのファイル群は、「ワーキングディレクトリー」に配置されます。