ベアとノンベアの違い
今回はリポジトリの概念であるベアとノンベアについて説明して行きます。
ベアリポジトリ
ワーキングディレクトリを持たない、Gitの更新情報だけを持っているリポジトリ。
ノンベアリポジトリ
ワーキングディレクトリを持つリポジトリ。
つまりベアリポジトリはGitの更新管理をするための物で、ノンベアリポジトリは作業用のフォルダやファイルなどの情報を持つ物ということになります。
ベアリポジトリとノンベアリポジトリの仕組み
ベアリポジトリ集中管理型
ベアとノンベアの仕組みは上記の画像の通り、ローカルからのプッシュは全てリモートのベアリポジトリに対して行い、その後ノンベアリポジトリがベアリポジトリからプルして情報を更新するという仕組みみたいです。
ノンベアリポジトリ管理型
作業PCが一つだけで複数人で開発しないなら、上記のようにリモートにノンベアリポジトリを作り作業することができます。
ただ実際にやると警告が出るみたいで、またGitにはファイルロック機能がないので、複数人で使用する場合はデータに不整合が生まれるので、基本的にはベアとノンベアを使い分けてGitを管理した方が良いみたいです。
ベアリポジトリとノンベアリポジトリの切り替え
各当のノンベア・ベアリポジトリのあるディレクトリまで移動したとした場合
//non-bare repositoryからbare repositoryに変換
git config core.bare true
//bare repositoryからnon-bare repositoryに変換
git config core.bare false
参考
https://www.nekotricolor.com/entry/theory-of-bare-and-non-bare-repository-manage-wordpress-themes-with-git
https://qnighy.hatenablog.com/entry/2017/02/25/154752