私は最近、毎日のワークフローで Git を使い始めました。
VPS の website.git というフォルダーの下にベア オンライン リポジトリ (git init --bare --shared) があり、必要に応じてローカルからプルの変更をプッシュすると、まったく問題なく動作します。今、ローカル リポジトリにデータを保存するときに、変更をオンラインにプッシュしますが、ファイルを public_html フォルダーにも手動で移動する必要があります。
http://toroid.org/ams/git-website-howtoで説明されているように git フックを使用してみましたが、機能していないのはアクセス許可です。
public_html フォルダーと website.git フォルダーの両方が www-data:developers によって所有されていますが、post-receive フックが作動すると、古いファイルのリンクを解除できず、新しいファイルは自動的に jack:jack によって所有されます。ユーザー I SSH でサーバーに接続します。
私のhooks/post-receiveファイルは実行可能で、以下が含まれています:
#!/bin/sh
GIT_WORK_TREE=/home/web/website.com/public_html git checkout -f
そして、私のオンラインレポはに保存されています
/home/web/website.com/website.git
私は何を間違っていますか?