Я новичок в веб-разработке, и я не могу найти ответ на этот простой вопрос. Я нахожусь в своем уме здесь, и любая помощь будет принята с благодарностью!
Мне нужно регулярно обновлять файлы на моем живом веб-сайте, но я чувствую, что рабочий процесс, которому я следую, крайне неэффективен:
Понятно, что мне здесь не хватает наилучшей практики, но я не могу найти ответ, несмотря на дни поисков в сети:
Что мне не хватает?
PS — я использую стек PHP, MySQL, Apache на сервере общего хостинга.
Я бы посоветовал вам еще пойти на Git / Tortoise SVN
Лучшая часть feature
на основе ветвления. Когда каждая ветвь представляет собой новую функцию, вы всегда можете поэкспериментировать с ней, не нарушая уже работающие функции. Как только новая функция станет функциональной и объединится с вашей основной веткой, вы сможете удалить ветку функции
Помимо ветвления и разветвления, в GIT и Tortoise SVN есть множество функций. Это показывает хорошие изменения сравнения между кодами (+ и зеленый) для добавленных, (- и красный) для удаленных. Я нашел чрезвычайно удобным при работе над CSS в RWD
Слияние также становится проще и без трения. Разрешение конфликтов также является хорошим знанием
Это может оказаться достойным даже для одинокого разработчика. Отдельная ветка предназначена не только для нескольких пользователей. Вы можете создать ветку для экспериментов. В ветке, даже если вы опережаете многие этапы, вы всегда можете переключиться обратно туда, откуда вышли.
Для справки
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-preface-features.html
Похоже, вам нужно автоматизировать процесс развертывания. Это называется непрерывная интеграция в мире Интернета. Лично я пользуюсь Дженкинс, но есть много других вариантов, таких как Трэвис-CI. Как и в комментарии @ pala_, я определенно предлагаю использовать программное обеспечение для контроля версий, которое, вероятно, будет необходимо, если вы в конечном итоге будете использовать сервер непрерывной интеграции.
Если вы думаете, что хотите потратить время на автоматизацию вашего процесса, вам необходимо отделить свои источники от созданного пользователем контента и поместить их в систему контроля версий. Обычно я предпочитаю хранить сгенерированный пользователем контент в совершенно ином каталоге, чем мои источники, поэтому я могу заменить весь каталог, когда сервер обновляет файлы.
Если вы используете сервис, такой как GitHub или BitBucket, для размещения своего кода, тогда у вас есть возможность использовать веб-хуки, которые могут инициировать действия на сервере непрерывной интеграции при отправке обновленного кода.
Документация Github о веб-хуках
На сервере непрерывной интеграции вы можете использовать что-то вроде rsync для обновления файлов на вашем веб-сервере. Команда будет выглядеть примерно так:
rsync -avz -e ssh myproject/ [email protected]:/path/to/example.com