My controversial opinion is that git needs some kind of gui that help you keep track of the state of the repo
A very effective solution for that is a well-configured shell. IF you summarize the state of the repo in the prompt, it is always visible while typing a command.