gitsh

An interactive shell for git

  • Owner: thoughtbot/gitsh
  • Platform:
  • License:: BSD 3-Clause "New" or "Revised" License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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:

  • 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
    gitsh%
    
  • Easily execute shell commands:

    gitsh% !echo Hello world
    Hello world
    gitsh%
    
  • 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 user.name 'George Brocklehurst and Mike Burns'
    gitsh% :set user.email support+george+mike@thoughtbot.com
    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.

License

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

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.

Main metrics

Overview
Name With Ownerthoughtbot/gitsh
Primary LanguageRuby
Program languageRuby (Language Count: 5)
Platform
License:BSD 3-Clause "New" or "Revised" License
所有者活动
Created At2013-11-02 09:33:38
Pushed At2024-04-07 06:49:47
Last Commit At2019-12-16 08:26:11
Release Count16
Last Release Namev0.14 (Posted on )
First Release Namev0.1 (Posted on )
用户参与
Stargazers Count2k
Watchers Count63
Fork Count102
Commits Count403
Has Issues Enabled
Issues Count179
Issue Open Count32
Pull Requests Count157
Pull Requests Open Count8
Pull Requests Close Count46
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private