поэтому для этого им нужно создать отдельную ветвь из эпической ветви
Нет, не делают, если каждая их работа не настолько уникальна, что требует длительногоего собственная ветвь.
Если нет, они могут работать в своей локальной feature/version-1
ветви:
git fetch
git checkout feature/version-1
, которая будет автоматически отслеживать удаленный origin/feature/version-1
Они просто имеютсделать перебазирование перед тем, как нажать на их коммит, чтобы перебазировать их локальную работу (коммиты в их собственной feature/version-1
ветке) поверх того, что уже было выдвинуто другими в этой ветке (в origin/feature/version-1
).
git fetch
git checkout feature/version-1
git rebase origin/feature/version-1
Таким образом, синхронизация выполняется локально (через ребаз).Любой конфликт слияния там разрешается.
Затем разработчик делает последний тест перед нажатием.
ОП добавляет:
Здесь каждая их работа настолько отличаетсяи одна реализация зависит от реализации другого человека
Тогда да, отправка собственной ветки и PR в вышестоящую эпическую ветку - хороший способ.
Но каждый разработчик должен перебазировать свою/ ее собственная ветвь над эпической ветвью, перед тем как принудительно толкнуть свою собственную ветвь, чтобы синхронизировать свою работу с тем, что было принято в эпической ветке.
Затем, после нажатия, они могут сделать пиар (после первого толчка), или PR будет автоматически обновляться (после следующего push --force
: поскольку каждый разработчик - единственный, работающий над собственной веткой, он может принудительно выдвинуть его без негативных последствий).
git fetch
git checkout myVersion
git rebase origin/feature/version-1
git push --force