Переместите fix-commit из одной ветви в другую, прежде чем объединять их
Работа над неполной feature
филиал я уже совершил Fix
за master
,
(master) A-B-C
(feature) \_D-E-Fix-G-H
Как я могу получить Fix
совершить на master
...
(master) A-B-C------Fix'
(feature) \_D-E-Fix-G-H
... но все еще в состоянии объединить / перебазировать мой feature
филиал на master
?
(master) A-B-C-D-E-Fix-G-H
Я полагаю Fix'
должен поддерживать тот же SHA Fix
чтобы не было видно абсолютно разных коммитов и плавно слились / перебазировались (так cherry-pick
, который я обычно использую, здесь не поможет). Так что, возможно, это невозможно, но мне любопытно, есть ли какой-нибудь способ поделиться некоторыми временными исправлениями из ветви с другой веткой, и все же иметь возможность объединить оставшиеся недостающие коммиты позже.
мой feature
Филиал только местный. Естественно, я хочу избежать переписывания истории.
1 ответ
Если Fix
коммит выбирается вишня, то не зависит от D
а также E
так что вы могли git rebase -i C
и изменить порядок вашей истории, чтобы положить Fix
позади D
,
Тогда было бы легко объединить ветвь функций обратно в мастер.
(master) A-B-C--Fix'
(feature) \_Fix-D-E-G-H
Вы упомянули, что хотите избежать переписывания истории, но если у вас все в порядке с выделением одного фиксационного исправления, я думаю, что переупорядочение вашей ветви функций для упрощения объединения должно быть приемлемым.