Rebase или revert являются опциями.Rebase на самом деле удалит коммит из истории, так что похоже, что второй коммит никогда не существовал.Это будет проблемой, если вы выдвинули основную ветку в другие репозитории.Если в этом случае вы попытаетесь выполнить толчок после перебазирования, git выдаст вам отклонить ошибку без ускоренного слияния .
Возврат является правильным решением, когда ветвь была передана другимРЕПО.git revert af5c7bf16
сделает новый коммит, который просто отменяет изменения, внесенные af5c7bf16.Таким образом, история не переписывается, вы сохраняете четкую запись об ошибке, и другие репозитории принимают толчок.
Вот хороший способ стереть: git rebase -i <commit>^
Это приведет вас к фиксации непосредственно передтот, который вы хотите удалить.Интерактивный редактор покажет вам список всех коммитов на тот момент.Вы можете выбрать, сквош и т. Д. В этом случае удалить строку для коммита, который вы хотите стереть, и сохранить файл.Rebase закончит свою работу.