このhttp://joemaller.com/990/a-web-focused-git-workflow/に似た git ワークフローをセットアップしました。基本的に、裸のリモートリポジトリに報告するローカルリポジトリがあります。次に、Web 経由でアクセスできる展開ディレクトリを、同じベア リポジトリにもレポートするリポジトリとして設定します。
ローカルの開発者が変更をリモート リポジトリにプッシュすると、フックが Web フォルダに入り、リポジトリからプルされるように git フックが設定されているため、常に最新かつ最高の状態になります。すべてがかなりうまく機能します。
私の核心は、GIT を必要とせず、FTP 経由で Web フォルダーにファイルをアップロードしたいだけの人になだめようとしているということです。ファイルが書き込まれたり、変更されたり、移動されたり、削除されたり、作成されたりするたびに、web フォルダーに inotifywait モニターを設定することで、これが機能するようになりました...このための私の bash スクリプトは次のとおりです。
!/bin/sh
inotifywait @*.swp -rm -e modify,move,create,delete,delete_self,unmount /var/www/html/mysite | while read
do
now=$(date +"%m_%d_%Y:%T")
echo $now >> temp.txt
cd /var/www/html/mysite || exit
git add --all
git commit -m "ftp update $now" -a
done
これも実際に機能しますが、私が観察しているのは、web フォルダー内のファイルを変更して inotifywait をトリガーすると、while ループに陥っていることです。誰でもこれについて何か考えがありますか?理想的には、不要な git コマンドを継続的に実行する while ループに陥らないようにすることです。
ありがとう!