Страницы

Поиск по вопросам

четверг, 1 ноября 2018 г.

При работе в команде, как правильно подтягивать изменения из веток в git?

Во время работы в команде над одним продуктом возник вопрос - как правильно и корректно подтягивать изменения других коллег с их веток или с ветки dev (основной, скажем так).
Когда я работаешь один, таких вопросов естественно не возникает и мне между двумя моими машинами было достаточно git pull - подтянуть изменения свои на одной машине - продолжить работать на другой и снова закомитить.
Так как все таки правильно? Я вижу три решения:
1) git pull - подтягиваем все изменения и работаем уже с изененными файлами из минусов вижу только то что все изменения отображаются как "мои"
2) git merge - мержить свою ветку с чужими и работать дальше
3) git cherry-pick - вносить в свою ветку коммиты коллег, которые в ветке будут отображаться как "мои" из минусов вижу только долгий и не удобный перебор всех хешей коммитов
Так вот вопрос - как все таки правльно подтягивать изменения из веток других людей?


Ответ

Вопрос субъективный. Когда вам нужно опубликовать код из своей ветки в основную, у вас есть по сути четыере опции:
просто merge вашей ветки в основную; rebase вашей ветки на head основной (линеаризация истории); комбирированный вариант rebase + merge; перенос патчей (cherry-pick).
Все они имеют плюсы и минусы. Выбирают, то что подходит к текущему проекту/нравится команде. Кроме того, они могут использоваться совместно в рамках сложного workflow.
Сами по себе git flow, github flow, gitlab flow и прочие flow не являются серебрянной пулей и на маленьких проектах в небольшой команде могут доставлять больше сложностей, чем удобств.

Комментариев нет:

Отправить комментарий