Как мне удалить ненужные коммиты из другой ветки для пиара - PullRequest
0 голосов
/ 26 февраля 2019

Я сделал глупость.Я разветвлялся из ветви A, вносил изменения в новую ветку, выдвигал и делал PR в ветку B (также внося в нее много нежелательных коммитов).

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

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете создать новую ветку из ветви B

git checkout branchB
git checkout -b newB

Затем получить необходимые изменения из вашей последней ветки (давайте назовем ее branchFromA здесь)

git cherry-pick branchFromA

(этоlast команда выбрала только последний коммит из этой ветви *, как вы и хотели)

И теперь это будет простое ускоренное слияние с веткой B:

git checkout branchB
git merge newB

В качестве альтернативы для этого последнего этапа, поскольку вы, похоже, используете PR, просто нажмите newB на пульте дистанционного управления, создайте новый PR с newB до branchB и, наконец, отмените ваш branchFromA до branchB PR.


* часто используется с явной ссылкой на коммит, но вы можете передать ему имя ветви или тега, и фиксация, на которую указывает ссылка, принимается в качестве цели для cherry-pick

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...