You might want to try gitsh. From their readme:
The
gitshprogram is an interactive shell for git. From withingitshyou can issue any git command, even using your local aliases and configuration.
- Git commands tend to come in groups. Avoid typing
gitover and over and over by running them in a dedicated git shell:sh$ gitsh gitsh% status gitsh% add . gitsh% commit -m "Ship it!" gitsh% push gitsh% ctrl-d sh$
Or have a look at the other projects linked there:
- git-sh – A customised bash shell with a Git prompt, aliases, and completion.
- gitsh – A simple Git shell written in Perl.
- repl – Wraps any program with subcommands in a REPL.
Note: Haven’t used this myself.