Another option, if you're using Vim, is to use Tim Pope's Git plugin, Fugitive[0]
They provide a conceptual framework for developer to orient and frame their actions with (sort of) right information density in the “native” $EDITOR environment.
I think VSCode has that git plugin which is very popular but I can’t remember the name - gives great git log/blame interface.
There is also lazygit, it's kind of similar, but different.
Another feature I really like with fugitive is :Ggrep which runs a git grep and returns the result in the quickfix list.