Here is a much, much, much lighter weight version I've been using since forever:

    gi() {
        git branch --sort=-committerdate |\
         grep -v '^\*' | cut -d' ' -f3 | fzf |\
         xargs git checkout
    }
fzf handles the TUI part