Как вести параллельную работу с проектом и потом сливать в один?

Есть сайт, работающий на PHP и MySQL и расположенный на виртуальном хостинге. На сайте есть пользователи, идет небольшой, но постоянный трафик.

Допустим, ставится задача - сделать регистрацию пользователей на по e-mail, а по номеру телефона с подтверждением по СМС.

Как сейчас это вижу я (понимаю, что неправильно):
1. Делаю копию файлов и базы данных
2. Развертываю копию сайта отдельно
3. Вношу необходимые изменения и помечаю файлы и таблицы, которые были затронуты (опять же, помечать я буду в своего рода журнале, что-то вроде «Файл account.php, строки с 500 по 600». Думаю, что это должно как-то делать через Git, но не знаю как).
4. После того, как сделал и протестировал все изменения - переношу только измененные файлы в рабочий проект и еще раз проверяю там.

Мне кажется, что сейчас это все делается гораздо проще и более автоматизированно. Тем более, что над проектом я работаю один, а если вдруг будет несколько программистов с разными задачами. Т.е. работу с Git в команде в процессе разработки, я понимаю, каждый работает в своей ветке и потом все сливается в одну, но когда проект один и на стадии разработки, а вот как поступать с уже работающими проектами - не пойму.

Работаю в PhpStorm.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 2
@calculator212
1) Если вы работаете с гитом, то непонятно зачем вам делать копию файлов (бэкапы бд вообще стоит делать и без этих причин).
3) опять же зачем их помечать гит же всё делает и при необходимости вы можете откатиться на предыдущую версию или вы что-то другое имеете ввиду?
4) обычно на такое время просто пишут идут технические работы и в это время тестят прод.

Честно говоря у меня такое ощущение, что вы знаете что такое гитхаб, но не знаете, что такое гит.

upd: Вот пример коммита красным помечены удаленные строки, зелёным помечены добавленный строки https://github.com/PHPOffice/PhpSpreadsheet/commit...
Ответ написан
dlnsk
@dlnsk
ПК Партнер 01.01 -> ПК Поиск -> IBM PC
1. Вам нужно установить git на хостинге, чтобы делать push локально и затем pull на сервере для переноса сделанных изменений. Если хостинг не позволяет установить git, то можете воспользоваться плагином git-ftp (переносит измененные файлы по ftp)
2. Делать копию базы можно, но с какого-то момента это становится слишком затратно, да и нужную вам комбинацию данных придется искать. Решается это наполнением базы тестовыми данными (ищите seed в поиске). Развивая проект вы дополняете и сидеры. Это позволяет держать базу в атуальном виде, а также (!) откатываться к предыдущим версиям и там генерировать базу для именно этой версии. Кроме того сидеры позволяют легко экспериментировать, т.к. пересоздание базы занимаетс секунды.
3. Для изменения структуры базы данных применяются миграции (migration). Это описание того, какие поля, таблицы, индексы добавляются/удаляются, а также трансформирование данных. Создав миграцию локально и протестировав на локальных данных вы переносите ее с помощью git на сервер также, как и весь остальной код. Остается только запустить миграцию на сервере и ваша БД будет трансформирована как вы указали.

Конечно, многое зависит от того, каким фреймворком вы пользуетесь. Подавляющее большинство позволяют создавать и сидеры, и миграции.
Чтобы было проще представить, вот ссылка на документацию Laravel по этой теме: https://laravel.com/docs/8.x/migrations
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы