Как правильно организовать работу с Git для соло-разработки?

Доброго времени суток!

В настоящее время, проект (PHP + MySQL) существует на одном сервере.
Используем два домена:
- site.ru - рабочая версия сайта
- dev.site.ru - тестовая версия сайта
Оба сайта сейчас используют одну базу данных (раньше было две отдельных, но потом решили использовать одну).

Как сейчас выглядит работа:
1. Заказчик ставит задачу
2. Работаю с файлами сайта dev.site.ru
3. При готовности задачи - копирую файлы из dev.site.ru в каталог сайта site.ru

Сейчас добавилась некоторая сложность: периодически, заказчик может самостоятельно внести какие-либо изменения с оформлением. Логику не трогает, то может поправить css или html.

А иногда и для меня ставится задача, внести корректировки по оформлению и достаточно часто возникает желание, написать несколько строк сразу в каталоге site.ru. Но потом, при более сложной задаче мне приходится копировать все из каталога site.ru в каталог dev.site.ru для актуализации.

С Git до этого не работал, точнее использовал только для себя: что-то сделал - закоммитил, чтобы была возможность откатиться или посмотреть историю.

Давно хотел начать использовать Git правильно, прочитал Pro Git, ознакомился с Git Flow и GitHub Flow.

В целом есть некоторое понимание того, ЧТО нужно сделать, но никак не могу понять КАК правильно это сделать.

Как сейчас вижу решение:
1. Создать закрытый git-репозиторий на GitHub
2. Сделать git push из каталога site.ru в ветку master на GitHub
3. При поступлении задачи - из ветки master на GitHub делать git pull в каталог dev.site.ru
4. Создать ветку task-123 (123 - номер задачи), решить задачу.
5. Слить ветку task-123 вместе с --no-ff в master локально (каталог dev.site.ru).
6. git push в ветку master на GitHub
7. Из ветки master на GitHub, сделать git pull в каталог site.ru, чтобы получить реализованную задачу.
8. Если вносятся изменения заказчиком (или мной) в каталоге site.ru (касаемо html или css) - делать git push в ветку master на GitHub.

Все ли я правильно понимаю?
Если возможно, пожалуйста, распишите подробнее или дайте ссылку на ресурсы.
Заранее спасибо!
  • Вопрос задан
  • 257 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Git
software engineer
Если ты один, сделай флоу какой тебе удобный с нейм конвеншеном какой тебе удобен.

Сделай две ветки:
site-ru
dev-site-ru

Делай ветки для вставки новых крупных фич типа:
feature-XXXX

как ветка готова, мержи ее в dev-site-ru c --squash
Как протестировал на дев, делай мерж в site-ru

Для тебя и клиента будет интуитивно понятно что за ветки, и не надо будет запоминать зачем нужен мастер или транк.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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