Git удаляет предыдущий сделанный коммит, но сохраняет будущие коммиты с помощью слияний

#git #rebase

#git #перебазирование

Вопрос:

У меня есть такое дерево в Git:

введите описание изображения здесь

Теперь я хочу удалить коммит 8a22e56e5 , но сохранить все будущие изменения и слияния.

Команда git rebase -i -p ed36940de , но она выдаст ошибку error: commit 1e5c47382 is a merge but no -m option was given .
Как это сделать правильно?

Комментарии:

1. Вероятно, вам нужно git filter-branch для этого случая. Я не пишу ответ, потому что у меня нет времени проверять его самостоятельно.

2. Для этого можно использовать новый (2.19-ish) --rebase-merges , но я не решаюсь рекомендовать его, и у меня действительно нет времени вдаваться в подробности.

Ответ №1:

Попробуйте и дайте нам знать, как это происходит:

 git rebase -p --onto a6b8cff52 ed36940de 4510e25da
  

Я никогда не пытался сделать что-то подобное, но это то, что я бы попытался запустить.