git-repl(1) - git read-eval-print-loop

1. git-repl(1)
2. Git Extras
3. git-repl(1)

## NAME

`git-repl` - git read-eval-print-loop

## SYNOPSIS

`git-repl`

`git-repl` [command...]

## DESCRIPTION

Git read-eval-print-loop. Lets you run `git` commands without typing 'git'.

Commands can be prefixed with an exclamation mark (!) to be interpreted as a regular shell command.

Any arguments to git repl will be taken collectively as the first command to execute in the repl.

Type `exit`, `quit`, or `q` to end the repl session. Ctrl-D and Ctrl-C will also work.

## COMMANDS

<command>

Interpreted as `git <command>`.

!<command>

Interpreted as `<command>` (not through `git`).

ls

Equivalent of 'git ls-files'.

exit|quit|q

Ends the repl session.

## CONFIGURATION

Commands entered in a repl session will be saved to a history file and be available in future sessions, similar to a shell or programming language repl. By default, the global history file is at `~/.local/state/git_extras_repl_history`. You can specify that your projects each have their own independent history file. This file will be saved in .git_repl_history at the top level of the repo, and will need to be added to the repo or global .gitignore.

      # remove the --global flag to configure only an individual project to have its own history file
      git config --global git-extras.repl.use-local-history "true"

You can specify a default command to run when hitting enter:

`git config --global git-extras.repl.on-enter-command "git status -sb"`

You can configure which character is used at the end of the prompt (default `>`):

`git config --global git-extras.repl.prompt-character "±"`

You can specify the prefix for the prompt (default `git`): `git config --global git-extras.repl.prefix ""`

You can have the name of the current git repo shown in the prompt (default `false`):

`git config --global git-extras.repl.show-project-name "true"`

## EXAMPLES

    $ git repl
    git version 2.34.1
    git-extras version 7.3.0
    Type 'ls' to ls files below current directory; '!command' to execute any command or just 'subcommand' to execute any git subcommand; 'quit', 'exit', 'q', ^D, or ^C to exit the git repl.

    git (master)> ls-files
    History.md
    Makefile
    Readme.md
    bin/git-changelog
    bin/git-count
    bin/git-delete-branch
    bin/git-delete-tag
    bin/git-ignore
    bin/git-release

    git (master)> !echo Straight from the shell!
    Straight from the shell!

    git (master)> quit

## AUTHOR

Written by Tj Holowaychuk <tj@vision-media.ca>. Updated by Wyatt S Carpenter to add display of the previous command's exit status, 'q', and the ability to pass in the initial command as arguments.

## REPORTING BUGS

<https://github.com/tj/git-extras/issues>

## SEE ALSO

<https://github.com/tj/git-extras>

2. February 2026
3. git-repl(1)