Задать вопрос
@yujin1st
Веб-разработчик (Yii)

Git (BitBucket) + JIRA + PhpStorm — План работы?

Здравствуйте!

Начинаю разбираться с git'ом, и возникло несколько вопросов.

Подскажите пожалуйста как организовать работу с кодом нескольких человек?


Допустим в JIRA опередили одну большую задачу и для нее несколько маленьких подзадач.

Для этого один разработчик создает новую ветку, далее работает над задачами, для каждой подзадачи отдельный commit.

А что должно быть дальше, как должно пройти объединение?

1. После завершения он делает push всей новой ветки или объединяет с master'ом у себя и push'ит мастер?

2. Когда разработчик удаляет ветку кода у себя?

Дальше, ясно, что после этого разработчик объявляет pull request и администратор принимает его, это ведь так? Ну а после все остальные запрашивают новую версию


С phpStorm'ом возникла такая ситуация: если сделать изначально push ветки и после объединить ее с мастером, то IDE в окне 'push' опять предлагает отправить все commit'ы из ветки но уже в master.

Как решить эту дилемму?
  • Вопрос задан
  • 8903 просмотра
Подписаться 16 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
AmdY
@AmdY
PHP и прочие вебштучки
Не-не-не. Вы совсем не туда думаете.
Каждая фича в отдельный бранч и желательно в нём всего один коммит, апдейты делаются амендом, это позволит легко тягать ваши коммиты черри пиком вместо мержа, что особенно удобно когда ведётся несколько стабильных релизов.
Соотвественно разработчик пушит всё в свой репозиторий, делает пулл реквест. Затем собирается билд посредством мержа основного репозитория и ветки из репа разработчика. Если всё ок, то принимаем пулл реквест. Дальше ветки разраба никому не мешают, могут и полежать. Оснвной реп относительно чист.

Надеюсь понятно пояснил, мы так очень большой проект с кучей версий делали и апособо зарекомендовал себя очень хорошо.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Я обычно работаю по следующей схеме:

Если над задачей работает один человек, то обычно в локальном репозитории создается отдельная ветка от мастера, и разработчик работает там. Если появились изменения в мастере — rebase коммитов из мастера в новую ветку поможет (если внесенные в мастер изменения вам нужны). Затем, просто делается rebase коммитов из новой ветки в master, а та самая локальная ветка попросту удаляется за ненадобностью. В дереве коммитов все будет выглядеть так, как будто бы все делали в мастере.

Если же над таском работает не один человек — то просто пуште новую ветку и работайте по той же схеме, переодически синхронизируя изменения. Опять же по завершению работы коммиты ребейзятся на мастер и ветка (локальная и на сервере) удаляются.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы