Отменить коммит слияния сложно, потому что у слияния есть два родителя, и можно следовать путем только одного родителя. При использовании интерактивной перебазировки вам, как правило, придется полностью повторить слияние. По этой причине я мог бы предложить следующую стратегию:
git checkout -b good_branch 37f71a89 # create new branch from 37f71a89
git cherry-pick 3b2c3825 # cherry-pick first good commit
git cherry-pick 40a01d2f # cherry-pick second good commit
Это оставило бы вас с требуемой структурой ветвления, хотя у двух "хороших" коммитов фактически были бы новые значения хеш-функции SHA-1, потому что вишня-сбор всегда создает новый коммит (хотя коммиты будет функционально идентичен их оригинальным аналогам).