Как объединить определенные коммиты из dev в master

Я пытаюсь объединить некоторые конкретные (не все) из dev в master. И используется ниже команда, которая выдает исключение.

C:\Users\arrchana\New_Code\Paymentev\AmazonPaymente2etestserv\A2paymente2etestservService> git cherry-pick 5dc6112
error: Commit 5dc6112 is a merge but no -m option was given.
fatal: cherry-pick failed

Как решить эту проблему? Есть ли другой способ получить конкретную фиксацию от разработчика и объединить ее с основной веткой?

Вы не можете выбрать вишневое слияние, потому что вишневый выбор применяет изменения, сделанные коммитом по сравнению с его родителем, а слияние имеет двух родителей (какой из них должен выбрать git?). Вместо этого Cherry выбирает одного из родителей слияния. См. вопрос, который я связал выше, для получения дополнительной информации.

Caius Jard 08.02.2019 04:52

Есть ли другой способ добиться этого без использования команды cherry-pick?

ArrchanaMohan 08.02.2019 05:21

@CaiusJard Примечание: это может измениться с Git 2.21: stackoverflow.com/a/34782687/6309

VonC 08.02.2019 07:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
4
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы пытаетесь выбрать фиксацию слияния. Хотя это можно сделать, скорее всего, это не то, что вы хотите.

Если вы пытаетесь применить изменения из определенный диапазон коммитов, вам нужно будет найти коммиты (теги или sha1-хэши) для всех этих коммитов, просмотрев журнал.

Затем вы можете запустить git cherry-pick hash1 hash2 hash3.... Убедитесь, что эти хэши находятся в том порядке, в котором они были зафиксированы!


Если вашим конкретным изменением является в пределах коммит слияния, это становится сложнее.

Первый: Не вносите никаких изменений, кроме разрешения конфликтов в коммите слияния!

С этим не по пути: вы можете git diff 5dc6112 коммит слияния или git show 5dc6112, чтобы увидеть, содержит ли он ваши соответствующие изменения. Если это так, перейдите:

git [diff/show] 5dc6112 | patch -p1

это применит diff к вашему текущему рабочему каталогу. Затем вы можете зафиксировать эти изменения.

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

Похожие вопросы

Heroku Push Fail: ошибка: сбой RPC; Передача curl 18 закрыта с оставшимися невыполненными данными чтения
Как объединить две локальные ветки, когда git-merge и git-rebase говорят «Уже обновлено», но git-diff ясно показывает различия
Касается ли `git commit --amend` большего количества файлов, чем необходимо?
Как удалить коммиты из ветки только для того, чтобы добавить их позже (без конфликтов)?
Как повторить проверку после изменения CRLF только на LF
Git <start-point> удаленное отслеживание ветвей автоматически
Есть ли способ заставить git commit --verbose показывать обновленный diff при использовании хуков перед фиксацией?
Push отклонен: не найдена проблема JIRA в сообщении о коммите. Имя ветки (предварительный прием отклонен) ошибка: не удалось отправить некоторые ссылки на http://@bitbucket.com
Верхний каталог github с тем же именем, что и проект Java
Каким будет стандартный и лучший подход к структуре репозитория git для микросервисной архитектуры?