Должен ли я подавлять обязательства других людей в своем пиаре?

допустим, есть 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 для

Стоит ли мне выбирать синий? Я думаю, что все изменения, которые я сделал в коммитах сквош, перейдут в синий, если я также выберу синий.

Может ли кто-нибудь предложить мне решение.

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

Andy Ray 08.07.2024 06:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
84
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Невозможно объединить все четыре коммита, помеченных как «Красный», в один без изменения порядка фиксации «Синего» до или после всех коммитов «Красный».

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

Здесь вы предполагаете конкретный процесс слияния, но нет никаких оснований ожидать, что проект OP подавит PR слияния. Многие проекты очищают историю коммитов в ветке PR перед слиянием с помощью коммита Merge или слияния Rebase.

joanis 08.07.2024 23:34
Ответ принят как подходящий

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

  1. Если я смогу изменить порядок своих коммитов без конфликтов, я просто сделаю это, чтобы объединить все свои коммиты в один коммит, сохранив при этом коммит другого человека.
  2. Если я не могу сделать № 1 и стоит сохранить «до» и «после», у меня просто останется 3 коммита (до, другого человека, после).
  3. Если коммит другого человека относительно незначительный, я просто включаю его в свой коммит, а затем отдаю ему должное в трейлере сообщения о коммите:
Co-authored-by: First Last <[email protected]>

(Просто скопируйте имя и адрес электронной почты точно так же, как из коммита другого человека.)

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