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.
See Usage documentation for the list of all commands and their arguments.
- git 1.7.3 or newer
hub can be installed through Homebrew on macOS:
$ brew install hub $ hub version git version 1.7.6 hub version 2.2.3
hub can be installed through Scoop on Windows:
> scoop install hub
On Fedora you can install
hub through DNF:
$ sudo dnf install hub $ hub version git version 2.9.3 hub version 2.2.9
On Arch Linux you can install
hub from official repository:
$ sudo pacman -S hub
hub can be easily installed as an executable. Download the latest
compiled binaries and put it anywhere
in your executable path.
With your GOPATH already set up:
$ go get github.com/github/hub $ cd "$GOPATH"/src/github.com/github/hub $ make install prefix=/usr/local
Prerequisites for compilation are:
- Go 1.8+
- Ruby 1.9+ with Bundler - for generating man pages
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
You should place this command in your
.bash_profile or other startup script:
eval "$(hub alias -s)"
If you're using PowerShell, you can set an alias for
hub by placing the
following in your PowerShell profile (usually
Set-Alias git hub
A simple way to do this is to run the following from the PowerShell prompt:
Add-Content $PROFILE "`nSet-Alias git hub"
Note: You'll need to restart your PowerShell console in order for the changes to be picked up.
If your PowerShell profile doesn't exist, you can create it by running the following:
New-Item -Type file -Force $PROFILE
hub repository contains tab-completion scripts for bash, zsh and fish. These scripts complement existing completion scripts that ship with git.