hub 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of hub might be problematic. Click here for more details.
- data/LICENSE +20 -0
- data/README.md +351 -0
- data/Rakefile +104 -0
- data/bin/hub +7 -0
- data/lib/hub.rb +5 -0
- data/lib/hub/args.rb +99 -0
- data/lib/hub/commands.rb +718 -0
- data/lib/hub/context.rb +159 -0
- data/lib/hub/runner.rb +71 -0
- data/lib/hub/standalone.rb +52 -0
- data/lib/hub/version.rb +3 -0
- data/man/hub.1 +356 -0
- data/man/hub.1.html +370 -0
- data/man/hub.1.ronn +275 -0
- data/test/alias_test.rb +41 -0
- data/test/deps.rip +1 -0
- data/test/fakebin/git +11 -0
- data/test/fakebin/open +3 -0
- data/test/helper.rb +111 -0
- data/test/hub_test.rb +847 -0
- data/test/standalone_test.rb +49 -0
- metadata +106 -0
data/man/hub.1.html
ADDED
@@ -0,0 +1,370 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv='content-type' value='text/html;charset=utf8'>
|
5
|
+
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
|
6
|
+
<title>hub(1) - git + hub = github</title>
|
7
|
+
<style type='text/css' media='all'>
|
8
|
+
/* style: man */
|
9
|
+
body#manpage {margin:0}
|
10
|
+
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
|
11
|
+
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
|
12
|
+
.mp h2 {margin:10px 0 0 0}
|
13
|
+
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
|
14
|
+
.mp h3 {margin:0 0 0 4ex}
|
15
|
+
.mp dt {margin:0;clear:left}
|
16
|
+
.mp dt.flush {float:left;width:8ex}
|
17
|
+
.mp dd {margin:0 0 0 9ex}
|
18
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
|
19
|
+
.mp pre {margin-bottom:20px}
|
20
|
+
.mp pre+h2,.mp pre+h3 {margin-top:22px}
|
21
|
+
.mp h2+pre,.mp h3+pre {margin-top:5px}
|
22
|
+
.mp img {display:block;margin:auto}
|
23
|
+
.mp h1.man-title {display:none}
|
24
|
+
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
|
25
|
+
.mp h2 {font-size:16px;line-height:1.25}
|
26
|
+
.mp h1 {font-size:20px;line-height:2}
|
27
|
+
.mp {text-align:justify;background:#fff}
|
28
|
+
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
|
29
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
|
30
|
+
.mp u {text-decoration:underline}
|
31
|
+
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
|
32
|
+
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
|
33
|
+
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
|
34
|
+
.mp b.man-ref {font-weight:normal;color:#434241}
|
35
|
+
.mp pre {padding:0 4ex}
|
36
|
+
.mp pre code {font-weight:normal;color:#434241}
|
37
|
+
.mp h2+pre,h3+pre {padding-left:0}
|
38
|
+
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
|
39
|
+
ol.man-decor {width:100%}
|
40
|
+
ol.man-decor li.tl {text-align:left}
|
41
|
+
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
|
42
|
+
ol.man-decor li.tr {text-align:right;float:right}
|
43
|
+
</style>
|
44
|
+
</head>
|
45
|
+
<!--
|
46
|
+
The following styles are deprecated and will be removed at some point:
|
47
|
+
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
|
48
|
+
|
49
|
+
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
|
50
|
+
.man-navigation should be used instead.
|
51
|
+
-->
|
52
|
+
<body id='manpage'>
|
53
|
+
<div class='mp' id='man'>
|
54
|
+
|
55
|
+
<div class='man-navigation' style='display:none'>
|
56
|
+
<a href="#NAME">NAME</a>
|
57
|
+
<a href="#SYNOPSIS">SYNOPSIS</a>
|
58
|
+
<a href="#DESCRIPTION">DESCRIPTION</a>
|
59
|
+
<a href="#CONFIGURATION">CONFIGURATION</a>
|
60
|
+
<a href="#EXAMPLES">EXAMPLES</a>
|
61
|
+
<a href="#BUGS">BUGS</a>
|
62
|
+
<a href="#AUTHORS">AUTHORS</a>
|
63
|
+
<a href="#SEE-ALSO">SEE ALSO</a>
|
64
|
+
</div>
|
65
|
+
|
66
|
+
<ol class='man-decor man-head man head'>
|
67
|
+
<li class='tl'>hub(1)</li>
|
68
|
+
<li class='tc'>Git Manual</li>
|
69
|
+
<li class='tr'>hub(1)</li>
|
70
|
+
</ol>
|
71
|
+
|
72
|
+
<h2 id="NAME">NAME</h2>
|
73
|
+
<p class="man-name">
|
74
|
+
<code>hub</code> - <span class="man-whatis">git + hub = github</span>
|
75
|
+
</p>
|
76
|
+
|
77
|
+
<h2 id="SYNOPSIS">SYNOPSIS</h2>
|
78
|
+
|
79
|
+
<p><code>hub</code> <var>COMMAND</var> <var>OPTIONS</var><br />
|
80
|
+
<code>hub alias</code> [<code>-s</code>] <var>SHELL</var></p>
|
81
|
+
|
82
|
+
<p><code>git init -g</code> <var>OPTIONS</var><br />
|
83
|
+
<code>git create</code> [<code>-p</code>] [<code>-d <DESCRIPTION></code>] [<code>-h <HOMEPAGE></code>]<br />
|
84
|
+
<code>git clone</code> [<code>-p</code>] <var>OPTIONS</var> [<var>USER</var>/]<var>REPOSITORY</var> <var>DIRECTORY</var><br />
|
85
|
+
<code>git remote add</code> [<code>-p</code>] <var>OPTIONS</var> <var>USER</var>[/<var>REPOSITORY</var>]<br />
|
86
|
+
<code>git remote set-url</code> [<code>-p</code>] <var>OPTIONS</var> <var>REMOTE-NAME</var> <var>USER</var>[/<var>REPOSITORY</var>]<br />
|
87
|
+
<code>git fetch</code> <var>USER-1</var>,[<var>USER-2</var>,...]<br />
|
88
|
+
<code>git cherry-pick</code> <var>GITHUB-REF</var><br />
|
89
|
+
<code>git am</code> <var>GITHUB-URL</var><br />
|
90
|
+
<code>git push</code> <var>REMOTE-1</var>,<var>REMOTE-2</var>,...,<var>REMOTE-N</var> <var>REF</var><br />
|
91
|
+
<code>git browse</code> [<code>-u</code>] [[<var>USER</var><code>/</code>]<var>REPOSITORY</var>] [SUBPAGE]<br />
|
92
|
+
<code>git compare</code> [<code>-u</code>] [<var>USER</var>] [<var>START</var>...]<var>END</var><br />
|
93
|
+
<code>git submodule add</code> [<code>-p</code>] <var>OPTIONS</var> [<var>USER</var>/]<var>REPOSITORY</var> <var>DIRECTORY</var><br />
|
94
|
+
<code>git fork</code> [<code>--no-remote</code>]</p>
|
95
|
+
|
96
|
+
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
97
|
+
|
98
|
+
<p><code>hub</code> enhances various <code>git</code> commands with GitHub remote expansion. The
|
99
|
+
alias command displays information on configuring your environment:</p>
|
100
|
+
|
101
|
+
<ul>
|
102
|
+
<li><p><code>hub alias</code> [<code>-s</code>] <var>SHELL</var>:
|
103
|
+
Writes shell aliasing code for <var>SHELL</var> (<code>bash</code>, <code>sh</code>, <code>zsh</code>,
|
104
|
+
<code>csh</code>) to standard output. With the <code>-s</code> option, the output of
|
105
|
+
this command can be evaluated directly within the shell:<br />
|
106
|
+
<code>eval $(hub alias -s bash)</code></p></li>
|
107
|
+
<li><p><code>git init</code> <code>-g</code> <var>OPTIONS</var>:
|
108
|
+
Create a git repository as with <span class="man-ref">git-init<span class="s">(1)</span></span> and add remote <code>origin</code> at
|
109
|
+
"git@github.com:<var>USER</var>/<var>REPOSITORY</var>.git"; <var>USER</var> is your GitHub username and
|
110
|
+
<var>REPOSITORY</var> is the current working directory's basename.</p></li>
|
111
|
+
<li><p><code>git create</code> [<code>-p</code>] [<code>-d <DESCRIPTION></code>] [<code>-h <HOMEPAGE></code>]:<br />
|
112
|
+
Create a new public github repository from the current git
|
113
|
+
repository and add remote <code>origin</code> at
|
114
|
+
"git@github.com:<var>USER</var>/<var>REPOSITORY</var>.git"; <var>USER</var> is your GitHub
|
115
|
+
username and <var>REPOSITORY</var> is the current working directory's
|
116
|
+
basename. With <code>-p</code>, create a private repository. <code>-d</code> and <code>-h</code>
|
117
|
+
set the repository's description and homepage, respectively.</p></li>
|
118
|
+
<li><p><code>git clone</code> [<code>-p</code>] <var>OPTIONS</var> [<var>USER</var><code>/</code>]<var>REPOSITORY</var> <var>DIRECTORY</var>:<br />
|
119
|
+
Clone repository "git://github.com/<var>USER</var>/<var>REPOSITORY</var>.git" into
|
120
|
+
<var>DIRECTORY</var> as with <span class="man-ref">git-clone<span class="s">(1)</span></span>. When <var>USER</var>/ is omitted, assumes
|
121
|
+
your GitHub login. With <code>-p</code>, use private remote
|
122
|
+
"git@github.com:<var>USER</var>/<var>REPOSITORY</var>.git".</p></li>
|
123
|
+
<li><p><code>git remote add</code> [<code>-p</code>] <var>OPTIONS</var> <var>USER</var>[<code>/</code><var>REPOSITORY</var>]:<br />
|
124
|
+
Add remote "git://github.com/<var>USER</var>/<var>REPOSITORY</var>.git" as with
|
125
|
+
<span class="man-ref">git-remote<span class="s">(1)</span></span>. When /<var>REPOSITORY</var> is omitted, the basename of the
|
126
|
+
current working directory is used. With <code>-p</code>, use private remote
|
127
|
+
"git@github.com:<var>USER</var>/<var>REPOSITORY</var>.git". If <var>USER</var> is "origin"
|
128
|
+
then uses your GitHub login.</p></li>
|
129
|
+
<li><p><code>git remote set-url</code> [<code>-p</code>] <var>OPTIONS</var> <var>REMOTE-NAME</var> <var>USER</var>[/<var>REPOSITORY</var>]<br />
|
130
|
+
Sets the url of remote <var>REMOTE-NAME</var> using the same rules as
|
131
|
+
<code>git remote add</code>.</p></li>
|
132
|
+
<li><p><code>git fetch</code> <var>USER-1</var>,[<var>USER-2</var>,...]:
|
133
|
+
Adds missing remote(s) with <code>git remote add</code> prior to fetching. New
|
134
|
+
remotes are only added if they correspond to valid forks on GitHub.</p></li>
|
135
|
+
<li><p><code>git cherry-pick</code> <var>GITHUB-REF</var>:
|
136
|
+
Cherry-pick a commit from a fork using either full URL to the commit
|
137
|
+
or GitHub-flavored Markdown notation, which is <code>user@sha</code>. If the remote
|
138
|
+
doesn't yet exist, it will be added. A <code>git fetch <user></code> is issued
|
139
|
+
prior to the cherry-pick attempt.</p></li>
|
140
|
+
<li><p><code>git am</code> <var>GITHUB-URL</var>:
|
141
|
+
Downloads the patch file for the pull request or commit at the URL and
|
142
|
+
applies that patch from disk with <code>git am</code>. Similar to <code>cherry-pick</code>, but
|
143
|
+
doesn't add new remotes.</p></li>
|
144
|
+
<li><p><code>git push</code> <var>REMOTE-1</var>,<var>REMOTE-2</var>,...,<var>REMOTE-N</var> <var>REF</var>:
|
145
|
+
Push <var>REF</var> to each of <var>REMOTE-1</var> through <var>REMOTE-N</var> by executing
|
146
|
+
multiple <code>git push</code> commands.</p></li>
|
147
|
+
<li><p><code>git browse</code> [<code>-u</code>] [[<var>USER</var><code>/</code>]<var>REPOSITORY</var>] [SUBPAGE]:
|
148
|
+
Open repository's GitHub page in the system's default web browser using
|
149
|
+
<code>open(1)</code> or the <code>BROWSER</code> env variable. If the repository isn't
|
150
|
+
specified, <code>browse</code> opens the page of the repository found in the current
|
151
|
+
directory. If SUBPAGE is specified, the browser will open on the specified
|
152
|
+
subpage: one of "wiki", "commits", "issues" or other (the default is
|
153
|
+
"tree").</p></li>
|
154
|
+
<li><p><code>git compare</code> [<code>-u</code>] [<var>USER</var>] [<var>START</var>...]<var>END</var>:
|
155
|
+
Open a GitHub compare view page in the system's default web browser.
|
156
|
+
<var>START</var> to <var>END</var> are branch names, tag names, or commit SHA1s specifying
|
157
|
+
the range of history to compare. If <var>START</var> is omitted, GitHub will
|
158
|
+
compare against the base branch (the default is "master").</p></li>
|
159
|
+
<li><p><code>git submodule add</code> [<code>-p</code>] <var>OPTIONS</var> [<var>USER</var>/]<var>REPOSITORY</var> <var>DIRECTORY</var>:<br />
|
160
|
+
Submodule repository "git://github.com/<var>USER</var>/<var>REPOSITORY</var>.git" into
|
161
|
+
<var>DIRECTORY</var> as with <span class="man-ref">git-submodule<span class="s">(1)</span></span>. When <var>USER</var>/ is omitted, assumes
|
162
|
+
your GitHub login. With <code>-p</code>, use private remote
|
163
|
+
"git@github.com:<var>USER</var>/<var>REPOSITORY</var>.git".</p></li>
|
164
|
+
<li><p><code>git fork</code> [<code>--no-remote</code>]:
|
165
|
+
Forks the original project (referenced by "origin" remote) on GitHub and
|
166
|
+
adds a new remote for it under your username. Requires <code>github.token</code> to
|
167
|
+
be set (see CONFIGURATION).</p></li>
|
168
|
+
<li><p><code>git help</code>:
|
169
|
+
Display enhanced <span class="man-ref">git-help<span class="s">(1)</span></span>.</p></li>
|
170
|
+
</ul>
|
171
|
+
|
172
|
+
|
173
|
+
<h2 id="CONFIGURATION">CONFIGURATION</h2>
|
174
|
+
|
175
|
+
<p>Use <span class="man-ref">git-config<span class="s">(1)</span></span> to display the currently configured GitHub username:</p>
|
176
|
+
|
177
|
+
<pre><code>$ git config --global github.user
|
178
|
+
</code></pre>
|
179
|
+
|
180
|
+
<p>Or, set the GitHub username and token with:</p>
|
181
|
+
|
182
|
+
<pre><code>$ git config --global github.user <username>
|
183
|
+
$ git config --global github.token <token>
|
184
|
+
</code></pre>
|
185
|
+
|
186
|
+
<p>See <a href="http://github.com/guides/local-github-config" data-bare-link="true">http://github.com/guides/local-github-config</a> for more
|
187
|
+
information.</p>
|
188
|
+
|
189
|
+
<p>You can also tell <code>hub</code> to use <code>http://</code> rather than <code>git://</code> when
|
190
|
+
cloning:</p>
|
191
|
+
|
192
|
+
<pre><code>$ git config --global --bool hub.http-clone true
|
193
|
+
</code></pre>
|
194
|
+
|
195
|
+
<p>Want to use environment variables instead of a local gitconfig for
|
196
|
+
authentication?</p>
|
197
|
+
|
198
|
+
<ul>
|
199
|
+
<li><code>GITHUB_USER</code> - If set, this will be used instead of the <code>github.user</code> config
|
200
|
+
|
201
|
+
<pre><code> value to determine your GitHub username.
|
202
|
+
</code></pre></li>
|
203
|
+
<li><code>GITHUB_TOKEN</code> - If set, this will be used instead of the <code>github.token</code>
|
204
|
+
|
205
|
+
<pre><code> config value to determine your GitHub API token.
|
206
|
+
</code></pre></li>
|
207
|
+
</ul>
|
208
|
+
|
209
|
+
|
210
|
+
<h2 id="EXAMPLES">EXAMPLES</h2>
|
211
|
+
|
212
|
+
<h3 id="git-clone">git clone</h3>
|
213
|
+
|
214
|
+
<pre><code>$ git clone schacon/ticgit
|
215
|
+
> git clone git://github.com/schacon/ticgit.git
|
216
|
+
|
217
|
+
$ git clone -p schacon/ticgit
|
218
|
+
> git clone git@github.com:schacon/ticgit.git
|
219
|
+
|
220
|
+
$ git clone resque
|
221
|
+
> git clone git://github.com/YOUR_USER/resque.git
|
222
|
+
|
223
|
+
$ git clone -p resque
|
224
|
+
> git clone git@github.com:YOUR_USER/resque.git
|
225
|
+
</code></pre>
|
226
|
+
|
227
|
+
<h3 id="git-remote-add">git remote add</h3>
|
228
|
+
|
229
|
+
<pre><code>$ git remote add rtomayko
|
230
|
+
> git remote add rtomayko git://github.com/rtomayko/CURRENT_REPO.git
|
231
|
+
|
232
|
+
$ git remote add -p rtomayko
|
233
|
+
> git remote add rtomayko git@github.com:rtomayko/CURRENT_REPO.git
|
234
|
+
|
235
|
+
$ git remote add origin
|
236
|
+
> git remote add origin git://github.com/YOUR_USER/CURRENT_REPO.git
|
237
|
+
</code></pre>
|
238
|
+
|
239
|
+
<h3 id="git-fetch">git fetch</h3>
|
240
|
+
|
241
|
+
<pre><code>$ git fetch mislav
|
242
|
+
> git remote add mislav git://github.com/mislav/REPO.git
|
243
|
+
> git fetch mislav
|
244
|
+
|
245
|
+
$ git fetch mislav,xoebus
|
246
|
+
> git remote add mislav ...
|
247
|
+
> git remote add xoebus ...
|
248
|
+
> git fetch --multiple mislav xoebus
|
249
|
+
</code></pre>
|
250
|
+
|
251
|
+
<h3 id="git-cherry-pick">git cherry-pick</h3>
|
252
|
+
|
253
|
+
<pre><code>$ git cherry-pick http://github.com/mislav/REPO/commit/SHA
|
254
|
+
> git remote add -f mislav git://github.com/mislav/REPO.git
|
255
|
+
> git cherry-pick SHA
|
256
|
+
|
257
|
+
$ git cherry-pick mislav@SHA
|
258
|
+
> git remote add -f mislav git://github.com/mislav/CURRENT_REPO.git
|
259
|
+
> git cherry-pick SHA
|
260
|
+
|
261
|
+
$ git cherry-pick mislav@SHA
|
262
|
+
> git fetch mislav
|
263
|
+
> git cherry-pick SHA
|
264
|
+
</code></pre>
|
265
|
+
|
266
|
+
<h3 id="git-am">git am</h3>
|
267
|
+
|
268
|
+
<pre><code>$ git am https://github.com/defunkt/hub/pull/55
|
269
|
+
> curl https://github.com/defunkt/hub/pull/55.patch -o /tmp/55.patch
|
270
|
+
> git am /tmp/55.patch
|
271
|
+
|
272
|
+
$ git am --ignore-whitespace https://github.com/davidbalbert/hub/commit/fdb9921
|
273
|
+
> curl https://github.com/davidbalbert/hub/commit/fdb9921.patch -o /tmp/fdb9921.patch
|
274
|
+
> git am --ignore-whitespace /tmp/fdb9921.patch
|
275
|
+
</code></pre>
|
276
|
+
|
277
|
+
<h3 id="git-fork">git fork</h3>
|
278
|
+
|
279
|
+
<pre><code>$ git fork
|
280
|
+
... hardcore forking action ...
|
281
|
+
> git remote add YOUR_USER git@github.com:YOUR_USER/CURRENT_REPO.git
|
282
|
+
</code></pre>
|
283
|
+
|
284
|
+
<h3 id="git-init">git init</h3>
|
285
|
+
|
286
|
+
<pre><code>$ git init -g
|
287
|
+
> git init
|
288
|
+
> git remote add origin git@github.com:YOUR_USER/REPO.git
|
289
|
+
</code></pre>
|
290
|
+
|
291
|
+
<h3 id="git-create">git create</h3>
|
292
|
+
|
293
|
+
<pre><code>$ git create
|
294
|
+
... hardcore creating action ...
|
295
|
+
> git remote add origin git@github.com:YOUR_USER/CURRENT_REPO.git
|
296
|
+
</code></pre>
|
297
|
+
|
298
|
+
<h3 id="git-push">git push</h3>
|
299
|
+
|
300
|
+
<pre><code>$ git push origin,staging,qa bert_timeout
|
301
|
+
> git push origin bert_timeout
|
302
|
+
> git push staging bert_timeout
|
303
|
+
> git push qa bert_timeout
|
304
|
+
</code></pre>
|
305
|
+
|
306
|
+
<h3 id="git-browse">git browse</h3>
|
307
|
+
|
308
|
+
<pre><code>$ git browse
|
309
|
+
> open https://github.com/YOUR_USER/CURRENT_REPO
|
310
|
+
|
311
|
+
$ git browse -- issues
|
312
|
+
> open https://github.com/YOUR_USER/CURRENT_REPO/issues
|
313
|
+
|
314
|
+
$ git browse schacon/ticgit
|
315
|
+
> open https://github.com/schacon/ticgit
|
316
|
+
|
317
|
+
$ git browse resque
|
318
|
+
> open https://github.com/YOUR_USER/resque
|
319
|
+
|
320
|
+
$ git browse resque network
|
321
|
+
> open https://github.com/YOUR_USER/resque/network
|
322
|
+
</code></pre>
|
323
|
+
|
324
|
+
<h3 id="git-compare">git compare</h3>
|
325
|
+
|
326
|
+
<pre><code>$ git compare refactor
|
327
|
+
> open https://github.com/CURRENT_REPO/compare/refactor
|
328
|
+
|
329
|
+
$ git compare 1.0...1.1
|
330
|
+
> open https://github.com/CURRENT_REPO/compare/1.0...1.1
|
331
|
+
|
332
|
+
$ git compare -u fix
|
333
|
+
> (https://github.com/CURRENT_REPO/compare/fix)
|
334
|
+
|
335
|
+
$ git compare other-user patch
|
336
|
+
> open https://github.com/other-user/REPO/compare/patch
|
337
|
+
</code></pre>
|
338
|
+
|
339
|
+
<h3 id="git-help">git help</h3>
|
340
|
+
|
341
|
+
<pre><code>$ git help
|
342
|
+
> (improved git help)
|
343
|
+
$ git help hub
|
344
|
+
> (hub man page)
|
345
|
+
</code></pre>
|
346
|
+
|
347
|
+
<h2 id="BUGS">BUGS</h2>
|
348
|
+
|
349
|
+
<p><a href="http://github.com/defunkt/hub/issues" data-bare-link="true">http://github.com/defunkt/hub/issues</a></p>
|
350
|
+
|
351
|
+
<h2 id="AUTHORS">AUTHORS</h2>
|
352
|
+
|
353
|
+
<p><a href="https://github.com/defunkt/hub/contributors" data-bare-link="true">https://github.com/defunkt/hub/contributors</a></p>
|
354
|
+
|
355
|
+
<h2 id="SEE-ALSO">SEE ALSO</h2>
|
356
|
+
|
357
|
+
<p><span class="man-ref">git<span class="s">(1)</span></span>, <span class="man-ref">git-clone<span class="s">(1)</span></span>, <span class="man-ref">git-remote<span class="s">(1)</span></span>, <span class="man-ref">git-init<span class="s">(1)</span></span>,
|
358
|
+
<a href="http://github.com" data-bare-link="true">http://github.com</a>,
|
359
|
+
<a href="http://github.com/defunkt/hub" data-bare-link="true">http://github.com/defunkt/hub</a></p>
|
360
|
+
|
361
|
+
|
362
|
+
<ol class='man-decor man-foot man foot'>
|
363
|
+
<li class='tl'>DEFUNKT</li>
|
364
|
+
<li class='tc'>December 2010</li>
|
365
|
+
<li class='tr'>hub(1)</li>
|
366
|
+
</ol>
|
367
|
+
|
368
|
+
</div>
|
369
|
+
</body>
|
370
|
+
</html>
|
data/man/hub.1.ronn
ADDED
@@ -0,0 +1,275 @@
|
|
1
|
+
hub(1) -- git + hub = github
|
2
|
+
============================
|
3
|
+
|
4
|
+
## SYNOPSIS
|
5
|
+
|
6
|
+
`hub` <COMMAND> <OPTIONS>
|
7
|
+
`hub alias` [`-s`] <SHELL>
|
8
|
+
|
9
|
+
`git init -g` <OPTIONS>
|
10
|
+
`git create` [`-p`] [`-d <DESCRIPTION>`] [`-h <HOMEPAGE>`]
|
11
|
+
`git clone` [`-p`] <OPTIONS> [<USER>/]<REPOSITORY> <DIRECTORY>
|
12
|
+
`git remote add` [`-p`] <OPTIONS> <USER>[/<REPOSITORY>]
|
13
|
+
`git remote set-url` [`-p`] <OPTIONS> <REMOTE-NAME> <USER>[/<REPOSITORY>]
|
14
|
+
`git fetch` <USER-1>,[<USER-2>,...]
|
15
|
+
`git cherry-pick` <GITHUB-REF>
|
16
|
+
`git am` <GITHUB-URL>
|
17
|
+
`git push` <REMOTE-1>,<REMOTE-2>,...,<REMOTE-N> <REF>
|
18
|
+
`git browse` [`-u`] [[<USER>`/`]<REPOSITORY>] [SUBPAGE]
|
19
|
+
`git compare` [`-u`] [<USER>] [<START>...]<END>
|
20
|
+
`git submodule add` [`-p`] <OPTIONS> [<USER>/]<REPOSITORY> <DIRECTORY>
|
21
|
+
`git fork` [`--no-remote`]
|
22
|
+
|
23
|
+
## DESCRIPTION
|
24
|
+
|
25
|
+
`hub` enhances various `git` commands with GitHub remote expansion. The
|
26
|
+
alias command displays information on configuring your environment:
|
27
|
+
|
28
|
+
* `hub alias` [`-s`] <SHELL>:
|
29
|
+
Writes shell aliasing code for <SHELL> (`bash`, `sh`, `zsh`,
|
30
|
+
`csh`) to standard output. With the `-s` option, the output of
|
31
|
+
this command can be evaluated directly within the shell:
|
32
|
+
`eval $(hub alias -s bash)`
|
33
|
+
|
34
|
+
* `git init` `-g` <OPTIONS>:
|
35
|
+
Create a git repository as with git-init(1) and add remote `origin` at
|
36
|
+
"git@github.com:<USER>/<REPOSITORY>.git"; <USER> is your GitHub username and
|
37
|
+
<REPOSITORY> is the current working directory's basename.
|
38
|
+
|
39
|
+
* `git create` [`-p`] [`-d <DESCRIPTION>`] [`-h <HOMEPAGE>`]:
|
40
|
+
Create a new public github repository from the current git
|
41
|
+
repository and add remote `origin` at
|
42
|
+
"git@github.com:<USER>/<REPOSITORY>.git"; <USER> is your GitHub
|
43
|
+
username and <REPOSITORY> is the current working directory's
|
44
|
+
basename. With `-p`, create a private repository. `-d` and `-h`
|
45
|
+
set the repository's description and homepage, respectively.
|
46
|
+
|
47
|
+
* `git clone` [`-p`] <OPTIONS> [<USER>`/`]<REPOSITORY> <DIRECTORY>:
|
48
|
+
Clone repository "git://github.com/<USER>/<REPOSITORY>.git" into
|
49
|
+
<DIRECTORY> as with git-clone(1). When <USER>/ is omitted, assumes
|
50
|
+
your GitHub login. With `-p`, use private remote
|
51
|
+
"git@github.com:<USER>/<REPOSITORY>.git".
|
52
|
+
|
53
|
+
* `git remote add` [`-p`] <OPTIONS> <USER>[`/`<REPOSITORY>]:
|
54
|
+
Add remote "git://github.com/<USER>/<REPOSITORY>.git" as with
|
55
|
+
git-remote(1). When /<REPOSITORY> is omitted, the basename of the
|
56
|
+
current working directory is used. With `-p`, use private remote
|
57
|
+
"git@github.com:<USER>/<REPOSITORY>.git". If <USER> is "origin"
|
58
|
+
then uses your GitHub login.
|
59
|
+
|
60
|
+
* `git remote set-url` [`-p`] <OPTIONS> <REMOTE-NAME> <USER>[/<REPOSITORY>]
|
61
|
+
Sets the url of remote <REMOTE-NAME> using the same rules as
|
62
|
+
`git remote add`.
|
63
|
+
|
64
|
+
* `git fetch` <USER-1>,[<USER-2>,...]:
|
65
|
+
Adds missing remote(s) with `git remote add` prior to fetching. New
|
66
|
+
remotes are only added if they correspond to valid forks on GitHub.
|
67
|
+
|
68
|
+
* `git cherry-pick` <GITHUB-REF>:
|
69
|
+
Cherry-pick a commit from a fork using either full URL to the commit
|
70
|
+
or GitHub-flavored Markdown notation, which is `user@sha`. If the remote
|
71
|
+
doesn't yet exist, it will be added. A `git fetch <user>` is issued
|
72
|
+
prior to the cherry-pick attempt.
|
73
|
+
|
74
|
+
* `git am` <GITHUB-URL>:
|
75
|
+
Downloads the patch file for the pull request or commit at the URL and
|
76
|
+
applies that patch from disk with `git am`. Similar to `cherry-pick`, but
|
77
|
+
doesn't add new remotes.
|
78
|
+
|
79
|
+
* `git push` <REMOTE-1>,<REMOTE-2>,...,<REMOTE-N> <REF>:
|
80
|
+
Push <REF> to each of <REMOTE-1> through <REMOTE-N> by executing
|
81
|
+
multiple `git push` commands.
|
82
|
+
|
83
|
+
* `git browse` [`-u`] [[<USER>`/`]<REPOSITORY>] [SUBPAGE]:
|
84
|
+
Open repository's GitHub page in the system's default web browser using
|
85
|
+
`open(1)` or the `BROWSER` env variable. If the repository isn't
|
86
|
+
specified, `browse` opens the page of the repository found in the current
|
87
|
+
directory. If SUBPAGE is specified, the browser will open on the specified
|
88
|
+
subpage: one of "wiki", "commits", "issues" or other (the default is
|
89
|
+
"tree").
|
90
|
+
|
91
|
+
* `git compare` [`-u`] [<USER>] [<START>...]<END>:
|
92
|
+
Open a GitHub compare view page in the system's default web browser.
|
93
|
+
<START> to <END> are branch names, tag names, or commit SHA1s specifying
|
94
|
+
the range of history to compare. If <START> is omitted, GitHub will
|
95
|
+
compare against the base branch (the default is "master").
|
96
|
+
|
97
|
+
* `git submodule add` [`-p`] <OPTIONS> [<USER>/]<REPOSITORY> <DIRECTORY>:
|
98
|
+
Submodule repository "git://github.com/<USER>/<REPOSITORY>.git" into
|
99
|
+
<DIRECTORY> as with git-submodule(1). When <USER>/ is omitted, assumes
|
100
|
+
your GitHub login. With `-p`, use private remote
|
101
|
+
"git@github.com:<USER>/<REPOSITORY>.git".
|
102
|
+
|
103
|
+
* `git fork` [`--no-remote`]:
|
104
|
+
Forks the original project (referenced by "origin" remote) on GitHub and
|
105
|
+
adds a new remote for it under your username. Requires `github.token` to
|
106
|
+
be set (see CONFIGURATION).
|
107
|
+
|
108
|
+
* `git help`:
|
109
|
+
Display enhanced git-help(1).
|
110
|
+
|
111
|
+
## CONFIGURATION
|
112
|
+
|
113
|
+
Use git-config(1) to display the currently configured GitHub username:
|
114
|
+
|
115
|
+
$ git config --global github.user
|
116
|
+
|
117
|
+
Or, set the GitHub username and token with:
|
118
|
+
|
119
|
+
$ git config --global github.user <username>
|
120
|
+
$ git config --global github.token <token>
|
121
|
+
|
122
|
+
See <http://github.com/guides/local-github-config> for more
|
123
|
+
information.
|
124
|
+
|
125
|
+
You can also tell `hub` to use `http://` rather than `git://` when
|
126
|
+
cloning:
|
127
|
+
|
128
|
+
$ git config --global --bool hub.http-clone true
|
129
|
+
|
130
|
+
Want to use environment variables instead of a local gitconfig for
|
131
|
+
authentication?
|
132
|
+
|
133
|
+
* `GITHUB_USER` - If set, this will be used instead of the `github.user` config
|
134
|
+
value to determine your GitHub username.
|
135
|
+
* `GITHUB_TOKEN` - If set, this will be used instead of the `github.token`
|
136
|
+
config value to determine your GitHub API token.
|
137
|
+
|
138
|
+
## EXAMPLES
|
139
|
+
|
140
|
+
### git clone
|
141
|
+
|
142
|
+
$ git clone schacon/ticgit
|
143
|
+
> git clone git://github.com/schacon/ticgit.git
|
144
|
+
|
145
|
+
$ git clone -p schacon/ticgit
|
146
|
+
> git clone git@github.com:schacon/ticgit.git
|
147
|
+
|
148
|
+
$ git clone resque
|
149
|
+
> git clone git://github.com/YOUR_USER/resque.git
|
150
|
+
|
151
|
+
$ git clone -p resque
|
152
|
+
> git clone git@github.com:YOUR_USER/resque.git
|
153
|
+
|
154
|
+
### git remote add
|
155
|
+
|
156
|
+
$ git remote add rtomayko
|
157
|
+
> git remote add rtomayko git://github.com/rtomayko/CURRENT_REPO.git
|
158
|
+
|
159
|
+
$ git remote add -p rtomayko
|
160
|
+
> git remote add rtomayko git@github.com:rtomayko/CURRENT_REPO.git
|
161
|
+
|
162
|
+
$ git remote add origin
|
163
|
+
> git remote add origin git://github.com/YOUR_USER/CURRENT_REPO.git
|
164
|
+
|
165
|
+
### git fetch
|
166
|
+
|
167
|
+
$ git fetch mislav
|
168
|
+
> git remote add mislav git://github.com/mislav/REPO.git
|
169
|
+
> git fetch mislav
|
170
|
+
|
171
|
+
$ git fetch mislav,xoebus
|
172
|
+
> git remote add mislav ...
|
173
|
+
> git remote add xoebus ...
|
174
|
+
> git fetch --multiple mislav xoebus
|
175
|
+
|
176
|
+
### git cherry-pick
|
177
|
+
|
178
|
+
$ git cherry-pick http://github.com/mislav/REPO/commit/SHA
|
179
|
+
> git remote add -f mislav git://github.com/mislav/REPO.git
|
180
|
+
> git cherry-pick SHA
|
181
|
+
|
182
|
+
$ git cherry-pick mislav@SHA
|
183
|
+
> git remote add -f mislav git://github.com/mislav/CURRENT_REPO.git
|
184
|
+
> git cherry-pick SHA
|
185
|
+
|
186
|
+
$ git cherry-pick mislav@SHA
|
187
|
+
> git fetch mislav
|
188
|
+
> git cherry-pick SHA
|
189
|
+
|
190
|
+
### git am
|
191
|
+
|
192
|
+
$ git am https://github.com/defunkt/hub/pull/55
|
193
|
+
> curl https://github.com/defunkt/hub/pull/55.patch -o /tmp/55.patch
|
194
|
+
> git am /tmp/55.patch
|
195
|
+
|
196
|
+
$ git am --ignore-whitespace https://github.com/davidbalbert/hub/commit/fdb9921
|
197
|
+
> curl https://github.com/davidbalbert/hub/commit/fdb9921.patch -o /tmp/fdb9921.patch
|
198
|
+
> git am --ignore-whitespace /tmp/fdb9921.patch
|
199
|
+
|
200
|
+
### git fork
|
201
|
+
|
202
|
+
$ git fork
|
203
|
+
... hardcore forking action ...
|
204
|
+
> git remote add YOUR_USER git@github.com:YOUR_USER/CURRENT_REPO.git
|
205
|
+
|
206
|
+
### git init
|
207
|
+
|
208
|
+
$ git init -g
|
209
|
+
> git init
|
210
|
+
> git remote add origin git@github.com:YOUR_USER/REPO.git
|
211
|
+
|
212
|
+
### git create
|
213
|
+
|
214
|
+
$ git create
|
215
|
+
... hardcore creating action ...
|
216
|
+
> git remote add origin git@github.com:YOUR_USER/CURRENT_REPO.git
|
217
|
+
|
218
|
+
### git push
|
219
|
+
|
220
|
+
$ git push origin,staging,qa bert_timeout
|
221
|
+
> git push origin bert_timeout
|
222
|
+
> git push staging bert_timeout
|
223
|
+
> git push qa bert_timeout
|
224
|
+
|
225
|
+
### git browse
|
226
|
+
|
227
|
+
$ git browse
|
228
|
+
> open https://github.com/YOUR_USER/CURRENT_REPO
|
229
|
+
|
230
|
+
$ git browse -- issues
|
231
|
+
> open https://github.com/YOUR_USER/CURRENT_REPO/issues
|
232
|
+
|
233
|
+
$ git browse schacon/ticgit
|
234
|
+
> open https://github.com/schacon/ticgit
|
235
|
+
|
236
|
+
$ git browse resque
|
237
|
+
> open https://github.com/YOUR_USER/resque
|
238
|
+
|
239
|
+
$ git browse resque network
|
240
|
+
> open https://github.com/YOUR_USER/resque/network
|
241
|
+
|
242
|
+
### git compare
|
243
|
+
|
244
|
+
$ git compare refactor
|
245
|
+
> open https://github.com/CURRENT_REPO/compare/refactor
|
246
|
+
|
247
|
+
$ git compare 1.0...1.1
|
248
|
+
> open https://github.com/CURRENT_REPO/compare/1.0...1.1
|
249
|
+
|
250
|
+
$ git compare -u fix
|
251
|
+
> (https://github.com/CURRENT_REPO/compare/fix)
|
252
|
+
|
253
|
+
$ git compare other-user patch
|
254
|
+
> open https://github.com/other-user/REPO/compare/patch
|
255
|
+
|
256
|
+
### git help
|
257
|
+
|
258
|
+
$ git help
|
259
|
+
> (improved git help)
|
260
|
+
$ git help hub
|
261
|
+
> (hub man page)
|
262
|
+
|
263
|
+
## BUGS
|
264
|
+
|
265
|
+
<http://github.com/defunkt/hub/issues>
|
266
|
+
|
267
|
+
## AUTHORS
|
268
|
+
|
269
|
+
<https://github.com/defunkt/hub/contributors>
|
270
|
+
|
271
|
+
## SEE ALSO
|
272
|
+
|
273
|
+
git(1), git-clone(1), git-remote(1), git-init(1),
|
274
|
+
<http://github.com>,
|
275
|
+
<http://github.com/defunkt/hub>
|