Git слияние с перезаписью фиксации - PullRequest
0 голосов
/ 07 мая 2020

Я создал ветку A от мастера. В этой ветке я выполнил rebase --i и переименовал несколько коммитов, которые присутствовали с самого начала. Теперь я хотел бы объединить ветку A с мастером, перезаписав коммиты от мастера с их сообщениями, установленными в ветке A. Однако, если я вызываю merge, коммиты из ветки A помещаются поверх коммитов, уже находящихся на master. Есть ли способ принудительно заменить старые коммиты из master их обновленной версией в ветке A?

1 Ответ

0 голосов
/ 07 мая 2020

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Не изменяйте уже опубликованную Git историю без понимания последствий. Это может вызвать проблемы для других и для вас. Прочтите все предупреждения о принудительном нажатии или перебазировании.

Если я правильно вас понял и вы подтвердили это в комментарии, на данный момент у вас есть:

a-b-c--d--e <- master
   \
    c'-d'-e' <- A

И вы хотите, чтобы это произошло:

a-b (-c--d--e)
   \
    c'-d'-e' <- A, master

Затем вы можете просто удалить главную ветвь и воссоздать ее при соответствующем коммите. Или создайте его принудительно (результат тот же):

git branch -f master A

Это создаст ветку master, которая указывает на тот же коммит, что и A, включая всю историю A. Существующая история старого master будет потеряна.

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