A command-line tool that makes git easier to use with GitHub.
Перейти к файлу
Mislav Marohnić 7dd2e9617f Automatically add the `upstream` remote when cloning a fork
Example:

    $ hub clone my-fork
    > origin:   git://github.com/MYUSER/my-fork.git
    > upstream: git://github.com/OWNER/original-project.git

    $ hub clone --origin=upstream my-fork
    > (no origin remote)
    > upstream: git://github.com/OWNER/original-project.git
2019-01-21 23:17:12 +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 Automatically add the `upstream` remote when cloning a fork 2019-01-21 23:17:12 +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 Automatically add the `upstream` remote when cloning a fork 2019-01-21 23:17:12 +01:00
fixtures Preserve order of hosts in hub config file 2019-01-02 18:27:50 +01:00
git Support git versions that don't recognize --no-verbose 2018-12-11 10:30:24 +00:00
github Fix alphabetical sort of `hub issue labels` output 2019-01-03 04:43:25 +01:00
md2roff Have level-2 headings appear in upper-case in man pages 2019-01-02 15:11:13 +01:00
md2roff-bin Switch md2roff to new args parser 2019-01-18 04:09:43 +01:00
script Only publish HTML man pages if the tag is cut off master 2019-01-18 19:01:31 +01:00
share Tweak descriptions of several commands 2019-01-21 21:54:34 +01:00
ui ui Printf functions: handle errors by dying 2018-12-22 12:30:38 -05:00
utils Switch `browse` to new args parser 2019-01-18 01:50:29 +01:00
vendor Remove unused `ogier/pflag` 2019-01-18 04:16:46 +01:00
version hub 2.7.0 2018-12-28 08:07:53 +01: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 Switch to new md2roff process in `make man-pages` 2018-12-29 14:33:12 +01:00
.travis.yml Stop testing against go 1.8 2019-01-18 04:32:44 +01:00
CODE_OF_CONDUCT.md Improve contact email, part 2 2017-08-28 21:47:08 +02:00
CONTRIBUTING.md Stop testing against go 1.8 2019-01-18 04:32:44 +01:00
Gemfile Remove Ruby ronn from build toolchain 2018-12-29 14:33:12 +01:00
Gemfile.lock Remove Ruby ronn from build toolchain 2018-12-29 14:33:12 +01:00
Gopkg.lock Remove unused `ogier/pflag` 2019-01-18 04:16:46 +01:00
Gopkg.toml Remove unused `ogier/pflag` 2019-01-18 04:16:46 +01:00
LICENSE MIT 2009-12-08 02:13:06 -08:00
Makefile Support `trimpath` for Go v1.8/1.9 2019-01-02 17:02:12 +01:00
README.md Stop testing against go 1.8 2019-01-18 04:32:44 +01:00
Vagrantfile Use Go 1.4.2 2015-04-12 13:57:05 -07:00
cucumber.yml Detect tmux and run shell completion tests 2013-11-14 16:05:56 +01:00
main.go Remove unused `ogier/pflag` 2019-01-18 04:16:46 +01:00
man-template.html Add HTML template for man pages 2018-12-29 14:33:12 +01: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.9+
  • 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