Я использовал этот «учебник» для настройки среды DSP: http://toroid.org/ams/git-website-howto (Да, у меня нет буквы T).
Мой рабочий процесс очень прост:
- Развивайся локально ( D )
- Совершите несколько вещей
- Совершите больше вещей
- Push to Staging (и Github) ( S )
- Проверка нового кода на этапе
- Push to Production ( P )
Мой код содержит файлы CSS, которые уменьшены моим кодом и затем сохранены в 1 файле: all.css
. Локально я отключил эту опцию, поэтому мне не нужно вручную удалять all.css
каждый раз, когда я меняю свой CSS. И в Staging, и в Production они должны кэшироваться как можно скорее (поэтому создайте 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
Я хочу повторно использовать $GIT_WORK_TREE
, чтобы удалить два файла в $GIT_WORK_TREE
(то есть www/all.css
и www/all.js
), но я не могу ... В следующей строке нет переменной $ 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: файл не существует и т. Д. (/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 =)