вот описание моей повседневной работы:
Два разработчика , работающие над множеством мелких функций или исправлений, скажем, 3-4 в день для каждого разработчика.
Мне нужно одновременно работать с функциями A - B - C, в то время как мой коллега работает с функциями D и E.
понедельник :
Функция A передается на промежуточный сервер для проверки клиентов.
Функция B отправляется на тот же промежуточный сервер для проверки клиента.
Функция D передается на тот же промежуточный сервер для просмотра клиентом.
вторник :
Мы получаем одобрение от клиента для A и D (но не для B). И они должны немедленно начать жить с этими изменениями.
Среда :
Функция C отправляется на тот же промежуточный сервер для проверки клиента.
Разрешение на B наконец получено.
четверг :
Функция B должна быть немедленно запущена в производство.
1024 * пятница *:
В последнем производственном выпуске обнаружена ошибка, и нам нужно вернуться к предыдущей версии.
Это не может рассматриваться как Scrum-подобный процесс, потому что нет никакой возможности сгруппировать функции в истории или планирование спринта. Это больше похоже на процесс обслуживания (может быть Kanban?).
Можете ли вы привести пример того, как бы вы справились с этим с помощью Git? Предположим, что прямо сейчас у нас есть только одна основная ветвь, и всякий раз, когда мы хотим что-то перенести в стадию или производство, мы должны «сделать git pull», чтобы все изменения остались живыми (даже нежелательные). Как насчет git "cherry-pick" для получения определенных коммитов? Одна ветвь на функцию кажется слишком обременительной, поскольку у нас слишком много функций. Если бы вы могли привести конкретные примеры команд и веток Git (только для того, чтобы показать основную идею, не обязательно быть на 100% правильными), это было бы здорово.
Спасибо.