У меня есть следующий сценарий:
3 ответвления:
- Ведущее устройство
- MyBranch отклонился Ведущее устройство в целях разработки новой возможности системы
- MyBranchLocal отклонился MyBranch как моя локальная копия ответвления
MyBranch является перебазирующимся против и продвигается к другими разработчиками (кто работает над той же функцией, как я).
Как владелец MyBranch переходят, я хочу сохранить его в синхронизации с Ведущим устройством путем перебазирования. Я также должен объединить изменения, которые я вношу в MyBranchLocal с MyBranch.
Что хороший путь состоит в том, чтобы сделать это?
Несколько возможных сценариев я попробовал до сих пор:
I.
1. Передайте изменение в MyBranchLocal
2. Повторно основывайте MyBranch против ведущего устройства
3. Повторно основывайте MyBranchLocal против MyBranch
4. Объедините MyBranch с MyBranchLocal
II.
1. Передайте изменение в MyBranchLocal
2. Объедините MyBranch с MyBranchLocal
3. Повторно основывайте MyBranch против ведущего устройства
4. Повторно основывайте MyBranchLocal против MyBranch
III.
1. Передайте изменение в MyBranchLocal
2. Повторно основывайте MyBranch против ведущего устройства
3. Объедините MyBranch с MyBranchLocal
4. Повторно основывайте MyBranchLocal против MyBranch
Я уже знаю, что сценарий III, кажется, портит историю фиксации много, потенциально копируя фиксации.
Каков Ваш опыт? Какие сценарии Вы рекомендуете минимизировать объединяющееся усилие и содержать историю в чистоте?
Мое личное предложение. Этот ориентирован на то, чтобы иметь прямую историю коммитов и терпеть неудачу в «более конкретных» ветвях (вам лучше испортить свою локальную ветку, чем функциональную ветку).