допустим, есть 2 автора, красный и синий, у меня есть этот git log
файл
git log --oneline
a123bc Red
a123bd Red
a123be Red
a123bf Blue
a123bg Red
Есть 5 журналов, я хочу объединить коммиты, сделанные красным, в 1 коммит. но я не хочу трогать синий.
так что я git rebase -i HEAD~4
Я сжимаю 3 коммита и выбираю тот, который мне нужен. s === сквош, p === выбор
s a123bc Red
s a123bd Red
s a123be Red
? a123bf Blue <== I don't know what to do here
p a123bg Red
Что мне выбрать для синего коммита автора? Я хочу оставить синие коммиты и объединить все внесенные мной изменения в свой собственный коммит. Тот, который я выбираю p
для
Стоит ли мне выбирать синий? Я думаю, что все изменения, которые я сделал в коммитах сквош, перейдут в синий, если я также выберу синий.
Может ли кто-нибудь предложить мне решение.
Невозможно объединить все четыре коммита, помеченных как «Красный», в один без изменения порядка фиксации «Синего» до или после всех коммитов «Красный».
Но сделаем шаг назад: если ваша функциональная ветка, описанная выше, в любом случае будет объединена с исходной веткой, нет особой мотивации даже выполнять эту переработку в функциональной ветке. Скорее всего, в будущем вклад функциональной ветки будет сохраняться только в исходной/ссылочной ветке как единый коммит слияния. Точная исходная структура функциональной ветки может не иметь значения.
Здесь вы предполагаете конкретный процесс слияния, но нет никаких оснований ожидать, что проект OP подавит PR слияния. Многие проекты очищают историю коммитов в ветке PR перед слиянием с помощью коммита Merge или слияния Rebase.
Я также не люблю смешивать коммиты других людей со своими, поэтому, когда я оказываюсь в такой ситуации, я обычно делаю одно из следующих действий:
Co-authored-by: First Last <[email protected]>
(Просто скопируйте имя и адрес электронной почты точно так же, как из коммита другого человека.)
Вы можете изменить порядок коммитов, перемещая их в интерактивном редакторе перебазирования. Вы можете переместить коммит другого автора после списка сквошей. Возможно, вам придется разрешать конфликты вручную, если вы измените порядок коммитов.