Только изучаю Git. В голове каша. Не совсем понимаю как командно работать с тематическими/короткоживущим ветками и при этом не превратить проект и репозиторий в хаос.
Подскажите, верная эта схема или нет?
На сервере 2 ветки: master, develop. Все работают с develop.
Допустим, какому-то сотруднику нужно создать меню.
Создаёт новую ветку: git checkout -b feature-menu
Пушит её на сервер: git push -u origin feature-menu
Работает, делает коммиты, пуллит чужие и пушит свои изменения
Кто-то другой делает git checkout -b feature-menu origin/feature-menu и тоже что-то правит
Когда работа закончена, сотрудник сливает ветку: git checkout develop; git merge feature-menu; Разрешает конфликты
Делает git pull и git push develop-ветки
Удаляет ветку локально и удалённо git branch -D feature-menu; git push origin :feature-menu;
Готово
Доп. вопрос: После того, как сотрудник1 слил и удалил ненужную ветку (пункт 7), у сотрудника2, который тоже работал с этой веткой, после пулла она всё равно локально останется? Нельзя сделать так, что после того как ветка отработала и была удалена с сервера больше у сотрудников она не появлялась нигде. Или это не нужно?
Доп. вопрос 2: Если сотрудник работает над веткой один. Принято ли её пушить на сервер или сливать локально и пушить уже develop?
Ответ
Схема выглядит правдоподобно. Единственное, что пушить свежосозданную ветку на сервер сразу не обязательно, можно и потом. Удалять ветку лучше так git branch -d feature-menu. -D удалит ветку в любом случае, а -d только если ветка была замерждена.
Доп. вопрос: После того, как сотрудник1 слил и удалил ненужную ветку (пункт 7), у сотрудника2, который тоже работал с этой веткой, после пулла она всё равно локально останется?
да, локальная ветка никуда не пропадет. Но он может сделать git pull --prune - тогда будет удалена.
Нельзя сделать так, что после того как ветка отработала и была удалена с сервера больше у сотрудников она не появлялась нигде. Или это не нужно?
Если сотрудник не сделает pull --prune, то она будет у него жить дальше. Но это его личное дело.
Доп. вопрос 2: Если сотрудник работает над веткой один. Принято ли её пушить на сервер или сливать локально и пушить уже develop?
Можно не пушить. Это его личное дело. Но если он вдруг заболеет или его компьютер решит сходить в ремонт, может быть очень неприятно. Поэтому, если это свои маленькие эксперименты, то обычно не пушат. Если это код, который решает конкретную задачу (которая есть в jira или чему то подобном), то лучше пушить.
Комментариев нет:
Отправить комментарий