hub helps you win at git.
Go Cucumber Shell Ruby Other
Latest commit c25e33e Jul 12, 2016 @mislav mislav Fix case when multiple Enterprise hosts are configured
We only ever read the first hostname from the list because we didn't use
`git config --get-all`.

Fixes #1188
Failed to load latest commit information.
cmd Improve detecting local clone resources Jan 22, 2016
commands Fix indent for `hub alias` fish instructions Jul 12, 2016
etc bashcomp: try to load git comp first (fix #592) Mar 4, 2016
features Fix case when multiple Enterprise hosts are configured Jul 12, 2016
fixtures Add unit tests for git.Remotes() and github.Remotes(). Nov 2, 2015
git Fix case when multiple Enterprise hosts are configured Jul 12, 2016
github Fix case when multiple Enterprise hosts are configured Jul 12, 2016
man List hub commands in main man page Jan 25, 2016
script Explicitly specify binstub path in scripts/bootstrap Jul 7, 2016
ui Switch from godep & rewriting import paths to GO15VENDOREXPERIMENT Jan 20, 2016
utils Infer project name from git workdir root name instead of PWD Feb 28, 2016
vendor Update go-isatty to latest for netbsd support Feb 28, 2016
version Add hub version to crash report Sep 27, 2015
.gitignore Makefile galore! Jan 25, 2016
.travis.yml Makefile galore! Jan 25, 2016
CONTRIBUTING.md Makefile galore! Jan 25, 2016
Gemfile Include all man pages in packaged releases Jan 25, 2016
Gemfile.lock Delete hub examples and configuration docs from the README Jan 25, 2016
LICENSE MIT Dec 8, 2009
Makefile Add `hub release show <TAG>` Jan 31, 2016
README.md Remove outdated `go get` installation instructions Jan 30, 2016
Vagrantfile Use Go 1.4.2 Apr 12, 2015
cucumber.yml Detect tmux and run shell completion tests Nov 14, 2013
main.go Change namespace to github/hub Feb 10, 2014

README.md

git + hub = github

hub is a command line tool that wraps git in order to extend it with extra features and commands that make working with GitHub easier.

$ hub clone rtomayko/tilt

# expands to:
$ git clone git://github.com/rtomayko/tilt.git

hub is best aliased as git, so you can type $ git <command> in the shell and get all the usual hub features. See "Aliasing" below.

Installation

Dependencies:

  • git 1.7.3 or newer

Homebrew

hub can be installed through Homebrew:

$ brew install hub
$ hub version
git version 1.7.6
hub version 2.2.0

Standalone

hub can be easily installed as an executable. Download the latest compiled binaries and put it anywhere in your executable path.

Source

To install hub from source, you need to have a Go development environment:

$ git clone https://github.com/github/hub.git
$ cd hub
# Assuming `~/bin` is in your PATH:
$ ./script/build -o ~/bin/hub

Aliasing

Using hub feels best when it's aliased as git. This is not dangerous; your normal git commands will all work. hub merely adds some sugar.

hub alias displays instructions for the current shell. With the -s flag, it outputs a script suitable for eval.

You should place this command in your .bash_profile or other startup script:

eval "$(hub alias -s)"

Shell tab-completion

hub repository contains tab-completion scripts for bash and zsh. These scripts complement existing completion scripts that ship with git.

Installation instructions

Meta

Prior art

These projects also aim to either improve git or make interacting with GitHub simpler: