A command-line tool that makes git easier to use with GitHub.
Перейти к файлу
Mislav Marohnić 2b73d4faed Document how we scan git remotes and branch tracking information 2018-12-28 07:21:03 +01:00
.ctags.d Rename `ctags` file for compatibility with universal-ctags 2018-06-06 14:00:17 +02:00
cmd Avoid `copy` when making a subslice 2018-05-29 12:31:14 +02:00
commands Document how we scan git remotes and branch tracking information 2018-12-28 07:21:03 +01:00
coverage Measure code coverage between tests 2018-06-07 14:44:56 +02:00
etc Clarify documentation about what constitutes a title in `--message` 2018-11-28 02:38:12 +01:00
features Change `MainProject()` logic to skip over non-GitHub remotes 2018-12-28 04:16:09 +01:00
fixtures Separate config and tests for unix-socket 2018-08-24 10:34:07 -07:00
git Support git versions that don't recognize --no-verbose 2018-12-11 10:30:24 +00:00
github Change `MainProject()` logic to skip over non-GitHub remotes 2018-12-28 04:16:09 +01:00
script add pullrequest vim syntax. #1916 2018-11-12 17:49:11 -05:00
share Document how we scan git remotes and branch tracking information 2018-12-28 07:21:03 +01:00
ui Don't choke on literal `%` output from `--format` use 2018-12-20 18:01:20 +01:00
utils Adding unit tests for util methods 2018-10-28 15:38:31 -07:00
vendor Migrate from gopkg.in/yaml.v1 to gopkg.in/yaml.v2 2018-06-15 00:21:54 -06:00
version hub 2.6.1 2018-12-11 10:52:08 +00:00
.agignore Ignore `bundle/` directory when searching 2018-02-21 13:40:34 +01:00
.gitattributes Enforce unix eol in bash script files 2017-09-02 20:55:54 +01:00
.gitignore Avoid `dep` clashing with Bundler 2018-01-29 20:59:23 +01:00
.travis.yml Test with Go 1.11 2018-08-29 16:42:15 +02:00
CODE_OF_CONDUCT.md Improve contact email, part 2 2017-08-28 21:47:08 +02:00
CONTRIBUTING.md Fix link to README 2018-11-02 20:25:31 +01:00
Gemfile
Gemfile.lock Update Sinatra for Ruby 2.4 compatibility 2018-06-08 21:05:14 +02:00
Gopkg.lock Migrate from gopkg.in/yaml.v1 to gopkg.in/yaml.v2 2018-06-15 00:21:54 -06:00
Gopkg.toml Migrate from gopkg.in/yaml.v1 to gopkg.in/yaml.v2 2018-06-15 00:21:54 -06:00
LICENSE
Makefile Make the utility file during `make man-pages` hidden 2018-11-12 16:44:42 +01:00
README.md Provide correct instructions to build github/hub 2018-11-02 20:17:57 +01:00
Vagrantfile
cucumber.yml
main.go Enforce go1.8+ via build flags too 2017-05-17 13:34:13 +02:00

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.

See Usage documentation for the list of all commands and their arguments.

Installation

Dependencies:

  • git 1.7.3 or newer

Homebrew

hub can be installed through Homebrew on macOS:

$ brew install hub
$ hub version
git version 1.7.6
hub version 2.2.3

Windows

hub can be installed through Scoop on Windows:

> scoop install hub

Fedora Linux

On Fedora you can install hub through DNF:

$ sudo dnf install hub
$ hub version
git version 2.9.3
hub version 2.2.9

Arch Linux

On Arch Linux you can install hub from official repository:

$ sudo pacman -S hub

Standalone

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

Source

With your GOPATH already set up:

mkdir -p "$GOPATH"/src/github.com/github
git clone \
  --config transfer.fsckobjects=false \
  --config receive.fsckobjects=false \
  --config fetch.fsckobjects=false \
  https://github.com/github/hub.git "$GOPATH"/src/github.com/github/hub
cd "$GOPATH"/src/github.com/github/hub
make install prefix=/usr/local

Prerequisites for compilation are:

  • make
  • Go 1.8+
  • Ruby 1.9+ with Bundler - for generating man pages

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)"

PowerShell

If you're using PowerShell, you can set an alias for hub by placing the following in your PowerShell profile (usually ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1):

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

Shell tab-completion

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

Installation instructions

Meta