Я бэкпортирую коммиты на локальный экземпляр ядра Linux. Давайте назовем ветви Upstream и Local .
Я выбрал серию коммитов, скажем, Upstream ~ 10..Upstream на Местный . Я исправил конфликты, и теперь я интерактивно перебазирую, чтобы редактировать коммиты, чтобы вещи действительно создавались и работали [1]. Мне нужно добавить зависимости (и транзитивные зависимости) из серии коммитов.
Когда я выбираю вишню во время интерактивной перебазировки, она сбрасывает коммит на мою стадию, а не вставляет коммит в дерево после совершить, что я выбрал для редактирования. Как мне выполнить sh это или что-то подобное?
Я могу вспомнить некоторые плохие варианты, но не хорошие:
- Ручная фиксация: копия вставьте старое сообщение о коммите, исправьте автора / et c, а затем исправьте порядок исправлений (зависимости должны, вероятно, сначала go).
- Прервите перебазирование, cherry-pick commit, и перезапустите интерактивную перебазировку (и переместите выбранную вишню зависимость на передний план).
- Вариант 2, но вставьте любую частичную работу в sta sh и
git rebase --continue
до конца вместо использования прерывания. - Снизить и изменить зависимость от коммита, который я редактирую.
Ни один из этих вариантов не кажется великолепным, и кажется, что должно быть что-то лучше. В частности, если я начинаю перебазирование и перебазирование, я понимаю, что мне нужен определенный коммит. Есть ли способ обойти это? Вариант 3, вероятно, то, что я в конечном итоге сделаю, но он кажется немного утомительным.
Вероятно, ответ - нет, так как выбор вишни во время перебазирования может потребовать от вас вложения сеансов слияния-разрешения-конфликта ( не уверен, есть ли название для этого), и это звучит довольно трудно для git для реализации.
[1] Если бы я был мудрее, я бы, вероятно, сделал бы это во время первоначального выбора вишни, но я не уверен, что сделал бы что-то по-другому.