Я использовал этот «учебник» для настройки среды DSP: http://toroid.org/ams/git-website-howto (Да, я не у меня есть T).
Мой рабочий процесс очень прост:
Мой код содержит файлы CSS, которые минимизированы моим кодом, а затем сохраняется в 1 файл: all.css
. Я отключил эту опцию локально, поэтому мне не нужно вручную удалять all.css
каждый раз, когда я меняю свой CSS. И в промежуточной, и в производственной среде они должны кэшироваться как можно скорее (поэтому создайте all.css
из отдельных файлов CSS).
Проблема в том, что каждый раз, когда я нажимаю, мне нужно удалить all.css
(и all.js
- точно такая же история), чтобы увидеть изменения (и правильно протестировать).
Из учебника я сделал пост-получение
], который проверяет изменения в определенной папке (где Apache читает код).
Моя текущая ловушка post-receive
:
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
Я хочу повторно использовать $ GIT_WORK_TREE
чтобы удалить два файла из $ GIT_WORK_TREE
( www / all.css
и www / all.js
), но я не могу ... Нет var $ GIT_WORK_TREE в следующей строке.
Итак, я изменил его на это, но мне это не нравится, особенно если я хочу сделать с ним больше в будущем:
#!/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: файл не существует e tc (/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 (или любом другом .. ...)
Думаю, моя проблема в том, как работает Bash, как и в том, как работает GIT =)