Я руководитель группы в нашей компании, занимающейся веб-разработкой, и я хотел бы реализовать рабочий процесс Git в нашей команде. Читая документацию и статьи, я нашел следующую структуру, подходящую для нас:
У нас есть репозиторий в Bitbucket. Ветка Master считается содержащей только стабильный код. Каждый разработчик должен создать свою собственную ветку и реализовать функции/исправления ошибок в своей собственной ветке. Как только он решает, что его код готов, он создает красивую историю веток (используя перебазирование, исправление, выбор вишни и т. д.) и отправляет ее в Bitbucket, где создает запрос на включение в основную ветку. QA проверяет функциональность и одобряет (или не одобряет) ее, затем я проверяю код, и если все в порядке, я объединяю его работу с мастером (путем быстрой перемотки вперед или перебазирования для лучшей истории коммитов).
Но эта схема хороша только в том случае, когда на ветке работает один разработчик. В нашем случае у нас почти всегда два разработчика на одну ветку, так как один разработчик работает над серверной (PHP), а другой - клиентской (HTML/CSS /JS). Как эти двое должны взаимодействовать таким образом, чтобы история коммитов в мастере оставалась чистой?
Серверный разработчик создает базовую структуру файлов HTML, а клиентский разработчик должен получить эту структуру. Логично было бы для разработчика сервера создать ветку, а для разработчика клиента создать свою собственную ветку на основе ветки разработчика сервера. Но это означает, что разработчик сервера должен опубликовать свою ветку в Bitbucket, что сделает для него невозможным перебазирование или изменение коммитов, которые уже опубликованы.
Другой вариант - подождать, пока серверный разработчик закончит свою работу, опубликует ветку с красивой историей коммитов и забудет о ней, и только после этого клиентский разработчик начнет работать в этой ветке, но это приведет к временным задержкам, что еще хуже.
Как вы справляетесь с таким сотрудничеством в своих рабочих процессах?
master
был защищен от перезаписи. - person dss539   schedule 10.09.2019