私たちのサーバーには、プロジェクトごとに、/repository と /htdocs の 2 つのフォルダーがあります。Htdocs は、ベア リポジトリであるリポジトリのクローンです。すべての開発者は、作業するための独自のリポジトリ クローンを持っています。htdocs は、プロジェクト マネージャーにプロジェクトをプレビューするためにあります。
更新が開発者からプッシュされたときに htdocs を自動的に更新する post-receive フックを設定したいと思います。
post-receive フックには次のようなものがあります。
#!/bin/sh
GIT_WORK_TREE=../htdocs git pull origin master
ただし、プッシュすると、次のエラーが表示されます。
誰が何が問題なのか教えてもらえますか?
ご了承ください
#!/bin/sh
GIT_WORK_TREE=../htdocs git checkout -f
動作しますが、これはちょっと遅いです (プロジェクトがかなり大きいため)。また、誰かが htdocs にいくつかのバグ修正を行った可能性もありますがcheckout -f
、それらがコミットされていないと失われてしまう可能性があります。