Я ищу способ удалить «двойной» коммит, который я случайно создал в репо.Пытаясь свернуть коммиты ветки перед тем, как объединить ее с мастером, я невольно перенес изменения ветки на мастера (я знаю, что Git достаточно, чтобы выстрелить себе в ногу).Позже, когда я слил ветку, я получил второй коммит (слияние).Изменения в этом коммите слияния точно такие же, как и в случайно выдвинутом коммите.Теперь моя история мастер-коммитов выглядит примерно так:
Some_Newer_Stuff_Here
The_Merge_Commit
The_Branch_Commit //Same contents, different Hash as commit above
Master_Commit_2
Master_Commit_1
Я пытался использовать git Interactive ReBase (как подробно здесь и здесь ), однако, когда яСделайте так, не все коммиты появятся в списке.Вместо этого я вижу что-то вроде этого:
Some_Newer_Stuff_Here
The_Branch_Commit
Master_Commit_2
The_Merge_Commit отсутствует (я предполагаю, что это тот, который я хочу сохранить).Обратите внимание, что все коммиты отображаются в git log
.Если я попытаюсь удалить The_Branch_Commit, используя rebase
, это создаст кучу конфликтов слияния.
Я не смогу найти способ решить эту проблему, поэтому любая помощь будет оценена.