После того, как git revert, merge не показывает изменений и уже обновлен - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть ветка dev, которая уже объединена с ветками featureA и featureB.Я слил эту ветку dev в master и отправил на удаленный компьютер.Позже я обнаружил, что featureB еще не готов к слиянию с master, так как есть ошибочный коммит.Поэтому я возвращаю это слияние dev -> master.

git revert -m 1 <merge-commit-hash>

Затем я пытаюсь объединить featureA с master.Но я не могу слиться.Он скажет Already up to date.

Я знаю причину, как сказал Линус Торвальдс:

Линус объясняет ситуацию:

Отмена обычного коммита просто эффективно отменяет то, чтоэтот коммит сделал, и это довольно просто.Но отмена фиксации слияния также отменяет data , что фиксация изменилась, но это абсолютно ничего не влияет на history , которое имело слияние.

Таким образом, слияниевсе еще будет существовать, и все равно будет рассматриваться как объединение двух ветвей, и будущие слияния увидят, что слияние будет последним общим состоянием - и обратный ход, который отменил введенное слияние, не повлияет на это вообще.

Таким образом, «возврат» отменяет изменения данных, но это очень не «отмена» в том смысле, что он не отменяет влияния коммита на историю репозитория.

Так что если вы думаете о «возврате» как о «отмене», то вы всегда будете пропускать эту часть возвратов.Да, он отменяет данные, но нет, он не отменяет историю.

В этой ситуации единственное решение объединить это dev снова с master - revert the revert commit.Но я хочу объединить только одну ветвь, включенную в ветку dev, то есть featureA

Как я могу объединить ветку (featureA) с основной веткой (master), которая включена вВосстановленная ветвь слияния (dev)?

1 Ответ

0 голосов
/ 25 сентября 2018

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

Я бы отменил объединение функции b в ветви dev и затем слил dev в master, а не отменил merge в master.

Я не уверен, позволит ли Git сделать это сейчас.Возможно, вам придется отменить возврат в мастере.

...