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.
Why should you use gitsh?
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$
Hit return with no command to run
git status(change this command by setting
git config; remember it will be prefixed with
git), saving even more typing:
gitsh% ⏎ # On branch master nothing to commit, working directory clean gitsh%
Easily execute shell commands:
gitsh% !echo Hello world Hello world gitsh%
Combine commands with
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 user.name 'George Brocklehurst and Mike Burns' gitsh% :set user.email email@example.com gitsh% commit -m 'We are pair programming'
Access information about your repository with magic variables like
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.
sh$ gitsh --git $(which gh) gitsh% pull-request
Mac OS X, via homebrew:
brew tap thoughtbot/formulae brew install gitsh
sudo pkg_add 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.
- 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.
gitsh is was created by thoughtbot's Stockholm software development team and continues to be maintained and funded by thoughtbot. The names and logos for thoughtbot are trademarks of thoughtbot, inc.