An interactive shell for git
Alternatives To Gitsh
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Git Extras16,426
3 days ago1February 27, 2018110mitShell
GIT utilities -- repo summary, repl, changelog population, author commit percentages and more
Ipython15,94031,9613,93420 hours ago169June 02, 20231,631bsd-3-clausePython
Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc.
2 years ago37bsd-3-clauseRuby
An interactive shell for git
5 years ago1otherPython
Korean Alphabet Transcription
7 years ago1otherC#
C# REPL tool for Unity3D built on Miguel's tool.
13 years ago2September 04, 20153mitPython
Run command as REPL-environment (useful for git!).
7 months ago3Java
Branches for integration and releases
Pisc Mirror7
5 years ago1mitJavaScript
A git based mirror of
11 years agomitRuby
CLI Read-Eval-Execute-Loop tool
7 years agomitC#
ClrMD Tools
Alternatives To Gitsh
Select To Compare

Alternative Project Comparisons


The gitsh program is an interactive shell for git. From within gitsh you can issue any git command, even using your local aliases and configuration.

For a quick introduction to gitsh, watch our video on Upcase. For further documentation, you can view the man page by running man gitsh in your terminal.

Build Status Code Climate Reviewed by Hound

Why should you use gitsh?

  • Git commands tend to come in groups. Avoid typing git over 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
  • Hit return with no command to run git status (change this command by setting gitsh.defaultCommand via git config; remember it will be prefixed with git), saving even more typing:

    gitsh% ⏎
    # On branch master
    nothing to commit, working directory clean
  • Easily execute shell commands:

    gitsh% !echo Hello world
    Hello world
  • Combine commands with &&, ||, and ;:

    gitsh% commit && push
  • Make temporary modifications to your git configuration with gitsh config variables. These changes only affect git commands issued in this gitsh session and are forgotten when you exit, just like shell environment variables.

    gitsh% :set 'George Brocklehurst and Mike Burns'
    gitsh% :set support+george[email protected]
    gitsh% commit -m 'We are pair programming'
  • Access information about your repository with magic variables like $_rebase_base, $_merge_base and $_prior.

    gitsh% rebase master
    CONFLICT (content): Merge conflict in db/schema.rb
    gitsh% checkout $_rebase_base -- db/schema
    gitsh% !rake db:schema:load db:migrate
  • Tab completion for git commands, aliases, and branches without modifying your shell settings, and without any extra setup for aliases and third party git commands.

  • Information about the state of your git repository in the prompt, without modifying your shell settings. This includes the name of the current HEAD, and a colour and sigil to indicate the status.

  • It works with hub and gh:

    sh$ gitsh --git $(which gh)
    gitsh% pull-request

Installing gitsh

See the installation guide for install instructions for other operating systems.

Contributing to gitsh

Pull requests are very welcome. See the contributing guide for more details.

Similar projects

  • 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.


gitsh is Copyright © 2016 Mike Burns, George Brocklehurst, and thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About thoughtbot


Created, maintained and funded by thoughtbot. The names and logos for thoughtbot are trademarks of thoughtbot, inc.

We love open source software! See our other projects. We are available for hire.

Popular Git Projects
Popular Repl Projects
Popular Version Control Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.