この「チュートリアル」を使用してDSP環境をセットアップしました:http://toroid.org/ams/git-website-howto(はい、Tはありません)。
私のワークフローはとても簡単です:
- ローカルで開発する(D)
- いくつかのことをコミットする
- より多くのことをコミットする
- ステージング(およびGithub)にプッシュ(S)
- ステージングで新しいコードをテストする
- 本番環境へのプッシュ(P)
私のコードには、私のコードによって縮小されてから1つのファイルに保存されるCSSファイルが含まれていますall.css
。ローカルでは、このオプションをオフにしているのでall.css
、CSSを変更するたびに手動で削除する必要はありません。ステージングと本番の両方で、できるだけ早くキャッシュする必要があります(したがってall.css
、別々のCSSファイルから作成します)。
問題は、プッシュするたびに、変更を確認する(そして適切にテストする)ために削除するall.css
(そしてall.js
-まったく同じストーリー)必要があることです。
チュートリアルからpost-receive
、変更を特定のフォルダー(Apacheがコードを読み取る場所)にチェックアウトするフックを作成しました。
私の現在のpost-receive
フック:
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
再利用して(beingと)$GIT_WORK_TREE
内の2つのファイルを削除したいのですが、できません...次の行にvar$GIT_WORK_TREEがありません。$GIT_WORK_TREE
www/all.css
www/all.js
それで私はそれをこれに変更しました、しかし私はそれが好きではありません、特に私が将来それでもっとやりたいならば:
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
rm /var/www/www.example.org/www/all.css
rm /var/www/www.example.org/www/all.js
$GIT_WORK_TREE
このように再利用されません。
私が試したがうまくいかないこと:
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
rm $GIT_WORK_TREE/www/all.css
rm $GIT_WORK_TREE/www/all.js
rm:ファイルが存在しないなど(/www/all.css)(
$GIT_WORK_TREE
空)
GIT_WORK_TREE=/var/www/www.example.org
git checkout -f
致命的:この操作は作業ツリーで実行する必要があります
GIT_WORK_TREE=/var/www/www.example.org
cd $GIT_WORK_TREE
git checkout -f
致命的:gitリポジトリ(または任意の.....)にありません
私の問題は、GITの仕組みと同様にBashの仕組みにもあると思います=)