GithubHelp home page GithubHelp logo

isabella232 / gitsh Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thoughtbot/gitsh

0.0 0.0 0.0 6.18 MB

An interactive shell for git

Home Page: https://thoughtbot.com

License: BSD 3-Clause "New" or "Revised" License

Ruby 83.64% Shell 0.20% C 12.33% Makefile 0.97% M4 2.87%

gitsh's Introduction

gitsh

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
    sh$
    
  • 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 [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.

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.

gitsh's People

Contributors

adrianheine avatar agentantelope avatar aldrik avatar andybalaam avatar benknoble avatar calleluks avatar charlietran avatar christoomey avatar croaky avatar eebs avatar georgebrock avatar gfontenot avatar jakirkham avatar jeffmueller avatar jferris avatar jjb avatar mike-burns avatar pablobm avatar philoserf avatar salbertson avatar sgrif avatar sharplet avatar sidraval avatar srstevenson avatar teoljungberg avatar tomlea avatar tysongach avatar whmii avatar willium avatar xduugu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.