В чем разница между undo commit, revert commit и reset branch to commit?
Там в меню твоей IDE есть ещё несколько методов откатить изменения. 
Это же JetBrains? Все способы подробно описаны в справке, например вот как в IntelliJ IDEA

Reset удаляет все коммиты выше выбранного. Там предлагается четыре варианта этой команды. Отличия их в том, как поступить с изменениями в рабочем каталоге и в индексе. 

Revert не удаляет коммит, а создаёт новый, который описывает действия необходимые для отмены выбранного коммита.

Undo позволяет отменить последний коммит. Но изменения коммита предлагает сохранить в новый changelist. Файлы в рабочем каталоге не изменятся и можно будет их подправить и заново закоммитить.

Drop — удобная команда для удаления произвольного коммита из середины истории.  Под капотом там на самом деле выполняется интерактивный rebase, но в автоматическом режиме.

Revert Selected Changes напоминает Revert,  но отменяет изменения отдельного файла, а не всего коммита. Эта команда доступна на Панели изменёных файлов.

Get позволяет вернуть любой файл к состоянию на определённый коммит в истории. Выберем файл любым удобным способом и контекстное меню Git | Show History покажет все коммиты, в которых изменялся данный файл. Кликнув на нужном коммите правой кнопкой увидим команду Get
revert создаст новый коммит, который компенсирует действие старого.
reset branch to commit - удалит все коммиты, которые идут после коммита, на который происходит ресет.

Undo - это как ресет, но только он отменит этот коммит