Вы можете определить, является ли один коммит (один из двух, который вы хотите отменить) является предком другого
git merge-base --is-ancestor <maybe-ancestor-commit> <descendant-commit>
Итак, перечислите все коммиты каждой ветки и:
- если ни один из ваших 2 коммитов не является предком ветки HEAD, отбросьте ветку
- если они есть, начните перечисление фиксации из этой ветки
Вы можете рассмотрите возможность мягкого сброса этой ветки до тех пор, пока эти коммиты не выполняются: индекс будет в желаемом состоянии: вы можете добавить и зафиксировать этот индекс как одну новую фиксацию, которая отменит все, что было сделано после этих коммитов (предки данной ветки)