Git ветвление / перебазирование хороших практик

У меня есть следующий сценарий:

3 филиала:
- Мастер
- MyBranch получил ответвление от Master с целью разработки новой функции системы
- MyBranchLocal разветвил MyBranch как мою локальную копию ветви

MyBranch подвергается критике со стороны других разработчиков (которые работают над той же функцией, что и я).

Как владелец ветки MyBranch, я хочу синхронизировать ее с Master, выполняя ребазинг. Мне также нужно объединить изменения, которые я делаю, с MyBranchLocal с MyBranch.

Какой хороший способ сделать это?

Пара возможных сценариев, которые я пробовал до сих пор:

Я.
1. Внесите изменения в MyBranchLocal
2. Перепроверьте MyBranch против Master
3. Перепроверьте MyBranchLocal против MyBranch
4. Слияние MyBranch с MyBranchLocal

II.
1. Внесите изменения в MyBranchLocal
2. Объедините MyBranch с MyBranchLocal
3. Перепроверьте MyBranch против Master
4. Перепроверьте MyBranchLocal против MyBranch

III.
1. Внесите изменения в MyBranchLocal
2. Перепроверьте MyBranch против Master
3. Слияние MyBranch с MyBranchLocal
4. Перепроверьте MyBranchLocal против MyBranch

Я уже знаю, что сценарий III, похоже, сильно портит историю коммитов, потенциально дублируя коммиты.

Какой у тебя опыт? Какие сценарии вы рекомендуете минимизировать слияние и сохранить историю в чистоте?

Ответы на вопрос(2)

Ваш ответ на вопрос