Глупый вопрос и относитесь ко мне как к новичку в управлении версиями.
Я новичок в Git (раньше я использовал subversion, но только основы). Я понимаю основы Git и его команды ветвления, у меня возникла воображаемая ситуация, и мне нужен ваш совет.
Предположим, мое программное обеспечение в настоящее время имеет версию 1.2, стабильную и выпущенную.
My Software v1.0 v1.1 v1.1.1 v1.2 <- Current, Compilable and Released
Сценарий:
У меня есть два разработчика, Джон и Эрик.
- Джон отвечает за исправления ошибок, о которых сообщают клиенты.
- Эрик отвечает за новые функции, экспериментирует с ними и исправляет недочеты.
Сейчас январь.
Джон работает над множеством исправлений ошибок, основанных на выпуске v1.2. Каждый день ему приходится коммитить свой код обратно в репозиторий (GitHub), программа может не компилироваться в зависимости от его статуса.
Эрик экспериментирует с этой новой вики-функцией, начиная с базовых функций, таких как добавление редактора WYSIWYG, и заканчивая расширенными функциями, такими как сравнение/управление версиями. Опять же, от него требуется зафиксировать свой код обратно в репозиторий, программное обеспечение также может не компилироваться в зависимости от того, где он находится.
Цель
- В любой момент я могу вытащить стабильный компилируемый релиз v1.2.
- Февраль, я хочу, чтобы v1.3 была выпущена со всеми исправлениями ошибок Джона, и в зависимости от того, сделает ли Эрик (по крайней мере, основную функцию), выпустить ее.
Каков рабочий процесс с GIT?
Если я правильно понимаю GIT, и Эрик, и Джон должны создать свою собственную ветку, а в феврале они должны объединить то, что работает с мастером?
Спасибо