質問: お世話になります。 これまで意味をよく分からずに公開サーバにて * ベアリポジトリ(git init --bare --shared /path/to/hogehoge.git)を作成 * post-receiveを編集(vi .git/hooks/post-receive) ``` #!/bin/sh cd /path/to/my-website git --git-dir=.git pull ``` という手順で公開サーバを作ってきました。 ふと思ったのは、ベアリポジトリも、my-websiteのディレクトリ(リポジトリ)も git管理されているなら、中間のベアリポジトリは必要ないのでは、と思ったのです。 これまでネット上の情報を参考に、上記の手順を取ってきたのですが ベアリポジトリはやはり必要なのでしょうか。 またその場合に多くの方が上記の手順を取っているのは、サイトを公開する以外の将来性 (例えばgit push時にテストを自動起動したり)を考慮してのことなのでしょうか。 よろしくお願いします。
回答: ベアリポジトリがないとリモートリポジトリがない状況なので git pull (git push) ができません。gitのある時点のコミットをウェブサイトに正確にコピーしたいなら、ベアリポジトリを用意すべきです。 もし、my-websiteにgitリポジトリのディレクトリごとコピーする形でいいならそれでもいいんですが、リポジトリで管理しないファイルや編集中のファイルまで間違ってコピーされてしまうリスクがあります。