Отредактировано: (увидев ответ Люка)
Я ищу разработку веб-сайта, и вся работа будет выполняться удаленно (без локального сервера разработки). Причина в том, что у моей компании общего хостинга a2hosting есть особая конфигурация (symfony, mysql, git), которую я не хочу тратить на дублирование, когда я могу просто использовать ssh и разрабатывать удаленно или с помощью функций удаленного редактирования netbeans.
У меня вопрос, как я могу использовать git для разделения моего сайта на три области: live, staging и dev.
Вот моя начальная мысль:
public_html (живой сайт и git-репо)
тестирование: зеркало сайта, используемое для визуальных тестов (полное git-репо)
dev / ticket #: git-ветки public_html, используемые для функций и исправлений ошибок (полное git-репо)
Контроль версий с помощью git:
Начальная настройка:
cd public_html
git init
git add *
git commit -m ‘initial commit of the site’
cd ..
git clone public_html testing
mkdir dev
Разработка:
cd /dev
git clone ../testing ticket#
all work is done in ./dev/ticket#,
then visit www.domain.com/dev/ticket# to visually test
make granular commits as necessary until dev is done
git push origin master:ticket#
if the above fails:
merge latest testing state into current dev work: git merge origin/master
then try the push again
mark ticket# as ready for integration
процесс интеграции и развертывания:
cd ../../testing
git merge ticket# -m "integration test for ticket# --no-ff (check for conflicts )
run hudson tests
visit www.domain.com/testing for visual test
if all tests pass:
if this ticket marks the end of a big dev sprint:
make a snapshot with git tag
git push --tags origin
else
git push origin
cd ../public_html
git checkout -f (live site should have the latest dev from ticket#)
else:
revert the merge: git checkout master~1; git commit -m "reverting ticket#"
update ticket# that testing failed with the failure details
Моментальные снимки:
Каждый основной спринт развертывания должен иметь стандартное имя и отслеживаться.
Метод: тег git
Соглашение об именах: TBD
Возврат сайта к предыдущему состоянию
если что-то пойдет не так, вернитесь к предыдущему снимку
и отладить проблему в dev с новым билетом #. После исправления ошибки следуйте
процесс развертывания снова.
Мои вопросы:
1-Имеет ли смысл этот рабочий процесс, если нет, какие-либо рекомендации
2-Правильно ли подходит мой подход к возврату или есть лучший способ сказать «вернуться к перед фиксацией х»
Спасибо, что нашли время прочитать этот ОЧЕНЬ длинный пост:)