2009-12-08 08:28:38 +03:00
|
|
|
hub: git + hub = github
|
|
|
|
=======================
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-09 07:05:17 +03:00
|
|
|
`hub` is a command line utility which adds GitHub knowledge to `git`.
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-09 07:05:17 +03:00
|
|
|
It can used on its own or as a `git` wrapper.
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-08 12:12:32 +03:00
|
|
|
Normal:
|
2009-12-08 11:34:29 +03:00
|
|
|
|
|
|
|
$ hub clone rtomayko/tilt
|
|
|
|
Initialized empty Git repository in /Users/chris/sandbox/tilt/.git/
|
|
|
|
remote: Counting objects: 307, done.
|
|
|
|
remote: Compressing objects: 100% (219/219), done.
|
|
|
|
remote: Total 307 (delta 175), reused 85 (delta 45)
|
|
|
|
Receiving objects: 100% (307/307), 48.91 KiB, done.
|
|
|
|
Resolving deltas: 100% (175/175), done.
|
|
|
|
|
2009-12-09 07:05:17 +03:00
|
|
|
Wrapping `git`:
|
2009-12-08 11:34:29 +03:00
|
|
|
|
|
|
|
$ git clone rack/rack
|
|
|
|
Initialized empty Git repository in /Users/chris/sandbox/rack/.git/
|
|
|
|
remote: Counting objects: 4005, done.
|
|
|
|
remote: Compressing objects: 100% (1738/1738), done.
|
|
|
|
remote: Total 4005 (delta 2505), reused 3620 (delta 2208)
|
|
|
|
Receiving objects: 100% (4005/4005), 785.82 KiB | 129 KiB/s, done.
|
|
|
|
Resolving deltas: 100% (2505/2505), done.
|
|
|
|
|
2009-12-10 13:05:30 +03:00
|
|
|
hub requires you have `git` installed and in your `$PATH`. It also
|
2009-12-09 08:14:05 +03:00
|
|
|
requires Ruby 1.8.6+ or Ruby 1.9.1+. No other libraries necessary.
|
2009-12-09 07:10:12 +03:00
|
|
|
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-08 08:28:38 +03:00
|
|
|
Install
|
2009-12-08 00:21:12 +03:00
|
|
|
-------
|
|
|
|
|
2009-12-09 04:40:45 +03:00
|
|
|
### Standalone
|
|
|
|
|
2009-12-09 07:10:12 +03:00
|
|
|
`hub` is most easily installed as a standalone script:
|
2009-12-08 12:12:32 +03:00
|
|
|
|
2010-01-24 01:09:55 +03:00
|
|
|
curl -s http://defunkt.github.com/hub/standalone > ~/bin/hub &&
|
|
|
|
chmod 755 ~/bin/hub
|
2009-12-08 12:12:32 +03:00
|
|
|
|
2009-12-10 13:05:30 +03:00
|
|
|
Assuming `~/bin/` is in your `$PATH`, you're ready to roll:
|
2009-12-09 04:40:45 +03:00
|
|
|
|
2009-12-09 07:05:17 +03:00
|
|
|
$ hub version
|
|
|
|
git version 1.6.4.2
|
2009-12-24 21:55:07 +03:00
|
|
|
hub version 0.2.0
|
2009-12-09 04:40:45 +03:00
|
|
|
|
2009-12-11 19:44:42 +03:00
|
|
|
### Homebrew
|
|
|
|
|
2009-12-12 20:50:56 +03:00
|
|
|
brew install hub
|
2009-12-11 19:44:42 +03:00
|
|
|
|
2009-12-10 13:14:32 +03:00
|
|
|
### RubyGems
|
2009-12-09 08:28:15 +03:00
|
|
|
|
2009-12-10 13:14:32 +03:00
|
|
|
Though not recommended, `hub` can also be installed as a RubyGem:
|
2009-12-09 08:28:15 +03:00
|
|
|
|
2009-12-13 03:03:55 +03:00
|
|
|
$ gem install git-hub
|
2009-12-09 08:28:15 +03:00
|
|
|
|
|
|
|
(Yes, the gem name is `git-hub`.)
|
|
|
|
|
2010-01-24 01:10:03 +03:00
|
|
|
(It's not recommended because of the RubyGems startup time. See [this
|
|
|
|
gist][speed] for information.)
|
|
|
|
|
2009-12-09 04:40:45 +03:00
|
|
|
### Source
|
|
|
|
|
2009-12-09 04:34:37 +03:00
|
|
|
You can also install from source:
|
2009-12-08 00:21:12 +03:00
|
|
|
|
|
|
|
$ git clone git://github.com/defunkt/hub.git
|
|
|
|
$ cd hub
|
2009-12-11 19:44:42 +03:00
|
|
|
$ rake install prefix=/usr/local
|
2009-12-08 00:21:12 +03:00
|
|
|
|
|
|
|
|
2009-12-09 04:40:45 +03:00
|
|
|
Aliasing
|
|
|
|
--------
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-09 07:08:36 +03:00
|
|
|
hub works best when it wraps `git`. This is not dangerous - your
|
|
|
|
normal git commands should all work. hub merely adds some sugar.
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-09 07:08:36 +03:00
|
|
|
Typing `hub alias <shell>` will display alias instructions for
|
|
|
|
your shell. `hub alias` alone will show the known shells.
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-09 07:08:36 +03:00
|
|
|
For example:
|
|
|
|
|
|
|
|
$ hub alias bash
|
|
|
|
Run this in your shell to start using `hub` as `git`:
|
|
|
|
alias git=hub
|
|
|
|
|
|
|
|
You should place this command in your `.bash_profile` or other startup
|
2009-12-09 07:31:04 +03:00
|
|
|
script to ensure runs on login.
|
2009-12-09 07:08:36 +03:00
|
|
|
|
|
|
|
The alias command can also be eval'd directly using the `-s` flag:
|
|
|
|
|
|
|
|
$ eval `hub alias -s bash`
|
2009-12-08 12:12:53 +03:00
|
|
|
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-08 11:18:55 +03:00
|
|
|
Commands
|
2009-12-08 00:21:12 +03:00
|
|
|
--------
|
|
|
|
|
2009-12-09 07:08:36 +03:00
|
|
|
Assuming you've aliased `hub` to `git` the following commands now have
|
2009-12-09 04:40:45 +03:00
|
|
|
superpowers:
|
|
|
|
|
2009-12-08 00:21:12 +03:00
|
|
|
### git clone
|
|
|
|
|
|
|
|
$ git clone schacon/ticgit
|
2009-12-08 11:29:29 +03:00
|
|
|
> git clone git://github.com/schacon/ticgit.git
|
|
|
|
|
2009-12-08 00:21:12 +03:00
|
|
|
$ git clone -p schacon/ticgit
|
2009-12-08 11:29:29 +03:00
|
|
|
> git clone git@github.com:schacon/ticgit.git
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-09 08:06:34 +03:00
|
|
|
$ git clone resque
|
|
|
|
> git clone git://github.com/YOUR_USER/resque.git
|
|
|
|
|
|
|
|
$ git clone -p resque
|
|
|
|
> git clone git@github.com:YOUR_USER/resque.git
|
|
|
|
|
2009-12-08 00:21:12 +03:00
|
|
|
### git remote add
|
|
|
|
|
|
|
|
$ git remote add rtomayko
|
2009-12-08 11:29:29 +03:00
|
|
|
> git remote add rtomayko git://github.com/rtomayko/CURRENT_REPO.git
|
|
|
|
|
2009-12-09 15:39:23 +03:00
|
|
|
$ git remote add -p rtomayko
|
2009-12-08 11:29:29 +03:00
|
|
|
> git remote add rtomayko git@github.com:rtomayko/CURRENT_REPO.git
|
2009-12-08 00:21:12 +03:00
|
|
|
|
|
|
|
### git init
|
|
|
|
|
2009-12-08 08:28:38 +03:00
|
|
|
$ git init -g
|
2009-12-08 11:29:29 +03:00
|
|
|
> git init
|
2009-12-09 08:06:34 +03:00
|
|
|
> git remote add origin git@github.com:YOUR_USER/REPO.git
|
2009-12-08 11:29:29 +03:00
|
|
|
|
2009-12-24 21:32:39 +03:00
|
|
|
### git push
|
|
|
|
|
|
|
|
$ git push origin,staging,qa bert_timeout
|
|
|
|
> git push origin bert_timeout
|
|
|
|
> git push staging bert_timeout
|
|
|
|
> git push qa bert_timeout
|
|
|
|
|
2009-12-08 11:29:29 +03:00
|
|
|
### git help
|
|
|
|
|
|
|
|
$ git help
|
|
|
|
> (improved git help)
|
2009-12-10 23:59:01 +03:00
|
|
|
$ git help hub
|
|
|
|
> (hub man page)
|
2009-12-08 00:21:12 +03:00
|
|
|
|
|
|
|
|
2009-12-09 04:40:45 +03:00
|
|
|
GitHub Login
|
|
|
|
------------
|
|
|
|
|
|
|
|
To get the most out of `hub`, you'll want to ensure your GitHub login
|
|
|
|
is stored locally in your Git config.
|
|
|
|
|
|
|
|
To test it run this:
|
|
|
|
|
|
|
|
$ git config --global github.user
|
|
|
|
|
|
|
|
If you see nothing, you need to set the config setting:
|
|
|
|
|
2009-12-09 08:14:05 +03:00
|
|
|
$ git config --global github.user YOUR_USER
|
2009-12-09 04:40:45 +03:00
|
|
|
|
|
|
|
See <http://github.com/guides/local-github-config> for more information.
|
|
|
|
|
|
|
|
|
2009-12-24 21:55:07 +03:00
|
|
|
Configuration
|
|
|
|
-------------
|
|
|
|
|
|
|
|
If you prefer `http://` clones to `git://` clones, you can set the
|
|
|
|
`hub.http-clone` option using `git-config`.
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
$ git clone defunkt/repl
|
|
|
|
< git clone >
|
|
|
|
$ git config --global --add hub.http-clone yes
|
|
|
|
$ git clone defunkt/repl
|
|
|
|
< http clone >
|
|
|
|
|
|
|
|
Or you can enter this manually into your `~/.gitconfig` file:
|
|
|
|
|
|
|
|
$ cat ~/.gitconfig
|
|
|
|
[hub]
|
|
|
|
http-clone = yes
|
|
|
|
|
|
|
|
|
2009-12-08 11:18:55 +03:00
|
|
|
Prior Art
|
2009-12-08 00:21:12 +03:00
|
|
|
---------
|
|
|
|
|
|
|
|
These projects also aim to either improve git or make interacting with
|
|
|
|
GitHub simpler:
|
|
|
|
|
|
|
|
* [eg](http://www.gnome.org/~newren/eg/)
|
|
|
|
* [github-gem](http://github.com/defunkt/github-gem)
|
|
|
|
* [gh](http://github.com/visionmedia/gh)
|
|
|
|
|
|
|
|
|
2009-12-08 11:18:55 +03:00
|
|
|
Contributing
|
|
|
|
------------
|
|
|
|
|
|
|
|
Once you've made your great commits:
|
|
|
|
|
|
|
|
1. [Fork][0] hub
|
|
|
|
2. Create a topic branch - `git checkout -b my_branch`
|
|
|
|
3. Push to your branch - `git push origin my_branch`
|
|
|
|
4. Create an [Issue][1] with a link to your branch
|
|
|
|
5. That's it!
|
|
|
|
|
|
|
|
|
2009-12-08 08:28:38 +03:00
|
|
|
Meta
|
|
|
|
----
|
2009-12-08 00:21:12 +03:00
|
|
|
|
2009-12-08 11:18:55 +03:00
|
|
|
* Code: `git clone git://github.com/defunkt/hub.git`
|
|
|
|
* Home: <http://github.com/defunkt/hub>
|
|
|
|
* Bugs: <http://github.com/defunkt/hub/issues>
|
|
|
|
* List: <http://groups.google.com/group/github>
|
2009-12-09 08:32:02 +03:00
|
|
|
* Test: <http://runcoderun.com/defunkt/hub>
|
|
|
|
* Gems: <http://gemcutter.org/gems/git-hub>
|
2009-12-08 11:18:55 +03:00
|
|
|
|
|
|
|
|
|
|
|
Author
|
|
|
|
------
|
|
|
|
|
|
|
|
Chris Wanstrath :: chris@ozmm.org :: @defunkt
|
|
|
|
|
|
|
|
[0]: http://help.github.com/forking/
|
|
|
|
[1]: http://github.com/defunkt/hub/issues
|
2010-01-24 01:10:03 +03:00
|
|
|
[speed]: http://gist.github.com/284823
|