Отредактировано: (после просмотра ответа Люка)
Я ищу разработку веб-сайта, и вся работа будет выполняться удаленно (нет локального сервера разработки ). Причина этого в том, что моя компания общего хостинга a2hosting имеет определенную конфигурацию (symfony, mysql, git), которую я не хочу тратить время на дублирование, когда я могу просто ssh и разрабатывать удаленно или с помощью функций удаленного редактирования netbeans.
Мой вопрос в том, как с помощью git разделить мой сайт на три части: live, staging и dev.
Вот моя первоначальная мысль:
public_html (действующий сайт и репозиторий git)
Я хочу разработать веб-сайт, и вся работа будет выполняться удаленно (без локального сервера разработки). Причина этого в том, что моя компания общего хостинга a2hosting имеет определенную конфигурацию (symfony, mysql, git), которую я не хочу тратить время на дублирование, когда я могу просто ssh и разрабатывать удаленно или с помощью функций удаленного редактирования netbeans.
Мой вопрос в том, как с помощью git разделить мой сайт на три части: live, staging и dev.
Вот моя первоначальная мысль:
public_html (действующий сайт и репозиторий git)
Я хочу разработать веб-сайт, и вся работа будет выполняться удаленно (без локального сервера разработки). Причина этого в том, что моя компания общего хостинга a2hosting имеет определенную конфигурацию (symfony, mysql, git), которую я не хочу тратить время на дублирование, когда я могу просто ssh и разрабатывать удаленно или с помощью функций удаленного редактирования netbeans.
Мой вопрос в том, как с помощью git разделить мой сайт на три части: live, staging и dev.
Вот моя первоначальная мысль:
public_html (действующий сайт и репозиторий git)
У меня вопрос, как с помощью git разделить мой сайт на три части: live, staging и dev.
Вот моя первоначальная мысль:
public_html (действующий сайт и репозиторий git)
У меня вопрос, как с помощью 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 tag Соглашение об именах: TBD
Возврат сайта в предыдущее состояние
, если что-то пойдет не так, возврат к предыдущему снимку и отладьте проблему в dev с новым номером заявки. Как только ошибка будет исправлена, следуйте процесс развертывания снова.
Мои вопросы:
1-Имеет ли смысл этот рабочий процесс, если нет, какие-либо рекомендации 2-Правильный ли мой подход к возврату или есть лучший способ сказать «вернуться к до x фиксации»
Спасибо, что нашли время прочитать этот ОЧЕНЬ длинный пост :)