Вы не можете изменить любую часть любого существующего коммита.
Вы можете , как RomainValeri отметил в комментарии , построить любой new коммит, который вам нравится, включая пользовательский коммит слияния, сделанный с git commit-tree
. Затем вы можете изменить идентификаторы ha sh, хранящиеся в любой конкретной ветви name (s) , которые вы хотите сослаться на это новое коммитное слияние, которое по сути является слиянием осьминога с разрешением конфликтов:
________________
/ \
...--o--o <-- name1 \
\ _______________\
\ / \
X \
/ \ \
...--o--o---M1 <-- name2 @ <-- branch
>--M3 <--name5 /
...--o--o---M2 <-- name3 /
\ / /
X________________/
/ /
...--o--o <-- name4 /
\______________/
где @
- это ваше слияние осьминога, сделанное вручную, например. Измените имена вокруг по мере необходимости (вы можете удалять и заново создавать имена, или принудительно обновлять имена, или переименовывать имена ветвей, по желанию), чтобы одно конкретное имя, которое вам показалось особенно интересным, выбирало commit @
, который вы сделали с помощью git commit-tree
с использованием того же дерева , что и слияния M3
, которое объединяет коммиты слияния M1
и M2
.
(приведенные выше значения name
в основном необязательны, но помогают вы найдете каждый коммит.)
Я бы не советовал делать это, потому что это не типичный рабочий процесс. Если вы делаете , сделайте это, поместите что-нибудь в сообщение коммита необычного слияния о том, как вы это сделали и почему. Некоторые будущие археологи кода - возможно, даже вы сами через год - могут просматривать исторические коммиты, пытаясь понять, например, как возникла какая-то ошибка, и могут столкнуться с этим необычным, сделанным вручную коммитом слияния. Без руководства или, по крайней мере, напоминания, кто бы ни сталкивался с этим слиянием осьминога, он мог бы посмотреть на него и подумать: ага, слияние осьминога, не должно быть никаких конфликтов и, следовательно, предположить, что у этого слияния не было конфликтов.
Если у вас есть два обычных слияния подряд, тот, кто с ними сталкивается не может предположить отсутствие конфликтов, потому что обычные слияния часто связаны с разрешением конфликтов.