Переместите 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

Вы упомянули, что хотите избежать переписывания истории, но если у вас все в порядке с выделением одного фиксационного исправления, я думаю, что переупорядочение вашей ветви функций для упрощения объединения должно быть приемлемым.

Другие вопросы по тегам