Fixes since v1.5.6.1
--------------------
-* Optimization for a large import via "git-svn" introduced in v1.5.6 had a
- serious memory and temporary file leak, which made it unusable for
- moderately large import.
+* "git clone" from a remote that is named with url.insteadOf setting in
+ $HOME/.gitconfig did not work well.
-* "git-svn" mangled remote nickname used in the configuration file
- unnecessarily.
+* "git describe --long --tags" segfaulted when the described revision was
+ tagged with a lightweight tag.
* "git diff --check" did not report the result via its exit status
reliably.
+* When remote side used to have branch 'foo' and git-fetch finds that now
+ it has branch 'foo/bar', it refuses to lose the existing remote tracking
+ branch and its reflog. The error message has been improved to suggest
+ pruning the remote if the user wants to proceed and get the latest set
+ of branches from the remote, including such 'foo/bar'.
+
+* "git reset file" should mean the same thing as "git reset HEAD file",
+ but we required disambiguating -- even when "file" is not ambiguous.
+
* "git show" segfaulted when an annotated tag that points at another
annotated tag was given to it.
---
-exec >/var/tmp/1
-echo O=$(git describe maint)
-O=v1.5.6.1-13-g4f3dcc2
-git shortlog --no-merges $O..maint
+* Optimization for a large import via "git-svn" introduced in v1.5.6 had a
+ serious memory and temporary file leak, which made it unusable for
+ moderately large import.
+
+* "git-svn" mangled remote nickname used in the configuration file
+ unnecessarily.
Remove files from the working tree and from the index.
linkgit:git-shortlog[1]::
- Summarize 'git log' output.
+ Summarize 'git-log' output.
linkgit:git-show[1]::
Show various types of objects.
a string, an integer, or a boolean. Boolean values may be given as yes/no,
0/1 or true/false. Case is not significant in boolean values, when
converting value to the canonical form using '--bool' type specifier;
-`git-config` will ensure that the output is "true" or "false".
+'git-config' will ensure that the output is "true" or "false".
String values may be entirely or partially enclosed in double quotes.
You need to enclose variable value in double quotes if you want to
See linkgit:git-update-index[1]. True by default.
core.quotepath::
- The commands that output paths (e.g. `ls-files`,
- `diff`), when not given the `-z` option, will quote
+ The commands that output paths (e.g. 'ls-files',
+ 'diff'), when not given the `-z` option, will quote
"unusual" characters in the pathname by enclosing the
pathname in a double-quote pair and with backslashes the
same way strings in C source code are quoted. If this
core.whitespace::
A comma separated list of common whitespace problems to
- notice. `git diff` will use `color.diff.whitespace` to
- highlight them, and `git apply --whitespace=error` will
+ notice. 'git-diff' will use `color.diff.whitespace` to
+ highlight them, and 'git-apply --whitespace=error' will
consider them as errors:
+
* `trailing-space` treats trailing whitespaces at the end of the line
"gitk --all --not ORIG_HEAD".
apply.whitespace::
- Tells `git-apply` how to handle whitespaces, in the same way
+ Tells 'git-apply' how to handle whitespaces, in the same way
as the '--whitespace' option. See linkgit:git-apply[1].
branch.autosetupmerge::
- Tells `git-branch` and `git-checkout` to setup new branches
+ Tells 'git-branch' and 'git-checkout' to setup new branches
so that linkgit:git-pull[1] will appropriately merge from the
starting point branch. Note that even if this option is not set,
this behavior can be chosen per-branch using the `--track`
branch. This option defaults to true.
branch.autosetuprebase::
- When a new branch is created with `git-branch` or `git-checkout`
+ When a new branch is created with 'git-branch' or 'git-checkout'
that tracks another branch, this variable tells git to set
up pull to rebase instead of merge (see "branch.<name>.rebase").
When `never`, rebase is never automatically set to true.
This option defaults to never.
branch.<name>.remote::
- When in branch <name>, it tells `git fetch` which remote to fetch.
- If this option is not given, `git fetch` defaults to remote "origin".
+ When in branch <name>, it tells 'git-fetch' which remote to fetch.
+ If this option is not given, 'git-fetch' defaults to remote "origin".
branch.<name>.merge::
- When in branch <name>, it tells `git fetch` the default
+ When in branch <name>, it tells 'git-fetch' the default
refspec to be marked for merging in FETCH_HEAD. The value is
handled like the remote part of a refspec, and must match a
ref which is fetched from the remote given by
"branch.<name>.remote".
- The merge information is used by `git pull` (which at first calls
- `git fetch`) to lookup the default branch for merging. Without
- this option, `git pull` defaults to merge the first refspec fetched.
+ The merge information is used by 'git-pull' (which at first calls
+ 'git-fetch') to lookup the default branch for merging. Without
+ this option, 'git-pull' defaults to merge the first refspec fetched.
Specify multiple values to get an octopus merge.
- If you wish to setup `git pull` so that it merges into <name> from
+ If you wish to setup 'git-pull' so that it merges into <name> from
another branch in the local repository, you can point
branch.<name>.merge to the desired branch, and use the special setting
`.` (a period) for branch.<name>.remote.
color.interactive::
When set to `always`, always use colors for interactive prompts
- and displays (such as those used by "git add --interactive").
+ and displays (such as those used by "git-add --interactive").
When false (or `never`), never. When set to `true` or `auto`, use
colors only when the output is to the terminal. Defaults to false.
color.interactive.<slot>::
- Use customized color for `git add --interactive`
+ Use customized color for 'git-add --interactive'
output. `<slot>` may be `prompt`, `header`, or `help`, for
three distinct types of normal output from interactive
programs. The values of these variables may be specified as
take precedence over this setting. Defaults to false.
diff.autorefreshindex::
- When using `git diff` to compare with work tree
+ When using 'git-diff' to compare with work tree
files, do not consider stat-only change as changed.
Instead, silently run `git update-index --refresh` to
update the cached stat information for paths whose
contents in the work tree match the contents in the
index. This option defaults to true. Note that this
- affects only `git diff` Porcelain, and not lower level
- `diff` commands, such as `git diff-files`.
+ affects only 'git-diff' Porcelain, and not lower level
+ 'diff' commands, such as 'git-diff-files'.
diff.external::
If this config variable is set, diff generation is not
diff.renameLimit::
The number of files to consider when performing the copy/rename
- detection; equivalent to the git diff option '-l'.
+ detection; equivalent to the 'git-diff' option '-l'.
diff.renames::
Tells git to detect renames. If set to any boolean value, it
gc.aggressiveWindow::
The window size parameter used in the delta compression
- algorithm used by 'git gc --aggressive'. This defaults
+ algorithm used by 'git-gc --aggressive'. This defaults
to 10.
gc.auto::
default value is 50. Setting this to 0 disables it.
gc.packrefs::
- `git gc` does not run `git pack-refs` in a bare repository by
+ 'git-gc' does not run `git pack-refs` in a bare repository by
default so that older dumb-transport clients can still fetch
- from the repository. Setting this to `true` lets `git
- gc` to run `git pack-refs`. Setting this to `false` tells
- `git gc` never to run `git pack-refs`. The default setting is
+ from the repository. Setting this to `true` lets 'git-gc'
+ to run `git pack-refs`. Setting this to `false` tells
+ 'git-gc' never to run `git pack-refs`. The default setting is
`notbare`. Enable it only when you know you do not have to
support such clients. The default setting will change to `true`
at some stage, and setting this to `false` will continue to
- prevent `git pack-refs` from being run from `git gc`.
+ prevent `git pack-refs` from being run from 'git-gc'.
gc.pruneexpire::
- When `git gc` is run, it will call `prune --expire 2.weeks.ago`.
+ When 'git-gc' is run, it will call 'prune --expire 2.weeks.ago'.
Override the grace period with this config variable.
gc.reflogexpire::
- `git reflog expire` removes reflog entries older than
+ 'git-reflog expire' removes reflog entries older than
this time; defaults to 90 days.
gc.reflogexpireunreachable::
- `git reflog expire` removes reflog entries older than
+ 'git-reflog expire' removes reflog entries older than
this time and are not reachable from the current tip;
defaults to 30 days.
gc.rerereresolved::
Records of conflicted merge you resolved earlier are
- kept for this many days when `git rerere gc` is run.
+ kept for this many days when 'git-rerere gc' is run.
The default is 60 days. See linkgit:git-rerere[1].
gc.rerereunresolved::
Records of conflicted merge you have not resolved are
- kept for this many days when `git rerere gc` is run.
+ kept for this many days when 'git-rerere gc' is run.
The default is 15 days. See linkgit:git-rerere[1].
rerere.enabled::
i18n.logOutputEncoding::
Character encoding the commit messages are converted to when
- running `git-log` and friends.
+ running 'git-log' and friends.
instaweb.browser::
Specify the program that will be used to browse your working
log.date::
Set default date-time mode for the log command. Setting log.date
- value is similar to using git log's --date option. The value is one of
+ value is similar to using 'git-log'\'s --date option. The value is one of the
following alternatives: {relative,local,default,iso,rfc,short}.
See linkgit:git-log[1].
-f::
--force::
- When `git-fetch` is used with `<rbranch>:<lbranch>`
+ When 'git-fetch' is used with `<rbranch>:<lbranch>`
refspec, it refuses to update the local branch
`<lbranch>` unless the remote branch `<rbranch>` it
fetches is a descendant of `<lbranch>`. This option
-u::
--update-head-ok::
- By default `git-fetch` refuses to update the head which
+ By default 'git-fetch' refuses to update the head which
corresponds to the current branch. This flag disables the
- check. This is purely for the internal use for `git-pull`
- to communicate with `git-fetch`, and unless you are
+ check. This is purely for the internal use for 'git-pull'
+ to communicate with 'git-fetch', and unless you are
implementing your own Porcelain you are not supposed to
use it.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-am(1)</title>\r
</head>\r
<mbox>|<Maildir>…\r
<em>git am</em> [--skip | --resolved]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Splits mail messages in a mailbox into commit log message,\r
+<div class="para"><p>Splits mail messages in a mailbox into commit log message,\r
authorship information and patches, and applies them to the\r
-current branch.</p>\r
+current branch.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<mbox>|<Maildir>…\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Pass <tt>-k</tt> flag to <tt>git-mailinfo</tt> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>).\r
+ Pass <tt>-k</tt> flag to <em>git-mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>).\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- Pass <tt>-u</tt> flag to <tt>git-mailinfo</tt> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>).\r
+ Pass <tt>-u</tt> flag to <em>git-mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>).\r
The proposed commit log message taken from the e-mail\r
is re-coded into UTF-8 encoding (configuration variable\r
<tt>i18n.commitencoding</tt> can be used to specify project's\r
preferred encoding if it is not UTF-8).\r
</p>\r
-<p>This was optional in prior versions of git, but now it is the\r
-default. You could use <tt>--no-utf8</tt> to override this.</p>\r
+<div class="para"><p>This was optional in prior versions of git, but now it is the\r
+default. You could use <tt>--no-utf8</tt> to override this.</p></div>\r
</dd>\r
<dt>\r
--no-utf8\r
</dt>\r
<dd>\r
<p>\r
- Pass <tt>-n</tt> flag to <tt>git-mailinfo</tt> (see\r
+ Pass <tt>-n</tt> flag to <em>git-mailinfo</em> (see\r
<a href="git-mailinfo.html">git-mailinfo(1)</a>).\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Pass <tt>--allow-binary-replacement</tt> flag to <tt>git-apply</tt>\r
+ Pass <tt>--allow-binary-replacement</tt> flag to <em>git-apply</em>\r
(see <a href="git-apply.html">git-apply(1)</a>).\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- This flag is passed to the <tt>git-apply</tt> (see <a href="git-apply.html">git-apply(1)</a>)\r
+ This flag is passed to the <em>git-apply</em> (see <a href="git-apply.html">git-apply(1)</a>)\r
program that applies\r
the patch.\r
</p>\r
</dt>\r
<dd>\r
<p>\r
- These flags are passed to the <tt>git-apply</tt> (see <a href="git-apply.html">git-apply(1)</a>)\r
+ These flags are passed to the <em>git-apply</em> (see <a href="git-apply.html">git-apply(1)</a>)\r
program that applies\r
the patch.\r
</p>\r
to the screen before exiting. This overrides the\r
standard message informing you to use <tt>--resolved</tt>\r
or <tt>--skip</tt> to handle the failure. This is solely\r
- for internal use between <tt>git-rebase</tt> and <tt>git-am</tt>.\r
+ for internal use between <em>git-rebase</em> and <em>git-am</em>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DISCUSSION</h2>\r
+<h2 id="_discussion">DISCUSSION</h2>\r
<div class="sectionbody">\r
-<p>The commit author name is taken from the "From: " line of the\r
+<div class="para"><p>The commit author name is taken from the "From: " line of the\r
message, and commit author time is taken from the "Date: " line\r
of the message. The "Subject: " line is used as the title of\r
the commit, after stripping common prefix "[PATCH <anything>]".\r
It is supposed to describe what the commit is about concisely as\r
-a one line text.</p>\r
-<p>The body of the message (iow, after a blank line that terminates\r
+a one line text.</p></div>\r
+<div class="para"><p>The body of the message (iow, after a blank line that terminates\r
RFC2822 headers) can begin with "Subject: " and "From: " lines\r
that are different from those of the mail header, to override\r
-the values of these fields.</p>\r
-<p>The commit message is formed by the title taken from the\r
+the values of these fields.</p></div>\r
+<div class="para"><p>The commit message is formed by the title taken from the\r
"Subject: ", a blank line and the body of the message up to\r
where the patch begins. Excess whitespaces at the end of the\r
-lines are automatically stripped.</p>\r
-<p>The patch is expected to be inline, directly following the\r
-message. Any line that is of form:</p>\r
-<ul>\r
+lines are automatically stripped.</p></div>\r
+<div class="para"><p>The patch is expected to be inline, directly following the\r
+message. Any line that is of form:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
three-dashes and end-of-line, or\r
a line that begins with "Index: "\r
</p>\r
</li>\r
-</ul>\r
-<p>is taken as the beginning of a patch, and the commit log message\r
-is terminated before the first occurrence of such a line.</p>\r
-<p>When initially invoking it, you give it names of the mailboxes\r
+</ul></div>\r
+<div class="para"><p>is taken as the beginning of a patch, and the commit log message\r
+is terminated before the first occurrence of such a line.</p></div>\r
+<div class="para"><p>When initially invoking it, you give it names of the mailboxes\r
to crunch. Upon seeing the first patch that does not apply, it\r
-aborts in the middle,. You can recover from this in one of two ways:</p>\r
-<ol>\r
+aborts in the middle,. You can recover from this in one of two ways:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
skip the current patch by re-running the command with <em>--skip</em>\r
have produced. Then run the command with <em>--resolved</em> option.\r
</p>\r
</li>\r
-</ol>\r
-<p>The command refuses to process new mailboxes while <tt>.dotest</tt>\r
+</ol></div>\r
+<div class="para"><p>The command refuses to process new mailboxes while <tt>.dotest</tt>\r
directory exists, so if you decide to start over from scratch,\r
run <tt>rm -f -r .dotest</tt> before running the command with mailbox\r
-names.</p>\r
+names.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-apply.html">git-apply(1)</a>.</p>\r
+<div class="para"><p><a href="git-apply.html">git-apply(1)</a>.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:31 UTC\r
+Last updated 2008-07-06 05:16:34 UTC\r
</div>\r
</div>\r
</body>\r
-k::
--keep::
- Pass `-k` flag to `git-mailinfo` (see linkgit:git-mailinfo[1]).
+ Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
-u::
--utf8::
- Pass `-u` flag to `git-mailinfo` (see linkgit:git-mailinfo[1]).
+ Pass `-u` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
The proposed commit log message taken from the e-mail
is re-coded into UTF-8 encoding (configuration variable
`i18n.commitencoding` can be used to specify project's
default. You could use `--no-utf8` to override this.
--no-utf8::
- Pass `-n` flag to `git-mailinfo` (see
+ Pass `-n` flag to 'git-mailinfo' (see
linkgit:git-mailinfo[1]).
-3::
-b::
--binary::
- Pass `--allow-binary-replacement` flag to `git-apply`
+ Pass `--allow-binary-replacement` flag to 'git-apply'
(see linkgit:git-apply[1]).
--whitespace=<option>::
- This flag is passed to the `git-apply` (see linkgit:git-apply[1])
+ This flag is passed to the 'git-apply' (see linkgit:git-apply[1])
program that applies
the patch.
-C<n>::
-p<n>::
- These flags are passed to the `git-apply` (see linkgit:git-apply[1])
+ These flags are passed to the 'git-apply' (see linkgit:git-apply[1])
program that applies
the patch.
to the screen before exiting. This overrides the
standard message informing you to use `--resolved`
or `--skip` to handle the failure. This is solely
- for internal use between `git-rebase` and `git-am`.
+ for internal use between 'git-rebase' and 'git-am'.
DISCUSSION
----------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-apply(1)</title>\r
</head>\r
[--whitespace=<nowarn|warn|fix|error|error-all>]\r
[--exclude=PATH] [--verbose] [<patch>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Reads supplied diff output and applies it on a git index file\r
-and a work tree.</p>\r
+<div class="para"><p>Reads supplied <em>diff</em> output and applies it on a git index file\r
+and a work tree.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<patch>…\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Newer <tt>git-diff</tt> output has embedded <em>index information</em>\r
+ Newer <em>git-diff</em> output has embedded <em>index information</em>\r
for each blob to help identify the original version that\r
the patch applies to. When this flag is given, and if\r
the original versions of the blobs is available locally,\r
builds a temporary index containing those blobs.\r
</p>\r
-<p>When a pure mode change is encountered (which has no index information),\r
-the information is read from the current index instead.</p>\r
+<div class="para"><p>When a pure mode change is encountered (which has no index information),\r
+the information is read from the current index instead.</p></div>\r
</dd>\r
<dt>\r
-R\r
</dt>\r
<dd>\r
<p>\r
- For atomicity, <tt>git-apply</tt> by default fails the whole patch and\r
+ For atomicity, <em>git-apply</em> by default fails the whole patch and\r
does not touch the working tree when some of the hunks\r
do not apply. This option makes it apply\r
the parts of the patch that are applicable, and leave the\r
</dt>\r
<dd>\r
<p>\r
- By default, <tt>git-apply</tt> expects that the patch being\r
+ By default, <em>git-apply</em> expects that the patch being\r
applied is a unified diff with at least one line of context.\r
This provides good safety measures, but breaks down when\r
applying a diff generated with --unified=0. To bypass these\r
checks use <em>--unidiff-zero</em>.\r
</p>\r
-<p>Note, for the reasons stated above usage of context-free patches are\r
-discouraged.</p>\r
+<div class="para"><p>Note, for the reasons stated above usage of context-free patches are\r
+discouraged.</p></div>\r
</dd>\r
<dt>\r
--apply\r
<dd>\r
<p>\r
If you use any of the options marked "Turns off\r
- <em>apply</em>" above, <tt>git-apply</tt> reads and outputs the\r
+ <em>apply</em>" above, <em>git-apply</em> reads and outputs the\r
information you asked without actually applying the\r
patch. Give this flag after those flags to also apply\r
the patch.\r
<p>\r
When applying a patch, ignore additions made by the\r
patch. This can be used to extract the common part between\r
- two files by first running <tt>diff</tt> on them and applying\r
+ two files by first running <em>diff</em> on them and applying\r
the result with this option, which would apply the\r
deletion part but not addition part.\r
</p>\r
by a tab character inside the initial indent of the line are\r
considered whitespace errors.\r
</p>\r
-<p>By default, the command outputs warning messages but applies the patch.\r
+<div class="para"><p>By default, the command outputs warning messages but applies the patch.\r
When <tt>git-apply is used for statistics and not applying a\r
-patch, it defaults to `nowarn</tt>.</p>\r
-<p>You can use different <tt><action></tt> to control this\r
-behavior:</p>\r
-<ul>\r
+patch, it defaults to `nowarn</tt>.</p></div>\r
+<div class="para"><p>You can use different <tt><action></tt> to control this\r
+behavior:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<tt>nowarn</tt> turns off the trailing whitespace warning.\r
<tt>error-all</tt> is similar to <tt>error</tt> but shows all errors.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
<dt>\r
--inaccurate-eof\r
</dt>\r
<dd>\r
<p>\r
- Under certain circumstances, some versions of diff do not correctly\r
+ Under certain circumstances, some versions of <em>diff</em> do not correctly\r
detect a missing new-line at the end of the file. As a result, patches\r
- created by such diff programs do not record incomplete lines\r
+ created by such <em>diff</em> programs do not record incomplete lines\r
correctly. This option adds support for applying such patches by\r
working around this bug.\r
</p>\r
adjusting the hunk headers appropriately).\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Configuration</h2>\r
+<h2 id="_configuration">Configuration</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
apply.whitespace\r
</dt>\r
line, this configuration item is used as the default.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Submodules</h2>\r
+<h2 id="_submodules">Submodules</h2>\r
<div class="sectionbody">\r
-<p>If the patch contains any changes to submodules then <tt>git-apply</tt>\r
-treats these changes as follows.</p>\r
-<p>If --index is specified (explicitly or implicitly), then the submodule\r
+<div class="para"><p>If the patch contains any changes to submodules then <em>git-apply</em>\r
+treats these changes as follows.</p></div>\r
+<div class="para"><p>If --index is specified (explicitly or implicitly), then the submodule\r
commits must match the index exactly for the patch to apply. If any\r
of the submodules are checked-out, then these check-outs are completely\r
ignored, i.e., they are not required to be up-to-date or clean and they\r
-are not updated.</p>\r
-<p>If --index is not specified, then the submodule commits in the patch\r
+are not updated.</p></div>\r
+<div class="para"><p>If --index is not specified, then the submodule commits in the patch\r
are ignored and only the absence of presence of the corresponding\r
-subdirectory is checked and (if possible) updated.</p>\r
+subdirectory is checked and (if possible) updated.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano</p>\r
+<div class="para"><p>Documentation by Junio C Hamano</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:32 UTC\r
+Last updated 2008-07-06 05:16:34 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Reads supplied diff output and applies it on a git index file
+Reads supplied 'diff' output and applies it on a git index file
and a work tree.
OPTIONS
without using the working tree. This implies '--index'.
--build-fake-ancestor <file>::
- Newer `git-diff` output has embedded 'index information'
+ Newer 'git-diff' output has embedded 'index information'
for each blob to help identify the original version that
the patch applies to. When this flag is given, and if
the original versions of the blobs is available locally,
Apply the patch in reverse.
--reject::
- For atomicity, `git-apply` by default fails the whole patch and
+ For atomicity, 'git-apply' by default fails the whole patch and
does not touch the working tree when some of the hunks
do not apply. This option makes it apply
the parts of the patch that are applicable, and leave the
ever ignored.
--unidiff-zero::
- By default, `git-apply` expects that the patch being
+ By default, 'git-apply' expects that the patch being
applied is a unified diff with at least one line of context.
This provides good safety measures, but breaks down when
applying a diff generated with --unified=0. To bypass these
--apply::
If you use any of the options marked "Turns off
- 'apply'" above, `git-apply` reads and outputs the
+ 'apply'" above, 'git-apply' reads and outputs the
information you asked without actually applying the
patch. Give this flag after those flags to also apply
the patch.
--no-add::
When applying a patch, ignore additions made by the
patch. This can be used to extract the common part between
- two files by first running `diff` on them and applying
+ two files by first running 'diff' on them and applying
the result with this option, which would apply the
deletion part but not addition part.
* `error-all` is similar to `error` but shows all errors.
--inaccurate-eof::
- Under certain circumstances, some versions of diff do not correctly
+ Under certain circumstances, some versions of 'diff' do not correctly
detect a missing new-line at the end of the file. As a result, patches
- created by such diff programs do not record incomplete lines
+ created by such 'diff' programs do not record incomplete lines
correctly. This option adds support for applying such patches by
working around this bug.
Submodules
----------
-If the patch contains any changes to submodules then `git-apply`
+If the patch contains any changes to submodules then 'git-apply'
treats these changes as follows.
If --index is specified (explicitly or implicitly), then the submodule
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-archimport(1)</title>\r
</head>\r
<div class="content"><em>git archimport</em> [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir]\r
<archive/branch>[:<git-branch>] …</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Imports a project from one or more Arch repositories. It will follow branches\r
+<div class="para"><p>Imports a project from one or more Arch repositories. It will follow branches\r
and repositories within the namespaces defined by the <archive/branch>\r
parameters supplied. If it cannot find the remote branch a merge comes from\r
it will just import it as a regular commit. If it can find it, it will mark it\r
-as a merge whenever possible (see discussion below).</p>\r
-<p>The script expects you to provide the key roots where it can start the import\r
+as a merge whenever possible (see discussion below).</p></div>\r
+<div class="para"><p>The script expects you to provide the key roots where it can start the import\r
from an <em>initial import</em> or <em>tag</em> type of Arch commit. It will follow and\r
-import new branches within the provided roots.</p>\r
-<p>It expects to be dealing with one project only. If it sees\r
+import new branches within the provided roots.</p></div>\r
+<div class="para"><p>It expects to be dealing with one project only. If it sees\r
branches that have different roots, it will refuse to run. In that case,\r
edit your <archive/branch> parameters to define clearly the scope of the\r
-import.</p>\r
-<p><tt>git-archimport</tt> uses <tt>tla</tt> extensively in the background to access the\r
+import.</p></div>\r
+<div class="para"><p><em>git-archimport</em> uses <tt>tla</tt> extensively in the background to access the\r
Arch repository.\r
Make sure you have a recent version of <tt>tla</tt> available in the path. <tt>tla</tt> must\r
-know about the repositories you pass to <tt>git-archimport</tt>.</p>\r
-<p>For the initial import, <tt>git-archimport</tt> expects to find itself in an empty\r
+know about the repositories you pass to <em>git-archimport</em>.</p></div>\r
+<div class="para"><p>For the initial import, <em>git-archimport</em> expects to find itself in an empty\r
directory. To follow the development of a project that uses Arch, rerun\r
-<tt>git-archimport</tt> with the same parameters as the initial import to perform\r
-incremental imports.</p>\r
-<p>While <tt>git-archimport</tt> will try to create sensible branch names for the\r
+<em>git-archimport</em> with the same parameters as the initial import to perform\r
+incremental imports.</p></div>\r
+<div class="para"><p>While <em>git-archimport</em> will try to create sensible branch names for the\r
archives that it imports, it is also possible to specify git branch names\r
manually. To do so, write a git branch name after each <archive/branch>\r
parameter, separated by a colon. This way, you can shorten the Arch\r
branch names and convert Arch jargon to git jargon, for example mapping a\r
-"PROJECT--devo--VERSION" branch to "master".</p>\r
-<p>Associating multiple Arch branches to one git branch is possible; the\r
+"PROJECT--devo--VERSION" branch to "master".</p></div>\r
+<div class="para"><p>Associating multiple Arch branches to one git branch is possible; the\r
result will make the most sense only if no commits are made to the first\r
branch, after the second branch is created. Still, this is useful to\r
-convert Arch repositories that had been rotated periodically.</p>\r
+convert Arch repositories that had been rotated periodically.</p></div>\r
</div>\r
-<h2>MERGES</h2>\r
+<h2 id="_merges">MERGES</h2>\r
<div class="sectionbody">\r
-<p>Patch merge data from Arch is used to mark merges in git as well. git\r
+<div class="para"><p>Patch merge data from Arch is used to mark merges in git as well. git\r
does not care much about tracking patches, and only considers a merge when a\r
branch incorporates all the commits since the point they forked. The end result\r
is that git will have a good idea of how far branches have diverged. So the\r
-import process does lose some patch-trading metadata.</p>\r
-<p>Fortunately, when you try and merge branches imported from Arch,\r
+import process does lose some patch-trading metadata.</p></div>\r
+<div class="para"><p>Fortunately, when you try and merge branches imported from Arch,\r
git will find a good merge base, and it has a good chance of identifying\r
-patches that have been traded out-of-sequence between the branches.</p>\r
+patches that have been traded out-of-sequence between the branches.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-h\r
</dt>\r
<dd>\r
<p>\r
Use this for compatibility with old-style branch names used by\r
- earlier versions of <tt>git-archimport</tt>. Old-style branch names\r
+ earlier versions of <em>git-archimport</em>. Old-style branch names\r
were category--branch, whereas new-style branch names are\r
archive,category--branch--version. In both cases, names given\r
on the command-line will override the automatically-generated\r
Archive/branch identifier in a format that <tt>tla log</tt> understands.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Martin Langhoff <martin@catalyst.net.nz>.</p>\r
+<div class="para"><p>Written by Martin Langhoff <martin@catalyst.net.nz>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano, Martin Langhoff and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano, Martin Langhoff and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:32 UTC\r
+Last updated 2008-07-06 05:16:35 UTC\r
</div>\r
</div>\r
</body>\r
edit your <archive/branch> parameters to define clearly the scope of the
import.
-`git-archimport` uses `tla` extensively in the background to access the
+'git-archimport' uses `tla` extensively in the background to access the
Arch repository.
Make sure you have a recent version of `tla` available in the path. `tla` must
-know about the repositories you pass to `git-archimport`.
+know about the repositories you pass to 'git-archimport'.
-For the initial import, `git-archimport` expects to find itself in an empty
+For the initial import, 'git-archimport' expects to find itself in an empty
directory. To follow the development of a project that uses Arch, rerun
-`git-archimport` with the same parameters as the initial import to perform
+'git-archimport' with the same parameters as the initial import to perform
incremental imports.
-While `git-archimport` will try to create sensible branch names for the
+While 'git-archimport' will try to create sensible branch names for the
archives that it imports, it is also possible to specify git branch names
manually. To do so, write a git branch name after each <archive/branch>
parameter, separated by a colon. This way, you can shorten the Arch
-o::
Use this for compatibility with old-style branch names used by
- earlier versions of `git-archimport`. Old-style branch names
+ earlier versions of 'git-archimport'. Old-style branch names
were category--branch, whereas new-style branch names are
archive,category--branch--version. In both cases, names given
on the command-line will override the automatically-generated
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-archive(1)</title>\r
</head>\r
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>\r
[path…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Creates an archive of the specified format containing the tree\r
+<div class="para"><p>Creates an archive of the specified format containing the tree\r
structure for the named tree, and writes it out to the standard\r
output. If <prefix> is specified it is\r
-prepended to the filenames in the archive.</p>\r
-<p><tt>git-archive</tt> behaves differently when given a tree ID versus when\r
+prepended to the filenames in the archive.</p></div>\r
+<div class="para"><p><em>git-archive</em> behaves differently when given a tree ID versus when\r
given a commit ID or tag ID. In the first case the current time is\r
used as modification time of each file in the archive. In the latter\r
case the commit time as recorded in the referenced commit object is\r
used instead. Additionally the commit ID is stored in a global\r
extended pax header if the tar format is used; it can be extracted\r
-using <tt>git-get-tar-commit-id</tt>. In ZIP files it is stored as a file\r
-comment.</p>\r
+using <em>git-get-tar-commit-id</em>. In ZIP files it is stored as a file\r
+comment.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--format=<fmt>\r
</dt>\r
<dd>\r
<p>\r
Used with --remote to specify the path to the\r
- <tt>git-upload-archive</tt> on the remote side.\r
+ <em>git-upload-archive</em> on the remote side.\r
</p>\r
</dd>\r
<dt>\r
archive, otherwise include all files and subdirectories.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>BACKEND EXTRA OPTIONS</h2>\r
+<h2 id="_backend_extra_options">BACKEND EXTRA OPTIONS</h2>\r
<div class="sectionbody">\r
-<h3>zip</h3>\r
-<dl>\r
+<h3 id="_zip">zip</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-0\r
</dt>\r
number from 1 to 9 to adjust compression speed and ratio.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
tar.umask\r
</dt>\r
details.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)\r
</dt>\r
into <em>git-1.4.0-docs.zip</em>, with the prefix <em>git-docs/</em>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Franck Bui-Huu and Rene Scharfe.</p>\r
+<div class="para"><p>Written by Franck Bui-Huu and Rene Scharfe.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:32 UTC\r
+Last updated 2008-07-06 05:16:35 UTC\r
</div>\r
</div>\r
</body>\r
output. If <prefix> is specified it is
prepended to the filenames in the archive.
-`git-archive` behaves differently when given a tree ID versus when
+'git-archive' behaves differently when given a tree ID versus when
given a commit ID or tag ID. In the first case the current time is
used as modification time of each file in the archive. In the latter
case the commit time as recorded in the referenced commit object is
used instead. Additionally the commit ID is stored in a global
extended pax header if the tar format is used; it can be extracted
-using `git-get-tar-commit-id`. In ZIP files it is stored as a file
+using 'git-get-tar-commit-id'. In ZIP files it is stored as a file
comment.
OPTIONS
--exec=<git-upload-archive>::
Used with --remote to specify the path to the
- `git-upload-archive` on the remote side.
+ 'git-upload-archive' on the remote side.
<tree-ish>::
The tree or commit to produce an archive for.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-bisect(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git bisect</em> <subcommand> <options></p>\r
+<div class="para"><p><em>git bisect</em> <subcommand> <options></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>The command takes various subcommands, and different options depending\r
-on the subcommand:</p>\r
+<div class="para"><p>The command takes various subcommands, and different options depending\r
+on the subcommand:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git bisect help\r
git bisect log\r
git bisect run <cmd>...</tt></pre>\r
</div></div>\r
-<p>This command uses <tt>git rev-list --bisect</tt> to help drive the\r
+<div class="para"><p>This command uses <em>git-rev-list --bisect</em> to help drive the\r
binary search process to find which change introduced a bug, given an\r
-old "good" commit object name and a later "bad" commit object name.</p>\r
-<h3>Getting help</h3>\r
-<p>Use "git bisect" to get a short usage description, and "git bisect\r
-help" or "git bisect -h" to get a long usage description.</p>\r
-<h3>Basic bisect commands: start, bad, good</h3>\r
-<p>The way you use it is:</p>\r
+old "good" commit object name and a later "bad" commit object name.</p></div>\r
+<h3 id="_getting_help">Getting help</h3><div style="clear:left"></div>\r
+<div class="para"><p>Use "git bisect" to get a short usage description, and "git bisect\r
+help" or "git bisect -h" to get a long usage description.</p></div>\r
+<h3 id="_basic_bisect_commands_start_bad_good">Basic bisect commands: start, bad, good</h3><div style="clear:left"></div>\r
+<div class="para"><p>The way you use it is:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect start\r
$ git bisect good v2.6.13-rc2 # v2.6.13-rc2 was the last version\r
# tested that was good</tt></pre>\r
</div></div>\r
-<p>When you give at least one bad and one good versions, it will bisect\r
-the revision tree and say something like:</p>\r
+<div class="para"><p>When you give at least one bad and one good versions, it will bisect\r
+the revision tree and say something like:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Bisecting: 675 revisions left to test after this</tt></pre>\r
</div></div>\r
-<p>and check out the state in the middle. Now, compile that kernel, and\r
+<div class="para"><p>and check out the state in the middle. Now, compile that kernel, and\r
boot it. Now, let's say that this booted kernel works fine, then just\r
-do</p>\r
+do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect good # this one is good</tt></pre>\r
</div></div>\r
-<p>which will now say</p>\r
+<div class="para"><p>which will now say</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Bisecting: 337 revisions left to test after this</tt></pre>\r
</div></div>\r
-<p>and you continue along, compiling that one, testing it, and depending\r
+<div class="para"><p>and you continue along, compiling that one, testing it, and depending\r
on whether it is good or bad, you say "git bisect good" or "git bisect\r
-bad", and ask for the next bisection.</p>\r
-<p>Until you have no more left, and you'll have been left with the first\r
-bad kernel rev in "refs/bisect/bad".</p>\r
-<h3>Bisect reset</h3>\r
-<p>Oh, and then after you want to reset to the original head, do a</p>\r
+bad", and ask for the next bisection.</p></div>\r
+<div class="para"><p>Until you have no more left, and you'll have been left with the first\r
+bad kernel rev in "refs/bisect/bad".</p></div>\r
+<h3 id="_bisect_reset">Bisect reset</h3><div style="clear:left"></div>\r
+<div class="para"><p>Oh, and then after you want to reset to the original head, do a</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect reset</tt></pre>\r
</div></div>\r
-<p>to get back to the original branch, instead of being on the bisection\r
+<div class="para"><p>to get back to the original branch, instead of being on the bisection\r
commit ("git bisect start" will do that for you too, actually: it will\r
-reset the bisection state).</p>\r
-<h3>Bisect visualize</h3>\r
-<p>During the bisection process, you can say</p>\r
+reset the bisection state).</p></div>\r
+<h3 id="_bisect_visualize">Bisect visualize</h3><div style="clear:left"></div>\r
+<div class="para"><p>During the bisection process, you can say</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect visualize</tt></pre>\r
</div></div>\r
-<p>to see the currently remaining suspects in <tt>gitk</tt>. <tt>visualize</tt> is a bit\r
-too long to type and <tt>view</tt> is provided as a synonym.</p>\r
-<p>If <tt>DISPLAY</tt> environment variable is not set, <tt>git log</tt> is used\r
+<div class="para"><p>to see the currently remaining suspects in <em>gitk</em>. <tt>visualize</tt> is a bit\r
+too long to type and <tt>view</tt> is provided as a synonym.</p></div>\r
+<div class="para"><p>If <em>DISPLAY</em> environment variable is not set, <em>git-log</em> is used\r
instead. You can even give command line options such as <tt>-p</tt> and\r
-<tt>--stat</tt>.</p>\r
+<tt>--stat</tt>.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect view --stat</tt></pre>\r
</div></div>\r
-<h3>Bisect log and bisect replay</h3>\r
-<p>The good/bad input is logged, and</p>\r
+<h3 id="_bisect_log_and_bisect_replay">Bisect log and bisect replay</h3><div style="clear:left"></div>\r
+<div class="para"><p>The good/bad input is logged, and</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect log</tt></pre>\r
</div></div>\r
-<p>shows what you have done so far. You can truncate its output somewhere\r
-and save it in a file, and run</p>\r
+<div class="para"><p>shows what you have done so far. You can truncate its output somewhere\r
+and save it in a file, and run</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect replay that-file</tt></pre>\r
</div></div>\r
-<p>if you find later you made a mistake telling good/bad about a\r
-revision.</p>\r
-<h3>Avoiding to test a commit</h3>\r
-<p>If in a middle of bisect session, you know what the bisect suggested\r
+<div class="para"><p>if you find later you made a mistake telling good/bad about a\r
+revision.</p></div>\r
+<h3 id="_avoiding_to_test_a_commit">Avoiding to test a commit</h3><div style="clear:left"></div>\r
+<div class="para"><p>If in a middle of bisect session, you know what the bisect suggested\r
to try next is not a good one to test (e.g. the change the commit\r
introduces is known not to work in your environment and you know it\r
does not have anything to do with the bug you are chasing), you may\r
-want to find a near-by commit and try that instead.</p>\r
-<p>It goes something like this:</p>\r
+want to find a near-by commit and try that instead.</p></div>\r
+<div class="para"><p>It goes something like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect good/bad # previous round was good/bad.\r
$ git reset --hard HEAD~3 # try 3 revs before what\r
# was suggested</tt></pre>\r
</div></div>\r
-<p>Then compile and test the one you chose to try. After that, tell\r
-bisect what the result was as usual.</p>\r
-<h3>Bisect skip</h3>\r
-<p>Instead of choosing by yourself a nearby commit, you may just want git\r
-to do it for you using:</p>\r
+<div class="para"><p>Then compile and test the one you chose to try. After that, tell\r
+bisect what the result was as usual.</p></div>\r
+<h3 id="_bisect_skip">Bisect skip</h3><div style="clear:left"></div>\r
+<div class="para"><p>Instead of choosing by yourself a nearby commit, you may just want git\r
+to do it for you using:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect skip # Current version cannot be tested</tt></pre>\r
</div></div>\r
-<p>But computing the commit to test may be slower afterwards and git may\r
+<div class="para"><p>But computing the commit to test may be slower afterwards and git may\r
eventually not be able to tell the first bad among a bad and one or\r
-more "skip"ped commits.</p>\r
-<h3>Cutting down bisection by giving more parameters to bisect start</h3>\r
-<p>You can further cut down the number of trials if you know what part of\r
+more "skip"ped commits.</p></div>\r
+<h3 id="_cutting_down_bisection_by_giving_more_parameters_to_bisect_start">Cutting down bisection by giving more parameters to bisect start</h3><div style="clear:left"></div>\r
+<div class="para"><p>You can further cut down the number of trials if you know what part of\r
the tree is involved in the problem you are tracking down, by giving\r
-paths parameters when you say <tt>bisect start</tt>, like this:</p>\r
+paths parameters when you say <tt>bisect start</tt>, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect start -- arch/i386 include/asm-i386</tt></pre>\r
</div></div>\r
-<p>If you know beforehand more than one good commits, you can narrow the\r
+<div class="para"><p>If you know beforehand more than one good commits, you can narrow the\r
bisect space down without doing the whole tree checkout every time you\r
give good commits. You give the bad revision immediately after <tt>start</tt>\r
-and then you give all the good revisions you have:</p>\r
+and then you give all the good revisions you have:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 --\r
# v2.6.20-rc6 is bad\r
# v2.6.20-rc4 and v2.6.20-rc1 are good</tt></pre>\r
</div></div>\r
-<h3>Bisect run</h3>\r
-<p>If you have a script that can tell if the current source code is good\r
-or bad, you can automatically bisect using:</p>\r
+<h3 id="_bisect_run">Bisect run</h3><div style="clear:left"></div>\r
+<div class="para"><p>If you have a script that can tell if the current source code is good\r
+or bad, you can automatically bisect using:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bisect run my_script</tt></pre>\r
</div></div>\r
-<p>Note that the "run" script (<tt>my_script</tt> in the above example) should\r
+<div class="para"><p>Note that the "run" script (<tt>my_script</tt> in the above example) should\r
exit with code 0 in case the current source code is good. Exit with a\r
code between 1 and 127 (inclusive), except 125, if the current\r
-source code is bad.</p>\r
-<p>Any other exit code will abort the automatic bisect process. (A\r
+source code is bad.</p></div>\r
+<div class="para"><p>Any other exit code will abort the automatic bisect process. (A\r
program that does "exit(-1)" leaves $? = 255, see exit(3) manual page,\r
-the value is chopped with "& 0377".)</p>\r
-<p>The special exit code 125 should be used when the current source code\r
+the value is chopped with "& 0377".)</p></div>\r
+<div class="para"><p>The special exit code 125 should be used when the current source code\r
cannot be tested. If the "run" script exits with this code, the current\r
-revision will be skipped, see <tt>git bisect skip</tt> above.</p>\r
-<p>You may often find that during bisect you want to have near-constant\r
+revision will be skipped, see <tt>git bisect skip</tt> above.</p></div>\r
+<div class="para"><p>You may often find that during bisect you want to have near-constant\r
tweaks (e.g., s/#define DEBUG 0/#define DEBUG 1/ in a header file, or\r
"revision that does not have this commit needs this patch applied to\r
work around other problem this bisection is not interested in")\r
-applied to the revision being tested.</p>\r
-<p>To cope with such a situation, after the inner <tt>git-bisect</tt> finds the\r
+applied to the revision being tested.</p></div>\r
+<div class="para"><p>To cope with such a situation, after the inner <em>git-bisect</em> finds the\r
next revision to test, with the "run" script, you can apply that tweak\r
before compiling, run the real test, and after the test decides if the\r
revision (possibly with the needed tweaks) passed the test, rewind the\r
tree to the pristine state. Finally the "run" script can exit with\r
the status of the real test to let the "git bisect run" command loop to\r
-determine the outcome.</p>\r
+determine the outcome.</p></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Automatically bisect a broken build between v1.2 and HEAD:\r
$ git bisect start v1.3 v1.1 -- # v1.3 is bad, v1.1 is good\r
$ git bisect run ~/test.sh</tt></pre>\r
</div></div>\r
-<p>Here we use a "test.sh" custom script. In this script, if "make"\r
-fails, we "skip" the current commit.</p>\r
-<p>It's safer to use a custom script outside the repo to prevent\r
+<div class="para"><p>Here we use a "test.sh" custom script. In this script, if "make"\r
+fails, we "skip" the current commit.</p></div>\r
+<div class="para"><p>It's safer to use a custom script outside the repo to prevent\r
interactions between the bisect, make and test processes and the\r
-script.</p>\r
-<p>And "make test" should "exit 0", if the test suite passes, and\r
-"exit 1" (for example) otherwise.</p>\r
+script.</p></div>\r
+<div class="para"><p>And "make test" should "exit 0", if the test suite passes, and\r
+"exit 1" (for example) otherwise.</p></div>\r
</li>\r
<li>\r
<p>\r
$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10\r
$ git bisect run ~/test.sh</tt></pre>\r
</div></div>\r
-<p>Here "check_test_case.sh" should "exit 0", if the test case passes,\r
-and "exit 1" (for example) otherwise.</p>\r
-<p>It's safer if both "test.sh" and "check_test_case.sh" scripts are\r
+<div class="para"><p>Here "check_test_case.sh" should "exit 0", if the test case passes,\r
+and "exit 1" (for example) otherwise.</p></div>\r
+<div class="para"><p>It's safer if both "test.sh" and "check_test_case.sh" scripts are\r
outside the repo to prevent interactions between the bisect, make and\r
-test processes and the scripts.</p>\r
+test processes and the scripts.</p></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:32 UTC\r
+Last updated 2008-07-06 05:16:35 UTC\r
</div>\r
</div>\r
</body>\r
git bisect log
git bisect run <cmd>...
-This command uses `git rev-list --bisect` to help drive the
+This command uses 'git-rev-list --bisect' to help drive the
binary search process to find which change introduced a bug, given an
old "good" commit object name and a later "bad" commit object name.
$ git bisect visualize
------------
-to see the currently remaining suspects in `gitk`. `visualize` is a bit
+to see the currently remaining suspects in 'gitk'. `visualize` is a bit
too long to type and `view` is provided as a synonym.
-If `DISPLAY` environment variable is not set, `git log` is used
+If 'DISPLAY' environment variable is not set, 'git-log' is used
instead. You can even give command line options such as `-p` and
`--stat`.
work around other problem this bisection is not interested in")
applied to the revision being tested.
-To cope with such a situation, after the inner `git-bisect` finds the
+To cope with such a situation, after the inner 'git-bisect' finds the
next revision to test, with the "run" script, you can apply that tweak
before compiling, run the real test, and after the test decides if the
revision (possibly with the needed tweaks) passed the test, rewind the
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-blame(1)</title>\r
</head>\r
[-S <revs-file>] [-M] [-C] [-C] [--since=<date>]\r
[<rev> | --contents <file>] [--] <file></div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Annotates each line in the given file with information from the revision which\r
-last modified the line. Optionally, start annotating from the given revision.</p>\r
-<p>Also it can limit the range of lines annotated.</p>\r
-<p>This report doesn't tell you anything about lines which have been deleted or\r
-replaced; you need to use a tool such as <tt>git-diff</tt> or the "pickaxe"\r
-interface briefly mentioned in the following paragraph.</p>\r
-<p>Apart from supporting file annotation, git also supports searching the\r
+<div class="para"><p>Annotates each line in the given file with information from the revision which\r
+last modified the line. Optionally, start annotating from the given revision.</p></div>\r
+<div class="para"><p>Also it can limit the range of lines annotated.</p></div>\r
+<div class="para"><p>This report doesn't tell you anything about lines which have been deleted or\r
+replaced; you need to use a tool such as <em>git-diff</em> or the "pickaxe"\r
+interface briefly mentioned in the following paragraph.</p></div>\r
+<div class="para"><p>Apart from supporting file annotation, git also supports searching the\r
development history for when a code snippet occurred in a change. This makes it\r
possible to track when a code snippet was added to a file, moved or copied\r
between files, and eventually deleted or replaced. It works by searching for\r
-a text string in the diff. A small example:</p>\r
+a text string in the diff. A small example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log --pretty=oneline -S'blame_usage'\r
ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output</tt></pre>\r
</div></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-b\r
</dt>\r
Annotate only the given line range. <start> and <end> can take\r
one of these forms:\r
</p>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
number\r
</p>\r
-<p>If <start> or <end> is a number, it specifies an\r
-absolute line number (lines count from 1).</p>\r
+<div class="para"><p>If <start> or <end> is a number, it specifies an\r
+absolute line number (lines count from 1).</p></div>\r
</li>\r
<li>\r
<p>\r
/regex/\r
</p>\r
-<p>This form will use the first line matching the given\r
+<div class="para"><p>This form will use the first line matching the given\r
POSIX regex. If <end> is a regex, it will search\r
-starting at the line given by <start>.</p>\r
+starting at the line given by <start>.</p></div>\r
</li>\r
<li>\r
<p>\r
+offset or -offset\r
</p>\r
-<p>This is only valid for <end> and will specify a number\r
-of lines before or after the line given by <start>.</p>\r
+<div class="para"><p>This is only valid for <end> and will specify a number\r
+of lines before or after the line given by <start>.</p></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
<dt>\r
-l\r
to the child commit. With this option, both groups of lines\r
are blamed on the parent.\r
</p>\r
-<p><num> is optional but it is the lower bound on the number of\r
+<div class="para"><p><num> is optional but it is the lower bound on the number of\r
alphanumeric characters that git must detect as moving\r
within a file for it to associate those lines with the parent\r
-commit.</p>\r
+commit.</p></div>\r
</dd>\r
<dt>\r
-C|<num>|\r
the command looks for copies from all other files in the\r
parent for the commit that creates the file in addition.\r
</p>\r
-<p><num> is optional but it is the lower bound on the number of\r
+<div class="para"><p><num> is optional but it is the lower bound on the number of\r
alphanumeric characters that git must detect as moving\r
between files for it to associate those lines with the parent\r
-commit.</p>\r
+commit.</p></div>\r
</dd>\r
<dt>\r
-h\r
file (see <tt>-M</tt>). The first number listed is the score.\r
This is the number of alphanumeric characters detected\r
to be moved between or within files. This must be above\r
- a certain threshold for <tt>git-blame</tt> to consider those lines\r
+ a certain threshold for <em>git-blame</em> to consider those lines\r
of code to have been moved.\r
</p>\r
</dd>\r
child's to find where the lines came from.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>THE PORCELAIN FORMAT</h2>\r
+<h2 id="_the_porcelain_format">THE PORCELAIN FORMAT</h2>\r
<div class="sectionbody">\r
-<p>In this format, each line is output after a header; the\r
-header at the minimum has the first line which has:</p>\r
-<ul>\r
+<div class="para"><p>In this format, each line is output after a header; the\r
+header at the minimum has the first line which has:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
40-byte SHA-1 of the commit the line is attributed to;\r
group. On subsequent lines this field is absent.\r
</p>\r
</li>\r
-</ul>\r
-<p>This header line is followed by the following information\r
-at least once for each commit:</p>\r
-<ul>\r
+</ul></div>\r
+<div class="para"><p>This header line is followed by the following information\r
+at least once for each commit:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
author name ("author"), email ("author-mail"), time\r
the first line of the commit log message ("summary").\r
</p>\r
</li>\r
-</ul>\r
-<p>The contents of the actual line is output after the above\r
+</ul></div>\r
+<div class="para"><p>The contents of the actual line is output after the above\r
header, prefixed by a TAB. This is to allow adding more\r
-header elements later.</p>\r
+header elements later.</p></div>\r
</div>\r
-<h2>SPECIFYING RANGES</h2>\r
+<h2 id="_specifying_ranges">SPECIFYING RANGES</h2>\r
<div class="sectionbody">\r
-<p>Unlike <tt>git-blame</tt> and <tt>git-annotate</tt> in older git, the extent\r
+<div class="para"><p>Unlike <em>git-blame</em> and <em>git-annotate</em> in older git, the extent\r
of annotation can be limited to both line ranges and revision\r
ranges. When you are interested in finding the origin for\r
ll. 40-60 for file <tt>foo</tt>, you can use <tt>-L</tt> option like these\r
(they mean the same thing — both ask for 21 lines starting at\r
-line 40):</p>\r
+line 40):</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git blame -L 40,60 foo\r
git blame -L 40,+21 foo</tt></pre>\r
</div></div>\r
-<p>Also you can use regular expression to specify the line range.</p>\r
+<div class="para"><p>Also you can use regular expression to specify the line range.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git blame -L '/^sub hello {/,/^}$/' foo</tt></pre>\r
</div></div>\r
-<p>would limit the annotation to the body of <tt>hello</tt> subroutine.</p>\r
-<p>When you are not interested in changes older than the version\r
+<div class="para"><p>would limit the annotation to the body of <tt>hello</tt> subroutine.</p></div>\r
+<div class="para"><p>When you are not interested in changes older than the version\r
v2.6.18, or changes older than 3 weeks, you can use revision\r
-range specifiers similar to <tt>git-rev-list</tt>:</p>\r
+range specifiers similar to <em>git-rev-list</em>:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git blame v2.6.18.. -- foo\r
git blame --since=3.weeks -- foo</tt></pre>\r
</div></div>\r
-<p>When revision range specifiers are used to limit the annotation,\r
+<div class="para"><p>When revision range specifiers are used to limit the annotation,\r
lines that have not changed since the range boundary (either the\r
commit v2.6.18 or the most recent commit that is more than 3\r
weeks old in the above example) are blamed for that range\r
-boundary commit.</p>\r
-<p>A particularly useful way is to see if an added file have lines\r
+boundary commit.</p></div>\r
+<div class="para"><p>A particularly useful way is to see if an added file have lines\r
created by copy-and-paste from existing files. Sometimes this\r
indicates that the developer was being sloppy and did not\r
refactor the code properly. You can first find the commit that\r
-introduced the file with:</p>\r
+introduced the file with:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git log --diff-filter=A --pretty=short -- foo</tt></pre>\r
</div></div>\r
-<p>and then annotate the change between the commit and its\r
-parents, using <tt>commit^!</tt> notation:</p>\r
+<div class="para"><p>and then annotate the change between the commit and its\r
+parents, using <tt>commit^!</tt> notation:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git blame -C -C -f $commit^! -- foo</tt></pre>\r
</div></div>\r
</div>\r
-<h2>INCREMENTAL OUTPUT</h2>\r
+<h2 id="_incremental_output">INCREMENTAL OUTPUT</h2>\r
<div class="sectionbody">\r
-<p>When called with <tt>--incremental</tt> option, the command outputs the\r
+<div class="para"><p>When called with <tt>--incremental</tt> option, the command outputs the\r
result as it is built. The output generally will talk about\r
lines touched by more recent commits first (i.e. the lines will\r
be annotated out of order) and is meant to be used by\r
-interactive viewers.</p>\r
-<p>The output format is similar to the Porcelain format, but it\r
+interactive viewers.</p></div>\r
+<div class="para"><p>The output format is similar to the Porcelain format, but it\r
does not contain the actual lines from the file that is being\r
-annotated.</p>\r
-<ol>\r
+annotated.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
Each blame entry always starts with a line of:\r
<div class="content">\r
<pre><tt><40-byte hex sha1> <sourceline> <resultline> <num_lines></tt></pre>\r
</div></div>\r
-<p>Line numbers count from 1.</p>\r
+<div class="para"><p>Line numbers count from 1.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>"filename" <whitespace-quoted-filename-goes-here></tt></pre>\r
</div></div>\r
-<p>and thus it's really quite easy to parse for some line- and word-oriented\r
-parser (which should be quite natural for most scripting languages).</p>\r
+<div class="para"><p>and thus it's really quite easy to parse for some line- and word-oriented\r
+parser (which should be quite natural for most scripting languages).</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
</tr></table>\r
</div>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-annotate.html">git-annotate(1)</a></p>\r
+<div class="para"><p><a href="git-annotate.html">git-annotate(1)</a></p></div>\r
</div>\r
-<h2>AUTHOR</h2>\r
+<h2 id="_author">AUTHOR</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:33 UTC\r
+Last updated 2008-07-06 05:16:35 UTC\r
</div>\r
</div>\r
</body>\r
Also it can limit the range of lines annotated.
This report doesn't tell you anything about lines which have been deleted or
-replaced; you need to use a tool such as `git-diff` or the "pickaxe"
+replaced; you need to use a tool such as 'git-diff' or the "pickaxe"
interface briefly mentioned in the following paragraph.
Apart from supporting file annotation, git also supports searching the
file (see `-M`). The first number listed is the score.
This is the number of alphanumeric characters detected
to be moved between or within files. This must be above
- a certain threshold for `git-blame` to consider those lines
+ a certain threshold for 'git-blame' to consider those lines
of code to have been moved.
-f::
SPECIFYING RANGES
-----------------
-Unlike `git-blame` and `git-annotate` in older git, the extent
+Unlike 'git-blame' and 'git-annotate' in older git, the extent
of annotation can be limited to both line ranges and revision
ranges. When you are interested in finding the origin for
ll. 40-60 for file `foo`, you can use `-L` option like these
When you are not interested in changes older than the version
v2.6.18, or changes older than 3 weeks, you can use revision
-range specifiers similar to `git-rev-list`:
+range specifiers similar to 'git-rev-list':
git blame v2.6.18.. -- foo
git blame --since=3.weeks -- foo
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-branch(1)</title>\r
</head>\r
<em>git branch</em> (-m | -M) [<oldbranch>] <newbranch>\r
<em>git branch</em> (-d | -D) [-r] <branchname>…</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>With no arguments given a list of existing branches\r
+<div class="para"><p>With no arguments given a list of existing branches\r
will be shown, the current branch will be highlighted with an asterisk.\r
Option <tt>-r</tt> causes the remote-tracking branches to be listed,\r
and option <tt>-a</tt> shows both.\r
contains the named commit (in other words, the branches whose\r
tip commits are descendant of the named commit).\r
With <tt>--merged</tt>, only branches merged into HEAD will be listed, and\r
-with <tt>--no-merged</tt> only branches not merged into HEAD will be listed.</p>\r
-<p>In its second form, a new branch named <branchname> will be created.\r
+with <tt>--no-merged</tt> only branches not merged into HEAD will be listed.</p></div>\r
+<div class="para"><p>In its second form, a new branch named <branchname> will be created.\r
It will start out with a head equal to the one given as <start-point>.\r
If no <start-point> is given, the branch will be created with a head\r
-equal to that of the currently checked out branch.</p>\r
-<p>Note that this will create the new branch, but it will not switch the\r
+equal to that of the currently checked out branch.</p></div>\r
+<div class="para"><p>Note that this will create the new branch, but it will not switch the\r
working tree to it; use "git checkout <newbranch>" to switch to the\r
-new branch.</p>\r
-<p>When a local branch is started off a remote branch, git sets up the\r
-branch so that <tt>git-pull</tt> will appropriately merge from\r
+new branch.</p></div>\r
+<div class="para"><p>When a local branch is started off a remote branch, git sets up the\r
+branch so that <em>git-pull</em> will appropriately merge from\r
the remote branch. This behavior may be changed via the global\r
<tt>branch.autosetupmerge</tt> configuration flag. That setting can be\r
-overridden by using the <tt>--track</tt> and <tt>--no-track</tt> options.</p>\r
-<p>With a <em>-m</em> or <em>-M</em> option, <oldbranch> will be renamed to <newbranch>.\r
+overridden by using the <tt>--track</tt> and <tt>--no-track</tt> options.</p></div>\r
+<div class="para"><p>With a <em>-m</em> or <em>-M</em> option, <oldbranch> will be renamed to <newbranch>.\r
If <oldbranch> had a corresponding reflog, it is renamed to match\r
<newbranch>, and a reflog entry is created to remember the branch\r
renaming. If <newbranch> exists, -M must be used to force the rename\r
-to happen.</p>\r
-<p>With a <tt>-d</tt> or <tt>-D</tt> option, <tt><branchname></tt> will be deleted. You may\r
+to happen.</p></div>\r
+<div class="para"><p>With a <tt>-d</tt> or <tt>-D</tt> option, <tt><branchname></tt> will be deleted. You may\r
specify more than one branch for deletion. If the branch currently\r
-has a reflog then the reflog will also be deleted.</p>\r
-<p>Use -r together with -d to delete remote-tracking branches. Note, that it\r
+has a reflog then the reflog will also be deleted.</p></div>\r
+<div class="para"><p>Use -r together with -d to delete remote-tracking branches. Note, that it\r
only makes sense to delete remote-tracking branches if they no longer exist\r
-in remote repository or if <tt>git-fetch</tt> was configured not to fetch\r
+in remote repository or if <em>git-fetch</em> was configured not to fetch\r
them again. See also <em>prune</em> subcommand of <a href="git-remote.html">git-remote(1)</a> for way to\r
-clean up all obsolete remote-tracking branches.</p>\r
+clean up all obsolete remote-tracking branches.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-d\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- When creating a new branch, set up configuration so that <tt>git-pull</tt>\r
+ When creating a new branch, set up configuration so that <em>git-pull</em>\r
will automatically retrieve data from the start point, which must be\r
a branch. Use this if you always pull from the same upstream branch\r
into the new branch, and if you don't want to use "git pull\r
<repository> <refspec>" explicitly. This behavior is the default\r
when the start point is a remote branch. Set the\r
branch.autosetupmerge configuration variable to <tt>false</tt> if you want\r
- <tt>git-checkout</tt> and <tt>git-branch</tt> to always behave as if <em>--no-track</em> were\r
+ <em>git-checkout</em> and <em>git-branch</em> to always behave as if <em>--no-track</em> were\r
given. Set it to <tt>always</tt> if you want this behavior when the\r
start-point is either a local or remote branch.\r
</p>\r
<branchname> applies.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
Start development off of a known tag\r
</dt>\r
$ git branch my2.6.14 v2.6.14 <b>(1)</b>\r
$ git checkout my2.6.14</tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
This step and the next one could be combined into a single step with\r
"checkout -b my2.6.14 v2.6.14".\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
Delete unneeded branch\r
$ git branch -d -r origin/todo origin/html origin/man <b>(1)</b>\r
$ git branch -D test <b>(2)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
Delete remote-tracking branches "todo", "html", "man". Next <em>fetch</em> or\r
currently checked out) does not have all commits from test branch.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Notes</h2>\r
+<h2 id="_notes">Notes</h2>\r
<div class="sectionbody">\r
-<p>If you are creating a branch that you want to immediately checkout, it's\r
+<div class="para"><p>If you are creating a branch that you want to immediately checkout, it's\r
easier to use the git checkout command with its <tt>-b</tt> option to create\r
-a branch and check it out with a single command.</p>\r
-<p>The options <tt>--contains</tt>, <tt>--merged</tt> and <tt>--no-merged</tt> serves three related\r
-but different purposes:</p>\r
-<ul>\r
+a branch and check it out with a single command.</p></div>\r
+<div class="para"><p>The options <tt>--contains</tt>, <tt>--merged</tt> and <tt>--no-merged</tt> serves three related\r
+but different purposes:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<tt>--contains <commit></tt> is used to find all branches which will need\r
into HEAD, since those branches are not fully contained by HEAD.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:33 UTC\r
+Last updated 2008-07-06 05:16:36 UTC\r
</div>\r
</div>\r
</body>\r
new branch.
When a local branch is started off a remote branch, git sets up the
-branch so that `git-pull` will appropriately merge from
+branch so that 'git-pull' will appropriately merge from
the remote branch. This behavior may be changed via the global
`branch.autosetupmerge` configuration flag. That setting can be
overridden by using the `--track` and `--no-track` options.
Use -r together with -d to delete remote-tracking branches. Note, that it
only makes sense to delete remote-tracking branches if they no longer exist
-in remote repository or if `git-fetch` was configured not to fetch
+in remote repository or if 'git-fetch' was configured not to fetch
them again. See also 'prune' subcommand of linkgit:git-remote[1] for way to
clean up all obsolete remote-tracking branches.
Display the full sha1s in output listing rather than abbreviating them.
--track::
- When creating a new branch, set up configuration so that `git-pull`
+ When creating a new branch, set up configuration so that 'git-pull'
will automatically retrieve data from the start point, which must be
a branch. Use this if you always pull from the same upstream branch
into the new branch, and if you don't want to use "git pull
<repository> <refspec>" explicitly. This behavior is the default
when the start point is a remote branch. Set the
branch.autosetupmerge configuration variable to `false` if you want
- `git-checkout` and `git-branch` to always behave as if '--no-track' were
+ 'git-checkout' and 'git-branch' to always behave as if '--no-track' were
given. Set it to `always` if you want this behavior when the
start-point is either a local or remote branch.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-bundle(1)</title>\r
</head>\r
<em>git bundle</em> list-heads <file> [refname…]\r
<em>git bundle</em> unbundle <file> [refname…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Some workflows require that one or more branches of development on one\r
+<div class="para"><p>Some workflows require that one or more branches of development on one\r
machine be replicated on another machine, but the two machines cannot\r
be directly connected so the interactive git protocols (git, ssh,\r
rsync, http) cannot be used. This command provides support for\r
-<tt>git-fetch</tt> and <tt>git-pull</tt> to operate by packaging objects and references\r
+<em>git-fetch</em> and <em>git-pull</em> to operate by packaging objects and references\r
in an archive at the originating machine, then importing those into\r
-another repository using <tt>git-fetch</tt> and <tt>git-pull</tt>\r
+another repository using <em>git-fetch</em> and <em>git-pull</em>\r
after moving the archive by some means (i.e., by sneakernet). As no\r
direct connection between repositories exists, the user must specify a\r
basis for the bundle that is held by the destination repository: the\r
bundle assumes that all objects in the basis are already in the\r
-destination repository.</p>\r
+destination repository.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
create <file>\r
</dt>\r
<dd>\r
<p>\r
Used to create a bundle named <em>file</em>. This requires the\r
- <tt>git-rev-list</tt> arguments to define the bundle contents.\r
+ <em>git-rev-list</em> arguments to define the bundle contents.\r
</p>\r
</dd>\r
<dt>\r
cleanly to the current repository. This includes checks on the\r
bundle format itself as well as checking that the prerequisite\r
commits exist and are fully linked in the current repository.\r
- <tt>git-bundle</tt> prints a list of missing commits, if any, and exits\r
+ <em>git-bundle</em> prints a list of missing commits, if any, and exits\r
with non-zero status.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Passes the objects in the bundle to <tt>git-index-pack</tt>\r
+ Passes the objects in the bundle to <em>git-index-pack</em>\r
for storage in the repository, then prints the names of all\r
defined references. If a reflist is given, only references\r
matching those in the given list are printed. This command is\r
- really plumbing, intended to be called only by <tt>git-fetch</tt>.\r
+ really plumbing, intended to be called only by <em>git-fetch</em>.\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- A list of arguments, acceptable to <tt>git-rev-parse</tt> and\r
- <tt>git-rev-list</tt>, that specify the specific objects and references\r
+ A list of arguments, acceptable to <em>git-rev-parse</em> and\r
+ <em>git-rev-list</em>, that specify the specific objects and references\r
to transport. For example, "master~10..master" causes the\r
current master reference to be packaged along with all objects\r
added since its 10th ancestor commit. There is no explicit\r
<dd>\r
<p>\r
A list of references used to limit the references reported as\r
- available. This is principally of use to <tt>git-fetch</tt>, which\r
+ available. This is principally of use to <em>git-fetch</em>, which\r
expects to receive only those references asked for and not\r
- necessarily everything in the pack (in this case, <tt>git-bundle</tt> is\r
- acting like <tt>git-fetch-pack</tt>).\r
+ necessarily everything in the pack (in this case, <em>git-bundle</em> is\r
+ acting like <em>git-fetch-pack</em>).\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SPECIFYING REFERENCES</h2>\r
+<h2 id="_specifying_references">SPECIFYING REFERENCES</h2>\r
<div class="sectionbody">\r
-<p><tt>git-bundle</tt> will only package references that are shown by\r
-<tt>git-show-ref</tt>: this includes heads, tags, and remote heads. References\r
-such as master~1 cannot be packaged, but are perfectly suitable for\r
+<div class="para"><p><em>git-bundle</em> will only package references that are shown by\r
+<em>git-show-ref</em>: this includes heads, tags, and remote heads. References\r
+such as master<sub>1 cannot be packaged, but are perfectly suitable for\r
defining the basis. More than one reference may be packaged, and more\r
than one basis can be specified. The objects packaged are those not\r
contained in the union of the given bases. Each basis can be\r
-specified explicitly (e.g., ^master~10), or implicitly (e.g.,\r
-master~10..master, master --since=10.days.ago).</p>\r
-<p>It is very important that the basis used be held by the destination.\r
+specified explicitly (e.g., ^master</sub>10), or implicitly (e.g.,\r
+master~10..master, master --since=10.days.ago).</p></div>\r
+<div class="para"><p>It is very important that the basis used be held by the destination.\r
It is okay to err on the side of conservatism, causing the bundle file\r
to contain objects already in the destination as these are ignored\r
-when unpacking at the destination.</p>\r
+when unpacking at the destination.</p></div>\r
</div>\r
-<h2>EXAMPLE</h2>\r
+<h2 id="_example">EXAMPLE</h2>\r
<div class="sectionbody">\r
-<p>Assume two repositories exist as R1 on machine A, and R2 on machine B.\r
+<div class="para"><p>Assume two repositories exist as R1 on machine A, and R2 on machine B.\r
For whatever reason, direct connection between A and B is not allowed,\r
but we can move data from A to B via some mechanism (CD, email, etc).\r
-We want to update R2 with developments made on branch master in R1.</p>\r
-<p>To create the bundle you have to specify the basis. You have some options:</p>\r
-<ul>\r
+We want to update R2 with developments made on branch master in R1.</p></div>\r
+<div class="para"><p>To create the bundle you have to specify the basis. You have some options:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Without basis.\r
</p>\r
-<p>This is useful when sending the whole history.</p>\r
+<div class="para"><p>This is useful when sending the whole history.</p></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bundle create mybundle master</tt></pre>\r
</div></div>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Using temporally tags.\r
</p>\r
-<p>We set a tag in R1 (lastR2bundle) after the previous such transport,\r
-and move it afterwards to help build the bundle.</p>\r
+<div class="para"><p>We set a tag in R1 (lastR2bundle) after the previous such transport,\r
+and move it afterwards to help build the bundle.</p></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bundle create mybundle master ^lastR2bundle\r
$ git tag -f lastR2bundle master</tt></pre>\r
</div></div>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Using a tag present in both repositories\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bundle create mybundle master ^v1.0.0</tt></pre>\r
</div></div>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
A basis based on time.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bundle create mybundle master --since=10.days.ago</tt></pre>\r
</div></div>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
With a limit on the number of commits\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bundle create mybundle master -n 10</tt></pre>\r
</div></div>\r
-<p>Then you move mybundle from A to B, and in R2 on B:</p>\r
+<div class="para"><p>Then you move mybundle from A to B, and in R2 on B:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git bundle verify mybundle\r
$ git fetch mybundle master:localRef</tt></pre>\r
</div></div>\r
-<p>With something like this in the config in R2:</p>\r
+<div class="para"><p>With something like this in the config in R2:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[remote "bundle"]\r
url = /home/me/tmp/file.bdl\r
fetch = refs/heads/*:refs/remotes/origin/*</tt></pre>\r
</div></div>\r
-<p>You can first sneakernet the bundle file to ~/tmp/file.bdl and\r
-then these commands on machine B:</p>\r
+<div class="para"><p>You can first sneakernet the bundle file to ~/tmp/file.bdl and\r
+then these commands on machine B:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-remote bundle\r
$ git fetch bundle\r
$ git pull bundle</tt></pre>\r
</div></div>\r
-<p>would treat it as if it is talking with a remote side over the\r
-network.</p>\r
+<div class="para"><p>would treat it as if it is talking with a remote side over the\r
+network.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Mark Levedahl <mdl123@verizon.net></p>\r
+<div class="para"><p>Written by Mark Levedahl <mdl123@verizon.net></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:33 UTC\r
+Last updated 2008-07-06 05:16:36 UTC\r
</div>\r
</div>\r
</body>\r
machine be replicated on another machine, but the two machines cannot
be directly connected so the interactive git protocols (git, ssh,
rsync, http) cannot be used. This command provides support for
-`git-fetch` and `git-pull` to operate by packaging objects and references
+'git-fetch' and 'git-pull' to operate by packaging objects and references
in an archive at the originating machine, then importing those into
-another repository using `git-fetch` and `git-pull`
+another repository using 'git-fetch' and 'git-pull'
after moving the archive by some means (i.e., by sneakernet). As no
direct connection between repositories exists, the user must specify a
basis for the bundle that is held by the destination repository: the
create <file>::
Used to create a bundle named 'file'. This requires the
- `git-rev-list` arguments to define the bundle contents.
+ 'git-rev-list' arguments to define the bundle contents.
verify <file>::
Used to check that a bundle file is valid and will apply
cleanly to the current repository. This includes checks on the
bundle format itself as well as checking that the prerequisite
commits exist and are fully linked in the current repository.
- `git-bundle` prints a list of missing commits, if any, and exits
+ 'git-bundle' prints a list of missing commits, if any, and exits
with non-zero status.
list-heads <file>::
printed out.
unbundle <file>::
- Passes the objects in the bundle to `git-index-pack`
+ Passes the objects in the bundle to 'git-index-pack'
for storage in the repository, then prints the names of all
defined references. If a reflist is given, only references
matching those in the given list are printed. This command is
- really plumbing, intended to be called only by `git-fetch`.
+ really plumbing, intended to be called only by 'git-fetch'.
[git-rev-list-args...]::
- A list of arguments, acceptable to `git-rev-parse` and
- `git-rev-list`, that specify the specific objects and references
+ A list of arguments, acceptable to 'git-rev-parse' and
+ 'git-rev-list', that specify the specific objects and references
to transport. For example, "master~10..master" causes the
current master reference to be packaged along with all objects
added since its 10th ancestor commit. There is no explicit
[refname...]::
A list of references used to limit the references reported as
- available. This is principally of use to `git-fetch`, which
+ available. This is principally of use to 'git-fetch', which
expects to receive only those references asked for and not
- necessarily everything in the pack (in this case, `git-bundle` is
- acting like `git-fetch-pack`).
+ necessarily everything in the pack (in this case, 'git-bundle' is
+ acting like 'git-fetch-pack').
SPECIFYING REFERENCES
---------------------
-`git-bundle` will only package references that are shown by
-`git-show-ref`: this includes heads, tags, and remote heads. References
+'git-bundle' will only package references that are shown by
+'git-show-ref': this includes heads, tags, and remote heads. References
such as master~1 cannot be packaged, but are perfectly suitable for
defining the basis. More than one reference may be packaged, and more
than one basis can be specified. The objects packaged are those not
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-check-ref-format(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git check-ref-format</em> <refname></p>\r
+<div class="para"><p><em>git check-ref-format</em> <refname></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Checks if a given <em>refname</em> is acceptable, and exits non-zero if\r
-it is not.</p>\r
-<p>A reference is used in git to specify branches and tags. A\r
+<div class="para"><p>Checks if a given <em>refname</em> is acceptable, and exits non-zero if\r
+it is not.</p></div>\r
+<div class="para"><p>A reference is used in git to specify branches and tags. A\r
branch head is stored under <tt>$GIT_DIR/refs/heads</tt> directory, and\r
a tag is stored under <tt>$GIT_DIR/refs/tags</tt> directory. git\r
-imposes the following rules on how refs are named:</p>\r
-<ol>\r
+imposes the following rules on how refs are named:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It can include slash <tt>/</tt> for hierarchical (directory)\r
It cannot end with a slash <tt>/</tt>.\r
</p>\r
</li>\r
-</ol>\r
-<p>These rules makes it easy for shell script based tools to parse\r
+</ol></div>\r
+<div class="para"><p>These rules makes it easy for shell script based tools to parse\r
refnames, pathname expansion by the shell when a refname is used\r
unquoted (by mistake), and also avoids ambiguities in certain\r
-refname expressions (see <a href="git-rev-parse.html">git-rev-parse(1)</a>). Namely:</p>\r
-<ol>\r
+refname expressions (see <a href="git-rev-parse.html">git-rev-parse(1)</a>). Namely:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
double-dot <tt>..</tt> are often used as in <tt>ref1..ref2</tt>, and in some\r
colon <tt>:</tt> is used as in <tt>srcref:dstref</tt> to mean "use srcref's\r
value and store it in dstref" in fetch and push operations.\r
It may also be used to select a specific object such as with\r
- <tt>git-cat-file</tt>: "git cat-file blob v1.3.3:refs.c".\r
+ 'git-cat-file': "git cat-file blob v1.3.3:refs.c".\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:35 UTC\r
+Last updated 2008-07-06 05:16:37 UTC\r
</div>\r
</div>\r
</body>\r
. colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
value and store it in dstref" in fetch and push operations.
It may also be used to select a specific object such as with
- `git-cat-file`: "git cat-file blob v1.3.3:refs.c".
+ 'git-cat-file': "git cat-file blob v1.3.3:refs.c".
GIT
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-checkout-index(1)</title>\r
</head>\r
[-z] [--stdin]\r
[--] [<file>]*</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Will copy all files listed from the index to the working directory\r
-(not overwriting existing files).</p>\r
+<div class="para"><p>Will copy all files listed from the index to the working directory\r
+(not overwriting existing files).</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-u\r
</dt>\r
Do not interpret any more arguments as options.\r
</p>\r
</dd>\r
-</dl>\r
-<p>The order of the flags used to matter, but not anymore.</p>\r
-<p>Just doing <tt>git checkout-index</tt> does nothing. You probably meant\r
+</dl></div>\r
+<div class="para"><p>The order of the flags used to matter, but not anymore.</p></div>\r
+<div class="para"><p>Just doing <tt>git checkout-index</tt> does nothing. You probably meant\r
<tt>git checkout-index -a</tt>. And if you want to force it, you want\r
-<tt>git checkout-index -f -a</tt>.</p>\r
-<p>Intuitiveness is not the goal here. Repeatability is. The reason for\r
+<tt>git checkout-index -f -a</tt>.</p></div>\r
+<div class="para"><p>Intuitiveness is not the goal here. Repeatability is. The reason for\r
the "no arguments means no work" behavior is that from scripts you are\r
-supposed to be able to do:</p>\r
+supposed to be able to do:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --</tt></pre>\r
</div></div>\r
-<p>which will force all existing <tt>*.h</tt> files to be replaced with their\r
+<div class="para"><p>which will force all existing <tt>*.h</tt> files to be replaced with their\r
cached copies. If an empty command line implied "all", then this would\r
force-refresh everything in the index, which was not the point. But\r
-since <tt>git-checkout-index</tt> accepts --stdin it would be faster to use:</p>\r
+since <em>git-checkout-index</em> accepts --stdin it would be faster to use:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin</tt></pre>\r
</div></div>\r
-<p>The <tt>--</tt> is just a good idea when you know the rest will be filenames;\r
+<div class="para"><p>The <tt>--</tt> is just a good idea when you know the rest will be filenames;\r
it will prevent problems with a filename of, for example, <tt>-a</tt>.\r
-Using <tt>--</tt> is probably a good policy in scripts.</p>\r
+Using <tt>--</tt> is probably a good policy in scripts.</p></div>\r
</div>\r
-<h2>Using --temp or --stage=all</h2>\r
+<h2 id="_using_temp_or_stage_all">Using --temp or --stage=all</h2>\r
<div class="sectionbody">\r
-<p>When <tt>--temp</tt> is used (or implied by <tt>--stage=all</tt>)\r
-<tt>git-checkout-index</tt> will create a temporary file for each index\r
+<div class="para"><p>When <tt>--temp</tt> is used (or implied by <tt>--stage=all</tt>)\r
+<em>git-checkout-index</em> will create a temporary file for each index\r
entry being checked out. The index will not be updated with stat\r
information. These options can be useful if the caller needs all\r
stages of all unmerged entries so that the unmerged files can be\r
-processed by an external merge tool.</p>\r
-<p>A listing will be written to stdout providing the association of\r
+processed by an external merge tool.</p></div>\r
+<div class="para"><p>A listing will be written to stdout providing the association of\r
temporary file names to tracked path names. The listing format\r
-has two variations:</p>\r
-<ol>\r
+has two variations:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
tempname TAB path RS\r
</p>\r
-<p>The first format is what gets used when <tt>--stage</tt> is omitted or\r
+<div class="para"><p>The first format is what gets used when <tt>--stage</tt> is omitted or\r
is not <tt>--stage=all</tt>. The field tempname is the temporary file\r
name holding the file content and path is the tracked path name in\r
-the index. Only the requested entries are output.</p>\r
+the index. Only the requested entries are output.</p></div>\r
</li>\r
<li>\r
<p>\r
stage1temp SP stage2temp SP stage3tmp TAB path RS\r
</p>\r
-<p>The second format is what gets used when <tt>--stage=all</tt>. The three\r
+<div class="para"><p>The second format is what gets used when <tt>--stage=all</tt>. The three\r
stage temporary fields (stage1temp, stage2temp, stage3temp) list the\r
name of the temporary file if there is a stage entry in the index\r
or <tt>.</tt> if there is no stage entry. Paths which only have a stage 0\r
-entry will always be omitted from the output.</p>\r
+entry will always be omitted from the output.</p></div>\r
</li>\r
-</ol>\r
-<p>In both formats RS (the record separator) is newline by default\r
+</ol></div>\r
+<div class="para"><p>In both formats RS (the record separator) is newline by default\r
but will be the null byte if -z was passed on the command line.\r
The temporary file names are always safe strings; they will never\r
contain directory separators or whitespace characters. The path\r
field is always relative to the current directory and the temporary\r
-file names are always relative to the top level directory.</p>\r
-<p>If the object being copied out to a temporary file is a symbolic\r
+file names are always relative to the top level directory.</p></div>\r
+<div class="para"><p>If the object being copied out to a temporary file is a symbolic\r
link the content of the link will be written to a normal file. It is\r
-up to the end-user or the Porcelain to make use of this information.</p>\r
+up to the end-user or the Porcelain to make use of this information.</p></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
To update and refresh only the files already checked out\r
</dt>\r
</div></div>\r
</dd>\r
<dt>\r
-Using <tt>git-checkout-index</tt> to "export an entire tree"\r
+Using <em>git-checkout-index</em> to "export an entire tree"\r
</dt>\r
<dd>\r
<p>\r
The prefix ability basically makes it trivial to use\r
- <tt>git-checkout-index</tt> as an "export as tree" function.\r
+ <em>git-checkout-index</em> as an "export as tree" function.\r
Just read the desired tree into the index, and do:\r
</p>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout-index --prefix=git-export-dir/ -a</tt></pre>\r
</div></div>\r
-<p><tt>git checkout-index</tt> will "export" the index into the specified\r
-directory.</p>\r
-<p>The final "/" is important. The exported name is literally just\r
+<div class="para"><p><tt>git checkout-index</tt> will "export" the index into the specified\r
+directory.</p></div>\r
+<div class="para"><p>The final "/" is important. The exported name is literally just\r
prefixed with the specified string. Contrast this with the\r
-following example.</p>\r
+following example.</p></div>\r
</dd>\r
<dt>\r
Export files with a prefix\r
<div class="content">\r
<pre><tt>$ git checkout-index --prefix=.merged- Makefile</tt></pre>\r
</div></div>\r
-<p>This will check out the currently cached copy of <tt>Makefile</tt>\r
-into the file <tt>.merged-Makefile</tt>.</p>\r
+<div class="para"><p>This will check out the currently cached copy of <tt>Makefile</tt>\r
+into the file <tt>.merged-Makefile</tt>.</p></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves,\r
-Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves,\r
+Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:34 UTC\r
+Last updated 2008-07-06 05:16:37 UTC\r
</div>\r
</div>\r
</body>\r
which will force all existing `*.h` files to be replaced with their
cached copies. If an empty command line implied "all", then this would
force-refresh everything in the index, which was not the point. But
-since `git-checkout-index` accepts --stdin it would be faster to use:
+since 'git-checkout-index' accepts --stdin it would be faster to use:
----------------
$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin
Using --temp or --stage=all
---------------------------
When `--temp` is used (or implied by `--stage=all`)
-`git-checkout-index` will create a temporary file for each index
+'git-checkout-index' will create a temporary file for each index
entry being checked out. The index will not be updated with stat
information. These options can be useful if the caller needs all
stages of all unmerged entries so that the unmerged files can be
$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh
----------------
-Using `git-checkout-index` to "export an entire tree"::
+Using 'git-checkout-index' to "export an entire tree"::
The prefix ability basically makes it trivial to use
- `git-checkout-index` as an "export as tree" function.
+ 'git-checkout-index' as an "export as tree" function.
Just read the desired tree into the index, and do:
+
----------------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-checkout(1)</title>\r
</head>\r
<div class="content"><em>git checkout</em> [-q] [-f] [[--track | --no-track] -b <new_branch> [-l]] [-m] [<branch>]\r
<em>git checkout</em> [<tree-ish>] <paths>…</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>When <paths> are not given, this command switches branches by\r
+<div class="para"><p>When <paths> are not given, this command switches branches by\r
updating the index and working tree to reflect the specified\r
branch, <branch>, and updating HEAD to be <branch> or, if\r
specified, <new_branch>. Using -b will cause <new_branch> to\r
be created; in this case you can use the --track or --no-track\r
-options, which will be passed to <tt>git branch</tt>.</p>\r
-<p>When <paths> are given, this command does <strong>not</strong> switch\r
+options, which will be passed to <tt>git branch</tt>.</p></div>\r
+<div class="para"><p>When <paths> are given, this command does <strong>not</strong> switch\r
branches. It updates the named paths in the working tree from\r
the index file (i.e. it runs <tt>git checkout-index -f -u</tt>), or\r
from a named commit. In\r
either of them results in an error. <tree-ish> argument can be\r
used to specify a specific tree-ish (i.e. commit, tag or tree)\r
to update the index for the given paths before updating the\r
-working tree.</p>\r
+working tree.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-q\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- When creating a new branch, set up configuration so that <tt>git-pull</tt>\r
+ When creating a new branch, set up configuration so that <em>git-pull</em>\r
will automatically retrieve data from the start point, which must be\r
a branch. Use this if you always pull from the same upstream branch\r
into the new branch, and if you don't want to use "git pull\r
<repository> <refspec>" explicitly. This behavior is the default\r
when the start point is a remote branch. Set the\r
branch.autosetupmerge configuration variable to <tt>false</tt> if you want\r
- <tt>git-checkout</tt> and <tt>git-branch</tt> to always behave as if <em>--no-track</em> were\r
+ <em>git-checkout</em> and <em>git-branch</em> to always behave as if <em>--no-track</em> were\r
given. Set it to <tt>always</tt> if you want this behavior when the\r
start-point is either a local or remote branch.\r
</p>\r
branch, your working tree contents, and the new branch\r
is done, and you will be on the new branch.\r
</p>\r
-<p>When a merge conflict happens, the index entries for conflicting\r
+<div class="para"><p>When a merge conflict happens, the index entries for conflicting\r
paths are left unmerged, and you need to resolve the conflicts\r
and mark the resolved paths with <tt>git add</tt> (or <tt>git rm</tt> if the merge\r
-should result in deletion of the path).</p>\r
+should result in deletion of the path).</p></div>\r
</dd>\r
<dt>\r
<new_branch>\r
Branch to checkout; may be any object ID that resolves to a\r
commit. Defaults to HEAD.\r
</p>\r
-<p>When this parameter names a non-branch (but still a valid commit object),\r
-your HEAD becomes <em>detached</em>.</p>\r
+<div class="para"><p>When this parameter names a non-branch (but still a valid commit object),\r
+your HEAD becomes <em>detached</em>.</p></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Detached HEAD</h2>\r
+<h2 id="_detached_head">Detached HEAD</h2>\r
<div class="sectionbody">\r
-<p>It is sometimes useful to be able to <em>checkout</em> a commit that is\r
+<div class="para"><p>It is sometimes useful to be able to <em>checkout</em> a commit that is\r
not at the tip of one of your branches. The most obvious\r
example is to check out the commit at a tagged official release\r
-point, like this:</p>\r
+point, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout v2.6.18</tt></pre>\r
</div></div>\r
-<p>Earlier versions of git did not allow this and asked you to\r
+<div class="para"><p>Earlier versions of git did not allow this and asked you to\r
create a temporary branch using <tt>-b</tt> option, but starting from\r
version 1.5.0, the above command <em>detaches</em> your HEAD from the\r
current branch and directly point at the commit named by the tag\r
-(<tt>v2.6.18</tt> in the above example).</p>\r
-<p>You can use usual git commands while in this state. You can use\r
+(<tt>v2.6.18</tt> in the above example).</p></div>\r
+<div class="para"><p>You can use usual git commands while in this state. You can use\r
<tt>git reset --hard $othercommit</tt> to further move around, for\r
example. You can make changes and create a new commit on top of\r
a detached HEAD. You can even create a merge by using <tt>git\r
-merge $othercommit</tt>.</p>\r
-<p>The state you are in while your HEAD is detached is not recorded\r
+merge $othercommit</tt>.</p></div>\r
+<div class="para"><p>The state you are in while your HEAD is detached is not recorded\r
by any branch (which is natural --- you are not on any branch).\r
What this means is that you can discard your temporary commits\r
and merges by switching back to an existing branch (e.g. <tt>git\r
checkout master</tt>), and a later <tt>git prune</tt> or <tt>git gc</tt> would\r
garbage-collect them. If you did this by mistake, you can ask\r
-the reflog for HEAD where you were, e.g.</p>\r
+the reflog for HEAD where you were, e.g.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -g -2 HEAD</tt></pre>\r
</div></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
The following sequence checks out the <tt>master</tt> branch, reverts\r
$ rm -f hello.c\r
$ git checkout hello.c <b>(3)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
switch branch\r
<p>\r
restore hello.c from HEAD of current branch\r
</p>\r
-<p>If you have an unfortunate branch that is named <tt>hello.c</tt>, this\r
+<div class="para"><p>If you have an unfortunate branch that is named <tt>hello.c</tt>, this\r
step would be confused as an instruction to switch to that branch.\r
-You should instead write:</p>\r
+You should instead write:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout -- hello.c</tt></pre>\r
</div></div>\r
</li>\r
-</ol>\r
+</ol></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>$ git checkout mytopic</tt></pre>\r
</div></div>\r
-<p>However, your "wrong" branch and correct "mytopic" branch may\r
+<div class="para"><p>However, your "wrong" branch and correct "mytopic" branch may\r
differ in files that you have locally modified, in which case,\r
-the above checkout would fail like this:</p>\r
+the above checkout would fail like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout mytopic\r
fatal: Entry 'frotz' not uptodate. Cannot merge.</tt></pre>\r
</div></div>\r
-<p>You can give the <tt>-m</tt> flag to the command, which would try a\r
-three-way merge:</p>\r
+<div class="para"><p>You can give the <tt>-m</tt> flag to the command, which would try a\r
+three-way merge:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout -m mytopic\r
Auto-merging frotz</tt></pre>\r
</div></div>\r
-<p>After this three-way merge, the local modifications are _not_\r
+<div class="para"><p>After this three-way merge, the local modifications are <em>not</em>\r
registered in your index file, so <tt>git diff</tt> would show you what\r
-changes you made since the tip of the new branch.</p>\r
+changes you made since the tip of the new branch.</p></div>\r
</li>\r
<li>\r
<p>\r
ERROR: Merge conflict in frotz\r
fatal: merge program failed</tt></pre>\r
</div></div>\r
-<p>At this point, <tt>git diff</tt> shows the changes cleanly merged as in\r
+<div class="para"><p>At this point, <tt>git diff</tt> shows the changes cleanly merged as in\r
the previous example, as well as the changes in the conflicted\r
files. Edit and resolve the conflict and mark it resolved with\r
-<tt>git add</tt> as usual:</p>\r
+<tt>git add</tt> as usual:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ edit frotz\r
$ git add frotz</tt></pre>\r
</div></div>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:34 UTC\r
+Last updated 2008-07-06 05:16:37 UTC\r
</div>\r
</div>\r
</body>\r
-t::
--track::
- When creating a new branch, set up configuration so that `git-pull`
+ When creating a new branch, set up configuration so that 'git-pull'
will automatically retrieve data from the start point, which must be
a branch. Use this if you always pull from the same upstream branch
into the new branch, and if you don't want to use "git pull
<repository> <refspec>" explicitly. This behavior is the default
when the start point is a remote branch. Set the
branch.autosetupmerge configuration variable to `false` if you want
- `git-checkout` and `git-branch` to always behave as if '--no-track' were
+ 'git-checkout' and 'git-branch' to always behave as if '--no-track' were
given. Set it to `always` if you want this behavior when the
start-point is either a local or remote branch.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-cherry-pick(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git cherry-pick</em> [--edit] [-n] [-m parent-number] [-s] [-x] <commit></p>\r
+<div class="para"><p><em>git cherry-pick</em> [--edit] [-n] [-m parent-number] [-s] [-x] <commit></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Given one existing commit, apply the change the patch introduces, and record a\r
+<div class="para"><p>Given one existing commit, apply the change the patch introduces, and record a\r
new commit that records it. This requires your working tree to be clean (no\r
-modifications from the HEAD commit).</p>\r
+modifications from the HEAD commit).</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<commit>\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- With this option, <tt>git-cherry-pick</tt> will let you edit the commit\r
+ With this option, <em>git-cherry-pick</em> will let you edit the commit\r
message prior to committing.\r
</p>\r
</dd>\r
the HEAD commit. The cherry-pick is done against the\r
beginning state of your working tree.\r
</p>\r
-<p>This is useful when cherry-picking more than one commits'\r
-effect to your working tree in a row.</p>\r
+<div class="para"><p>This is useful when cherry-picking more than one commits'\r
+effect to your working tree in a row.</p></div>\r
</dd>\r
<dt>\r
-s\r
Add Signed-off-by line at the end of the commit message.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:35 UTC\r
+Last updated 2008-07-06 05:16:38 UTC\r
</div>\r
</div>\r
</body>\r
-e::
--edit::
- With this option, `git-cherry-pick` will let you edit the commit
+ With this option, 'git-cherry-pick' will let you edit the commit
message prior to committing.
-x::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-cherry(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git cherry</em> [-v] <upstream> [<head>] [<limit>]</p>\r
+<div class="para"><p><em>git cherry</em> [-v] <upstream> [<head>] [<limit>]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>The changeset (or "diff") of each commit between the fork-point and <head>\r
+<div class="para"><p>The changeset (or "diff") of each commit between the fork-point and <head>\r
is compared against each commit between the fork-point and <upstream>.\r
The commits are compared with their <em>patch id</em>, obtained from\r
-the <tt>git-patch-id</tt> program.</p>\r
-<p>Every commit that doesn't exist in the <upstream> branch\r
+the <em>git-patch-id</em> program.</p></div>\r
+<div class="para"><p>Every commit that doesn't exist in the <upstream> branch\r
has its id (sha1) reported, prefixed by a symbol. The ones that have\r
equivalent change already\r
in the <upstream> branch are prefixed with a minus (-) sign, and those\r
-that only exist in the <head> branch are prefixed with a plus (+) symbol:</p>\r
+that only exist in the <head> branch are prefixed with a plus (+) symbol:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> __*__*__*__*__> <upstream>\r
fork-point\r
\__+__+__-__+__+__-__+__> <head></tt></pre>\r
</div></div>\r
-<p>If a <limit> has been given then the commits along the <head> branch up\r
-to and including <limit> are not reported:</p>\r
+<div class="para"><p>If a <limit> has been given then the commits along the <head> branch up\r
+to and including <limit> are not reported:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> __*__*__*__*__> <upstream>\r
fork-point\r
\__*__*__<limit>__-__+__> <head></tt></pre>\r
</div></div>\r
-<p>Because <tt>git-cherry</tt> compares the changeset rather than the commit id\r
-(sha1), you can use <tt>git-cherry</tt> to find out if a commit you made locally\r
+<div class="para"><p>Because <em>git-cherry</em> compares the changeset rather than the commit id\r
+(sha1), you can use <em>git-cherry</em> to find out if a commit you made locally\r
has been applied <upstream> under a different commit id. For example,\r
this will happen if you're feeding patches <upstream> via email rather\r
-than pushing or pulling commits directly.</p>\r
+than pushing or pulling commits directly.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-v\r
</dt>\r
Do not report commits up to (and including) limit.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-patch-id.html">git-patch-id(1)</a></p>\r
+<div class="para"><p><a href="git-patch-id.html">git-patch-id(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:35 UTC\r
+Last updated 2008-07-06 05:16:38 UTC\r
</div>\r
</div>\r
</body>\r
The changeset (or "diff") of each commit between the fork-point and <head>
is compared against each commit between the fork-point and <upstream>.
The commits are compared with their 'patch id', obtained from
-the `git-patch-id` program.
+the 'git-patch-id' program.
Every commit that doesn't exist in the <upstream> branch
has its id (sha1) reported, prefixed by a symbol. The ones that have
\__*__*__<limit>__-__+__> <head>
-Because `git-cherry` compares the changeset rather than the commit id
-(sha1), you can use `git-cherry` to find out if a commit you made locally
+Because 'git-cherry' compares the changeset rather than the commit id
+(sha1), you can use 'git-cherry' to find out if a commit you made locally
has been applied <upstream> under a different commit id. For example,
this will happen if you're feeding patches <upstream> via email rather
than pushing or pulling commits directly.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-citool(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git citool</em></p>\r
+<div class="para"><p><em>git citool</em></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>A Tcl/Tk based graphical interface to review modified files, stage\r
+<div class="para"><p>A Tcl/Tk based graphical interface to review modified files, stage\r
them into the index, enter a commit message and record the new\r
commit onto the current branch. This interface is an alternative\r
-to the less interactive <tt>git-commit</tt> program.</p>\r
-<p><tt>git-citool</tt> is actually a standard alias for <tt>git gui citool</tt>.\r
-See <a href="git-gui.html">git-gui(1)</a> for more details.</p>\r
+to the less interactive <em>git-commit</em> program.</p></div>\r
+<div class="para"><p><em>git-citool</em> is actually a standard alias for <tt>git gui citool</tt>.\r
+See <a href="git-gui.html">git-gui(1)</a> for more details.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Shawn O. Pearce <spearce@spearce.org>.</p>\r
+<div class="para"><p>Written by Shawn O. Pearce <spearce@spearce.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Shawn O. Pearce <spearce@spearce.org>.</p>\r
+<div class="para"><p>Documentation by Shawn O. Pearce <spearce@spearce.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:35 UTC\r
+Last updated 2008-07-06 05:16:38 UTC\r
</div>\r
</div>\r
</body>\r
A Tcl/Tk based graphical interface to review modified files, stage
them into the index, enter a commit message and record the new
commit onto the current branch. This interface is an alternative
-to the less interactive `git-commit` program.
+to the less interactive 'git-commit' program.
-`git-citool` is actually a standard alias for `git gui citool`.
+'git-citool' is actually a standard alias for `git gui citool`.
See linkgit:git-gui[1] for more details.
Author
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-clean(1)</title>\r
</head>\r
<div class="verseblock">\r
<div class="content"><em>git clean</em> [-d] [-f] [-n] [-q] [-x | -X] [--] <paths>…</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Removes files unknown to git. This allows to clean the working tree\r
+<div class="para"><p>Removes files unknown to git. This allows to clean the working tree\r
from files that are not under version control. If the <em>-x</em> option is\r
specified, ignored files are also removed, allowing to remove all\r
build products.\r
When optional <tt><paths>…</tt> arguments are given, the paths\r
-affected are further limited to those that match them.</p>\r
+affected are further limited to those that match them.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-d\r
</dt>\r
<dd>\r
<p>\r
If the git configuration specifies clean.requireForce as true,\r
- <tt>git-clean</tt> will refuse to run unless given -f or -n.\r
+ <em>git-clean</em> will refuse to run unless given -f or -n.\r
</p>\r
</dd>\r
<dt>\r
<p>\r
Don't use the ignore rules. This allows removing all untracked\r
files, including build products. This can be used (possibly in\r
- conjunction with <tt>git-reset</tt>) to create a pristine\r
+ conjunction with <em>git-reset</em>) to create a pristine\r
working directory to test a clean build.\r
</p>\r
</dd>\r
everything from scratch, but keep manually created files.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Pavel Roskin <proski@gnu.org></p>\r
+<div class="para"><p>Written by Pavel Roskin <proski@gnu.org></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:36 UTC\r
+Last updated 2008-07-06 05:16:38 UTC\r
</div>\r
</div>\r
</body>\r
-f::
If the git configuration specifies clean.requireForce as true,
- `git-clean` will refuse to run unless given -f or -n.
+ 'git-clean' will refuse to run unless given -f or -n.
-n::
--dry-run::
-x::
Don't use the ignore rules. This allows removing all untracked
files, including build products. This can be used (possibly in
- conjunction with `git-reset`) to create a pristine
+ conjunction with 'git-reset') to create a pristine
working directory to test a clean build.
-X::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-clone(1)</title>\r
</head>\r
[-o <name>] [-u <upload-pack>] [--reference <repository>]\r
[--depth <depth>] [--] <repository> [<directory>]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Clones a repository into a newly created directory, creates\r
+<div class="para"><p>Clones a repository into a newly created directory, creates\r
remote-tracking branches for each branch in the cloned repository\r
(visible using <tt>git branch -r</tt>), and creates and checks out an initial\r
-branch equal to the cloned repository's currently active branch.</p>\r
-<p>After the clone, a plain <tt>git fetch</tt> without arguments will update\r
+branch equal to the cloned repository's currently active branch.</p></div>\r
+<div class="para"><p>After the clone, a plain <tt>git fetch</tt> without arguments will update\r
all the remote-tracking branches, and a <tt>git pull</tt> without\r
arguments will in addition merge the remote master branch into the\r
-current master branch, if any.</p>\r
-<p>This default configuration is achieved by creating references to\r
+current master branch, if any.</p></div>\r
+<div class="para"><p>This default configuration is achieved by creating references to\r
the remote branch heads under <tt>$GIT_DIR/refs/remotes/origin</tt> and\r
by initializing <tt>remote.origin.url</tt> and <tt>remote.origin.fetch</tt>\r
-configuration variables.</p>\r
+configuration variables.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--local\r
</dt>\r
with the source repository. The resulting repository\r
starts out without any object of its own.\r
</p>\r
-<p><strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use\r
+<div class="para"><p><strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use\r
it unless you understand what it does. If you clone your\r
repository using this option and then delete branches (or use any\r
other git command that makes any existing commit unreferenced) in the\r
source repository, some objects may become unreferenced (or dangling).\r
-These objects may be removed by normal git operations (such as <tt>git-commit</tt>)\r
+These objects may be removed by normal git operations (such as <em>git-commit</em>)\r
which automatically call <tt>git gc --auto</tt>. (See <a href="git-gc.html">git-gc(1)</a>.)\r
If these objects are removed and were referenced by the cloned repository,\r
-then the cloned repository will become corrupt.</p>\r
+then the cloned repository will become corrupt.</p></div>\r
</dd>\r
<dt>\r
--reference <repository>\r
require fewer objects to be copied from the repository\r
being cloned, reducing network and local storage costs.\r
</p>\r
-<p><strong>NOTE</strong>: see NOTE to --shared option.</p>\r
+<div class="para"><p><strong>NOTE</strong>: see NOTE to --shared option.</p></div>\r
</dd>\r
<dt>\r
--quiet\r
<dd>\r
<p>\r
Operate quietly. This flag is passed to "rsync" and\r
- <tt>git-fetch-pack</tt> commands when given.\r
+ <em>git-fetch-pack</em> commands when given.\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
When given, and the repository to clone from is handled\r
- by <tt>git-fetch-pack</tt>, <tt>--exec=<upload-pack></tt> is passed to\r
+ by <em>git-fetch-pack</em>, <tt>--exec=<upload-pack></tt> is passed to\r
the command to specify non-default path for the command\r
run on the other end.\r
</p>\r
is not allowed.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>GIT URLS<a id="URLS"></a></h2>\r
+<h2 id="_git_urls_a_id_urls_a">GIT URLS<a id="URLS"></a></h2>\r
<div class="sectionbody">\r
-<p>One of the following notations can be used\r
-to name the remote repository:</p>\r
+<div class="para"><p>One of the following notations can be used\r
+to name the remote repository:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
rsync://host.xz/path/to/repo.git/\r
ssh://[user@]host.xz/~/path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>SSH is the default transport protocol over the network. You can\r
+<div class="para"><p>SSH is the default transport protocol over the network. You can\r
optionally specify which user to log-in as, and an alternate,\r
scp-like syntax is also supported. Both syntaxes support\r
username expansion, as does the native git protocol, but\r
only the former supports port specification. The following\r
-three are identical to the last three above, respectively:</p>\r
+three are identical to the last three above, respectively:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
[user@]host.xz:/path/to/repo.git/\r
[user@]host.xz:path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>To sync with a local directory, you can use:</p>\r
+<div class="para"><p>To sync with a local directory, you can use:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
/path/to/repo.git/\r
file:///path/to/repo.git/\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>They are equivalent, except the former implies --local option.</p>\r
-<p>If there are a large number of similarly-named remote repositories and\r
+<div class="para"><p>They are equivalent, except the former implies --local option.</p></div>\r
+<div class="para"><p>If there are a large number of similarly-named remote repositories and\r
you want to use a different format for them (such that the URLs you\r
use will be rewritten into URLs that work), you can create a\r
-configuration section of the form:</p>\r
+configuration section of the form:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "<actual url base>"]\r
insteadOf = <other url base></tt></pre>\r
</div></div>\r
-<p>For example, with this:</p>\r
+<div class="para"><p>For example, with this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "git://git.host.xz/"]\r
insteadOf = host.xz:/path/to/\r
insteadOf = work:</tt></pre>\r
</div></div>\r
-<p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
-rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p>\r
+<div class="para"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
+rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
Clone from upstream\r
</dt>\r
/pub/scm/.../me/subsys-2.6.git</tt></pre>\r
</div></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:36 UTC\r
+Last updated 2008-07-06 05:16:38 UTC\r
</div>\r
</div>\r
</body>\r
repository using this option and then delete branches (or use any
other git command that makes any existing commit unreferenced) in the
source repository, some objects may become unreferenced (or dangling).
-These objects may be removed by normal git operations (such as `git-commit`)
+These objects may be removed by normal git operations (such as 'git-commit')
which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
If these objects are removed and were referenced by the cloned repository,
then the cloned repository will become corrupt.
--quiet::
-q::
Operate quietly. This flag is passed to "rsync" and
- `git-fetch-pack` commands when given.
+ 'git-fetch-pack' commands when given.
--no-checkout::
-n::
--upload-pack <upload-pack>::
-u <upload-pack>::
When given, and the repository to clone from is handled
- by `git-fetch-pack`, `--exec=<upload-pack>` is passed to
+ by 'git-fetch-pack', `--exec=<upload-pack>` is passed to
the command to specify non-default path for the command
run on the other end.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-commit-tree(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git commit-tree</em> <tree> [-p <parent commit>]* < changelog</p>\r
+<div class="para"><p><em>git commit-tree</em> <tree> [-p <parent commit>]* < changelog</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This is usually not what an end user wants to run directly. See\r
-<a href="git-commit.html">git-commit(1)</a> instead.</p>\r
-<p>Creates a new commit object based on the provided tree object and\r
+<div class="para"><p>This is usually not what an end user wants to run directly. See\r
+<a href="git-commit.html">git-commit(1)</a> instead.</p></div>\r
+<div class="para"><p>Creates a new commit object based on the provided tree object and\r
emits the new commit object id on stdout. If no parent is given then\r
-it is considered to be an initial tree.</p>\r
-<p>A commit object usually has 1 parent (a commit after a change) or up\r
+it is considered to be an initial tree.</p></div>\r
+<div class="para"><p>A commit object usually has 1 parent (a commit after a change) or up\r
to 16 parents. More than one parent represents a merge of branches\r
-that led to them.</p>\r
-<p>While a tree represents a particular directory state of a working\r
+that led to them.</p></div>\r
+<div class="para"><p>While a tree represents a particular directory state of a working\r
directory, a commit represents that state in "time", and explains how\r
-to get there.</p>\r
-<p>Normally a commit would identify a new "HEAD" state, and while git\r
+to get there.</p></div>\r
+<div class="para"><p>Normally a commit would identify a new "HEAD" state, and while git\r
doesn't care where you save the note about that state, in practice we\r
tend to just write the result to the file that is pointed at by\r
<tt>.git/HEAD</tt>, so that we can always see what the last committed\r
-state was.</p>\r
+state was.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<tree>\r
</dt>\r
Each <em>-p</em> indicates the id of a parent commit object.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Commit Information</h2>\r
+<h2 id="_commit_information">Commit Information</h2>\r
<div class="sectionbody">\r
-<p>A commit encapsulates:</p>\r
-<ul>\r
+<div class="para"><p>A commit encapsulates:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
all parent object ids\r
committer name and email and the commit time.\r
</p>\r
</li>\r
-</ul>\r
-<p>While parent object ids are provided on the command line, author and\r
+</ul></div>\r
+<div class="para"><p>While parent object ids are provided on the command line, author and\r
committer information is taken from the following environment variables,\r
-if set:</p>\r
+if set:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>GIT_AUTHOR_NAME\r
GIT_COMMITTER_DATE\r
EMAIL</tt></pre>\r
</div></div>\r
-<p>(nb "<", ">" and "\n"s are stripped)</p>\r
-<p>In case (some of) these environment variables are not set, the information\r
+<div class="para"><p>(nb "<", ">" and "\n"s are stripped)</p></div>\r
+<div class="para"><p>In case (some of) these environment variables are not set, the information\r
is taken from the configuration items user.name and user.email, or, if not\r
-present, system user name and fully qualified hostname.</p>\r
-<p>A commit comment is read from stdin. If a changelog\r
-entry is not provided via "<" redirection, <tt>git-commit-tree</tt> will just wait\r
-for one to be entered and terminated with ^D.</p>\r
+present, system user name and fully qualified hostname.</p></div>\r
+<div class="para"><p>A commit comment is read from stdin. If a changelog\r
+entry is not provided via "<" redirection, <em>git-commit-tree</em> will just wait\r
+for one to be entered and terminated with ^D.</p></div>\r
</div>\r
-<h2>Diagnostics</h2>\r
+<h2 id="_diagnostics">Diagnostics</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
You don't exist. Go away!\r
</dt>\r
The password(5) name field is longer than a giant static buffer.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Discussion</h2>\r
+<h2 id="_discussion">Discussion</h2>\r
<div class="sectionbody">\r
-<p>At the core level, git is character encoding agnostic.</p>\r
-<ul>\r
+<div class="para"><p>At the core level, git is character encoding agnostic.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
The pathnames recorded in the index and in the tree objects\r
bytes.\r
</p>\r
</li>\r
-</ul>\r
-<p>Although we encourage that the commit log messages are encoded\r
+</ul></div>\r
+<div class="para"><p>Although we encourage that the commit log messages are encoded\r
in UTF-8, both the core and git Porcelain are designed not to\r
force UTF-8 on projects. If all participants of a particular\r
project find it more convenient to use legacy encodings, git\r
does not forbid it. However, there are a few things to keep in\r
-mind.</p>\r
-<ol>\r
+mind.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
-<tt>git-commit-tree</tt> (hence, <tt>git-commit</tt> which uses it) issues\r
+<em>git-commit-tree</em> (hence, <em>git-commit</em> which uses it) issues\r
a warning if the commit log message given to it does not look\r
like a valid UTF-8 string, unless you explicitly say your\r
project uses a legacy encoding. The way to say this is to\r
<pre><tt>[i18n]\r
commitencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>Commit objects created with the above setting record the value\r
+<div class="para"><p>Commit objects created with the above setting record the value\r
of <tt>i18n.commitencoding</tt> in its <tt>encoding</tt> header. This is to\r
help other people who look at them later. Lack of this header\r
-implies that the commit log message is encoded in UTF-8.</p>\r
+implies that the commit log message is encoded in UTF-8.</p></div>\r
</li>\r
<li>\r
<p>\r
-<tt>git-log</tt>, <tt>git-show</tt> and friends looks at the <tt>encoding</tt>\r
+<em>git-log</em>, <em>git-show</em> and friends looks at the <tt>encoding</tt>\r
header of a commit object, and tries to re-code the log\r
message into UTF-8 unless otherwise specified. You can\r
specify the desired output encoding with\r
<pre><tt>[i18n]\r
logoutputencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>If you do not have this configuration variable, the value of\r
-<tt>i18n.commitencoding</tt> is used instead.</p>\r
+<div class="para"><p>If you do not have this configuration variable, the value of\r
+<tt>i18n.commitencoding</tt> is used instead.</p></div>\r
</li>\r
-</ol>\r
-<p>Note that we deliberately chose not to re-code the commit log\r
+</ol></div>\r
+<div class="para"><p>Note that we deliberately chose not to re-code the commit log\r
message when a commit is made to force UTF-8 at the commit\r
object level, because re-coding to UTF-8 is not necessarily a\r
-reversible operation.</p>\r
+reversible operation.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-write-tree.html">git-write-tree(1)</a></p>\r
+<div class="para"><p><a href="git-write-tree.html">git-write-tree(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:36 UTC\r
+Last updated 2008-07-06 05:16:39 UTC\r
</div>\r
</div>\r
</body>\r
present, system user name and fully qualified hostname.
A commit comment is read from stdin. If a changelog
-entry is not provided via "<" redirection, `git-commit-tree` will just wait
+entry is not provided via "<" redirection, 'git-commit-tree' will just wait
for one to be entered and terminated with ^D.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-commit(1)</title>\r
</head>\r
[--allow-empty] [--no-verify] [-e] [--author=<author>]\r
[--cleanup=<mode>] [--] [[-i | -o ]<file>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Use <em>git commit</em> to store the current contents of the index in a new\r
-commit along with a log message describing the changes you have made.</p>\r
-<p>The content to be added can be specified in several ways:</p>\r
-<ol>\r
+<div class="para"><p>Stores the current contents of the index in a new commit along\r
+with a log message from the user describing the changes.</p></div>\r
+<div class="para"><p>The content to be added can be specified in several ways:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
-by using <tt>git-add</tt> to incrementally "add" changes to the\r
+by using <em>git-add</em> to incrementally "add" changes to the\r
index before using the <em>commit</em> command (Note: even modified\r
files must be "added");\r
</p>\r
</li>\r
<li>\r
<p>\r
-by using <tt>git-rm</tt> to remove files from the working tree\r
+by using <em>git-rm</em> to remove files from the working tree\r
and the index, again before using the <em>commit</em> command;\r
</p>\r
</li>\r
<p>\r
by using the --interactive switch with the <em>commit</em> command to decide one\r
by one which files should be part of the commit, before finalizing the\r
- operation. Currently, this is done by invoking <tt>git-add --interactive</tt>.\r
+ operation. Currently, this is done by invoking <em>git-add --interactive</em>.\r
</p>\r
</li>\r
-</ol>\r
-<p>The <tt>git-status</tt> command can be used to obtain a\r
+</ol></div>\r
+<div class="para"><p>The <em>git-status</em> command can be used to obtain a\r
summary of what is included by any of the above for the next\r
commit by giving the same set of parameters you would give to\r
-this command.</p>\r
-<p>If you make a commit and then find a mistake immediately after\r
-that, you can recover from it with <tt>git-reset</tt>.</p>\r
+this command.</p></div>\r
+<div class="para"><p>If you make a commit and then find a mistake immediately after\r
+that, you can recover from it with <em>git-reset</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-a\r
</dt>\r
the current tip as parents — so the current top commit is\r
discarded.\r
</p>\r
-<p>It is a rough equivalent for:</p>\r
+<div class="para"><p>It is a rough equivalent for:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git reset --soft HEAD^\r
$ git commit -c ORIG_HEAD\r
</tt></pre>\r
</div></div>\r
-<p>but can be used to amend a merge commit.</p>\r
+<div class="para"><p>but can be used to amend a merge commit.</p></div>\r
</dd>\r
<dt>\r
-i\r
Make a commit only from the paths specified on the\r
command line, disregarding any contents that have been\r
staged so far. This is the default mode of operation of\r
- <em>git commit</em> if any paths are given on the command line,\r
+ <em>git-commit</em> if any paths are given on the command line,\r
in which case this option can be omitted.\r
If this option is specified together with <em>--amend</em>, then\r
no paths need be specified, which can be used to amend\r
<p>\r
Show untracked files (Default: <em>all</em>).\r
</p>\r
-<p>The mode parameter is optional, and is used to specify\r
-the handling of untracked files. The possible options are:</p>\r
-<ul>\r
+<div class="para"><p>The mode parameter is optional, and is used to specify\r
+the handling of untracked files. The possible options are:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>no</em> - Show no untracked files\r
<em>all</em> - Also shows individual files in untracked directories.\r
</p>\r
</li>\r
-</ul>\r
-<p>See <a href="git-config.html">git-config(1)</a> for configuration variable\r
+</ul></div>\r
+<div class="para"><p>See <a href="git-config.html">git-config(1)</a> for configuration variable\r
used to change the default for when the option is not\r
-specified.</p>\r
+specified.</p></div>\r
</dd>\r
<dt>\r
-v\r
of what have been staged before.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<p>When recording your own work, the contents of modified files in\r
+<div class="para"><p>When recording your own work, the contents of modified files in\r
your working tree are temporarily stored to a staging area\r
-called the "index" with <tt>git-add</tt>. A file can be\r
+called the "index" with <em>git-add</em>. A file can be\r
reverted back, only in the index but not in the working tree,\r
to that of the last commit with <tt>git reset HEAD — <file></tt>,\r
-which effectively reverts <tt>git-add</tt> and prevents the changes to\r
+which effectively reverts <em>git-add</em> and prevents the changes to\r
this file from participating in the next commit. After building\r
the state to be committed incrementally with these commands,\r
<tt>git commit</tt> (without any pathname parameter) is used to record what\r
has been staged so far. This is the most basic form of the\r
-command. An example:</p>\r
+command. An example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ edit hello.c\r
$ git add hello.c\r
$ git commit</tt></pre>\r
</div></div>\r
-<p>Instead of staging files after each individual change, you can\r
+<div class="para"><p>Instead of staging files after each individual change, you can\r
tell <tt>git commit</tt> to notice the changes to the files whose\r
contents are tracked in\r
your working tree and do corresponding <tt>git add</tt> and <tt>git rm</tt>\r
for you. That is, this example does the same as the earlier\r
-example if there is no other change in your working tree:</p>\r
+example if there is no other change in your working tree:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ edit hello.c\r
$ rm goodbye.c\r
$ git commit -a</tt></pre>\r
</div></div>\r
-<p>The command <tt>git commit -a</tt> first looks at your working tree,\r
+<div class="para"><p>The command <tt>git commit -a</tt> first looks at your working tree,\r
notices that you have modified hello.c and removed goodbye.c,\r
-and performs necessary <tt>git add</tt> and <tt>git rm</tt> for you.</p>\r
-<p>After staging changes to many files, you can alter the order the\r
+and performs necessary <tt>git add</tt> and <tt>git rm</tt> for you.</p></div>\r
+<div class="para"><p>After staging changes to many files, you can alter the order the\r
changes are recorded in, by giving pathnames to <tt>git commit</tt>.\r
When pathnames are given, the command makes a commit that\r
-only records the changes made to the named paths:</p>\r
+only records the changes made to the named paths:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ edit hello.c hello.h\r
$ edit Makefile\r
$ git commit Makefile</tt></pre>\r
</div></div>\r
-<p>This makes a commit that records the modification to <tt>Makefile</tt>.\r
+<div class="para"><p>This makes a commit that records the modification to <tt>Makefile</tt>.\r
The changes staged for <tt>hello.c</tt> and <tt>hello.h</tt> are not included\r
in the resulting commit. However, their changes are not lost —\r
they are still staged and merely held back. After the above\r
-sequence, if you do:</p>\r
+sequence, if you do:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit</tt></pre>\r
</div></div>\r
-<p>this second commit would record the changes to <tt>hello.c</tt> and\r
-<tt>hello.h</tt> as expected.</p>\r
-<p>After a merge (initiated by <tt>git-merge</tt> or <tt>git-pull</tt>) stops\r
+<div class="para"><p>this second commit would record the changes to <tt>hello.c</tt> and\r
+<tt>hello.h</tt> as expected.</p></div>\r
+<div class="para"><p>After a merge (initiated by <em>git-merge</em> or <em>git-pull</em>) stops\r
because of conflicts, cleanly merged\r
paths are already staged to be committed for you, and paths that\r
conflicted are left in unmerged state. You would have to first\r
-check which paths are conflicting with <tt>git-status</tt>\r
+check which paths are conflicting with <em>git-status</em>\r
and after fixing them manually in your working tree, you would\r
-stage the result as usual with <tt>git-add</tt>:</p>\r
+stage the result as usual with <em>git-add</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git status | grep unmerged\r
$ edit hello.c\r
$ git add hello.c</tt></pre>\r
</div></div>\r
-<p>After resolving conflicts and staging the result, <tt>git ls-files -u</tt>\r
+<div class="para"><p>After resolving conflicts and staging the result, <tt>git ls-files -u</tt>\r
would stop mentioning the conflicted path. When you are done,\r
-run <tt>git commit</tt> to finally record the merge:</p>\r
+run <tt>git commit</tt> to finally record the merge:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit</tt></pre>\r
</div></div>\r
-<p>As with the case to record your own changes, you can use <tt>-a</tt>\r
+<div class="para"><p>As with the case to record your own changes, you can use <tt>-a</tt>\r
option to save typing. One difference is that during a merge\r
resolution, you cannot use <tt>git commit</tt> with pathnames to\r
alter the order the changes are committed, because the merge\r
should be recorded as a single commit. In fact, the command\r
-refuses to run when given pathnames (but see <tt>-i</tt> option).</p>\r
+refuses to run when given pathnames (but see <tt>-i</tt> option).</p></div>\r
</div>\r
-<h2>DISCUSSION</h2>\r
+<h2 id="_discussion">DISCUSSION</h2>\r
<div class="sectionbody">\r
-<p>Though not required, it's a good idea to begin the commit message\r
+<div class="para"><p>Though not required, it's a good idea to begin the commit message\r
with a single short (less than 50 character) line summarizing the\r
change, followed by a blank line and then a more thorough description.\r
Tools that turn commits into email, for example, use the first line\r
-on the Subject: line and the rest of the commit in the body.</p>\r
-<p>At the core level, git is character encoding agnostic.</p>\r
-<ul>\r
+on the Subject: line and the rest of the commit in the body.</p></div>\r
+<div class="para"><p>At the core level, git is character encoding agnostic.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
The pathnames recorded in the index and in the tree objects\r
bytes.\r
</p>\r
</li>\r
-</ul>\r
-<p>Although we encourage that the commit log messages are encoded\r
+</ul></div>\r
+<div class="para"><p>Although we encourage that the commit log messages are encoded\r
in UTF-8, both the core and git Porcelain are designed not to\r
force UTF-8 on projects. If all participants of a particular\r
project find it more convenient to use legacy encodings, git\r
does not forbid it. However, there are a few things to keep in\r
-mind.</p>\r
-<ol>\r
+mind.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
-<tt>git-commit-tree</tt> (hence, <tt>git-commit</tt> which uses it) issues\r
+<em>git-commit-tree</em> (hence, <em>git-commit</em> which uses it) issues\r
a warning if the commit log message given to it does not look\r
like a valid UTF-8 string, unless you explicitly say your\r
project uses a legacy encoding. The way to say this is to\r
<pre><tt>[i18n]\r
commitencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>Commit objects created with the above setting record the value\r
+<div class="para"><p>Commit objects created with the above setting record the value\r
of <tt>i18n.commitencoding</tt> in its <tt>encoding</tt> header. This is to\r
help other people who look at them later. Lack of this header\r
-implies that the commit log message is encoded in UTF-8.</p>\r
+implies that the commit log message is encoded in UTF-8.</p></div>\r
</li>\r
<li>\r
<p>\r
-<tt>git-log</tt>, <tt>git-show</tt> and friends looks at the <tt>encoding</tt>\r
+<em>git-log</em>, <em>git-show</em> and friends looks at the <tt>encoding</tt>\r
header of a commit object, and tries to re-code the log\r
message into UTF-8 unless otherwise specified. You can\r
specify the desired output encoding with\r
<pre><tt>[i18n]\r
logoutputencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>If you do not have this configuration variable, the value of\r
-<tt>i18n.commitencoding</tt> is used instead.</p>\r
+<div class="para"><p>If you do not have this configuration variable, the value of\r
+<tt>i18n.commitencoding</tt> is used instead.</p></div>\r
</li>\r
-</ol>\r
-<p>Note that we deliberately chose not to re-code the commit log\r
+</ol></div>\r
+<div class="para"><p>Note that we deliberately chose not to re-code the commit log\r
message when a commit is made to force UTF-8 at the commit\r
object level, because re-coding to UTF-8 is not necessarily a\r
-reversible operation.</p>\r
+reversible operation.</p></div>\r
</div>\r
-<h2>ENVIRONMENT AND CONFIGURATION VARIABLES</h2>\r
+<h2 id="_environment_and_configuration_variables">ENVIRONMENT AND CONFIGURATION VARIABLES</h2>\r
<div class="sectionbody">\r
-<p>The editor used to edit the commit log message will be chosen from the\r
+<div class="para"><p>The editor used to edit the commit log message will be chosen from the\r
GIT_EDITOR environment variable, the core.editor configuration variable, the\r
VISUAL environment variable, or the EDITOR environment variable (in that\r
-order).</p>\r
+order).</p></div>\r
</div>\r
-<h2>HOOKS</h2>\r
+<h2 id="_hooks">HOOKS</h2>\r
<div class="sectionbody">\r
-<p>This command can run <tt>commit-msg</tt>, <tt>prepare-commit-msg</tt>, <tt>pre-commit</tt>,\r
+<div class="para"><p>This command can run <tt>commit-msg</tt>, <tt>prepare-commit-msg</tt>, <tt>pre-commit</tt>,\r
and <tt>post-commit</tt> hooks. See <a href="githooks.html">githooks(5)</a> for more\r
-information.</p>\r
+information.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-add.html">git-add(1)</a>,\r
+<div class="para"><p><a href="git-add.html">git-add(1)</a>,\r
<a href="git-rm.html">git-rm(1)</a>,\r
<a href="git-mv.html">git-mv(1)</a>,\r
<a href="git-merge.html">git-merge(1)</a>,\r
-<a href="git-commit-tree.html">git-commit-tree(1)</a></p>\r
+<a href="git-commit-tree.html">git-commit-tree(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and\r
-Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> and\r
+Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:36 UTC\r
+Last updated 2008-07-06 05:16:39 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Use 'git commit' to store the current contents of the index in a new
-commit along with a log message describing the changes you have made.
+Stores the current contents of the index in a new commit along
+with a log message from the user describing the changes.
The content to be added can be specified in several ways:
-1. by using `git-add` to incrementally "add" changes to the
+1. by using 'git-add' to incrementally "add" changes to the
index before using the 'commit' command (Note: even modified
files must be "added");
-2. by using `git-rm` to remove files from the working tree
+2. by using 'git-rm' to remove files from the working tree
and the index, again before using the 'commit' command;
3. by listing files as arguments to the 'commit' command, in which
5. by using the --interactive switch with the 'commit' command to decide one
by one which files should be part of the commit, before finalizing the
- operation. Currently, this is done by invoking `git-add --interactive`.
+ operation. Currently, this is done by invoking 'git-add --interactive'.
-The `git-status` command can be used to obtain a
+The 'git-status' command can be used to obtain a
summary of what is included by any of the above for the next
commit by giving the same set of parameters you would give to
this command.
If you make a commit and then find a mistake immediately after
-that, you can recover from it with `git-reset`.
+that, you can recover from it with 'git-reset'.
OPTIONS
Make a commit only from the paths specified on the
command line, disregarding any contents that have been
staged so far. This is the default mode of operation of
- 'git commit' if any paths are given on the command line,
+ 'git-commit' if any paths are given on the command line,
in which case this option can be omitted.
If this option is specified together with '--amend', then
no paths need be specified, which can be used to amend
--------
When recording your own work, the contents of modified files in
your working tree are temporarily stored to a staging area
-called the "index" with `git-add`. A file can be
+called the "index" with 'git-add'. A file can be
reverted back, only in the index but not in the working tree,
to that of the last commit with `git reset HEAD -- <file>`,
-which effectively reverts `git-add` and prevents the changes to
+which effectively reverts 'git-add' and prevents the changes to
this file from participating in the next commit. After building
the state to be committed incrementally with these commands,
`git commit` (without any pathname parameter) is used to record what
this second commit would record the changes to `hello.c` and
`hello.h` as expected.
-After a merge (initiated by `git-merge` or `git-pull`) stops
+After a merge (initiated by 'git-merge' or 'git-pull') stops
because of conflicts, cleanly merged
paths are already staged to be committed for you, and paths that
conflicted are left in unmerged state. You would have to first
-check which paths are conflicting with `git-status`
+check which paths are conflicting with 'git-status'
and after fixing them manually in your working tree, you would
-stage the result as usual with `git-add`:
+stage the result as usual with 'git-add':
------------
$ git status | grep unmerged
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-config(1)</title>\r
</head>\r
<em>git config</em> [<file-option>] --get-color name [default]\r
<em>git config</em> [<file-option>] --get-colorbool name [stdout-is-tty]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>You can query/set/replace/unset options with this command. The name is\r
+<div class="para"><p>You can query/set/replace/unset options with this command. The name is\r
actually the section and the key separated by a dot, and the value will be\r
-escaped.</p>\r
-<p>Multiple lines can be added to an option by using the <em>--add</em> option.\r
+escaped.</p></div>\r
+<div class="para"><p>Multiple lines can be added to an option by using the <em>--add</em> option.\r
If you want to update or unset an option which can occur on multiple\r
lines, a POSIX regexp <tt>value_regex</tt> needs to be given. Only the\r
existing values that match the regexp are updated or unset. If\r
you want to handle the lines that do <strong>not</strong> match the regex, just\r
-prepend a single exclamation mark in front (see also <a href="#EXAMPLES">[EXAMPLES]</a>).</p>\r
-<p>The type specifier can be either <em>--int</em> or <em>--bool</em>, which will make\r
-<tt>git-config</tt> ensure that the variable(s) are of the given type and\r
+prepend a single exclamation mark in front (see also <a href="#EXAMPLES">[EXAMPLES]</a>).</p></div>\r
+<div class="para"><p>The type specifier can be either <em>--int</em> or <em>--bool</em>, which will make\r
+<em>git-config</em> ensure that the variable(s) are of the given type and\r
convert the value to the canonical form (simple decimal number for int,\r
a "true" or "false" string for bool). If no type specifier is passed,\r
-no checks or transformations are performed on the value.</p>\r
-<p>The file-option can be one of <em>--system</em>, <em>--global</em> or <em>--file</em>\r
+no checks or transformations are performed on the value.</p></div>\r
+<div class="para"><p>The file-option can be one of <em>--system</em>, <em>--global</em> or <em>--file</em>\r
which specify where the values will be read from or written to.\r
The default is to assume the config file of the current repository,\r
.git/config unless defined otherwise with GIT_DIR and GIT_CONFIG\r
-(see <a href="#FILES">[FILES]</a>).</p>\r
-<p>This command will fail if:</p>\r
-<ol>\r
+(see <a href="#FILES">[FILES]</a>).</p></div>\r
+<div class="para"><p>This command will fail if:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
The config file is invalid,\r
you use <em>--global</em> option without $HOME being properly set.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--replace-all\r
</dt>\r
For writing options: write to global ~/.gitconfig file rather than\r
the repository .git/config.\r
</p>\r
-<p>For reading options: read only from global ~/.gitconfig rather than\r
-from all available files.</p>\r
-<p>See also <a href="#FILES">[FILES]</a>.</p>\r
+<div class="para"><p>For reading options: read only from global ~/.gitconfig rather than\r
+from all available files.</p></div>\r
+<div class="para"><p>See also <a href="#FILES">[FILES]</a>.</p></div>\r
</dd>\r
<dt>\r
--system\r
For writing options: write to system-wide $(prefix)/etc/gitconfig\r
rather than the repository .git/config.\r
</p>\r
-<p>For reading options: read only from system-wide $(prefix)/etc/gitconfig\r
-rather than from all available files.</p>\r
-<p>See also <a href="#FILES">[FILES]</a>.</p>\r
+<div class="para"><p>For reading options: read only from system-wide $(prefix)/etc/gitconfig\r
+rather than from all available files.</p></div>\r
+<div class="para"><p>See also <a href="#FILES">[FILES]</a>.</p></div>\r
</dd>\r
<dt>\r
-f config-file\r
</dt>\r
<dd>\r
<p>\r
- <tt>git-config</tt> will ensure that the output is "true" or "false"\r
+ <em>git-config</em> will ensure that the output is "true" or "false"\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- <tt>git-config</tt> will ensure that the output is a simple\r
+ <em>git-config</em> will ensure that the output is a simple\r
decimal number. An optional value suffix of <em>k</em>, <em>m</em>, or <em>g</em>\r
in the config file will cause the value to be multiplied\r
by 1024, 1048576, or 1073741824 prior to output.\r
there is no color configured for <tt>name</tt>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2><a id="FILES"></a>FILES</h2>\r
+<h2 id="FILES">FILES</h2>\r
<div class="sectionbody">\r
-<p>If not set explicitly with <em>--file</em>, there are three files where\r
-<tt>git-config</tt> will search for configuration options:</p>\r
-<dl>\r
+<div class="para"><p>If not set explicitly with <em>--file</em>, there are three files where\r
+<em>git-config</em> will search for configuration options:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
$GIT_DIR/config\r
</dt>\r
System-wide configuration file.\r
</p>\r
</dd>\r
-</dl>\r
-<p>If no further options are given, all reading options will read all of these\r
+</dl></div>\r
+<div class="para"><p>If no further options are given, all reading options will read all of these\r
files that are available. If the global or the system-wide configuration\r
file are not available they will be ignored. If the repository configuration\r
-file is not available or readable, <tt>git-config</tt> will exit with a non-zero\r
-error code. However, in neither case will an error message be issued.</p>\r
-<p>All writing options will per default write to the repository specific\r
+file is not available or readable, <em>git-config</em> will exit with a non-zero\r
+error code. However, in neither case will an error message be issued.</p></div>\r
+<div class="para"><p>All writing options will per default write to the repository specific\r
configuration file. Note that this also affects options like <em>--replace-all</em>\r
-and <em>--unset</em>. <strong><tt>git-config</tt> will only ever change one file at a time</strong>.</p>\r
-<p>You can override these rules either by command line options or by environment\r
+and <em>--unset</em>. <strong><em>git-config</em> will only ever change one file at a time</strong>.</p></div>\r
+<div class="para"><p>You can override these rules either by command line options or by environment\r
variables. The <em>--global</em> and the <em>--system</em> options will limit the file used\r
to the global or system-wide file respectively. The GIT_CONFIG environment\r
-variable has a similar effect, but you can specify any filename you want.</p>\r
-<p>The GIT_CONFIG_LOCAL environment variable on the other hand only changes\r
+variable has a similar effect, but you can specify any filename you want.</p></div>\r
+<div class="para"><p>The GIT_CONFIG_LOCAL environment variable on the other hand only changes\r
the name used instead of the repository configuration file. The global and\r
the system-wide configuration files will still be read. (For writing options\r
-this will obviously result in the same behavior as using GIT_CONFIG.)</p>\r
+this will obviously result in the same behavior as using GIT_CONFIG.)</p></div>\r
</div>\r
-<h2>ENVIRONMENT</h2>\r
+<h2 id="_environment">ENVIRONMENT</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
GIT_CONFIG\r
</dt>\r
Still read the global and the system-wide configuration files, though.\r
</p>\r
</dd>\r
-</dl>\r
-<p>See also <a href="#FILES">[FILES]</a>.</p>\r
+</dl></div>\r
+<div class="para"><p>See also <a href="#FILES">[FILES]</a>.</p></div>\r
</div>\r
-<h2><a id="EXAMPLES"></a>EXAMPLES</h2>\r
+<h2 id="EXAMPLES">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<p>Given a .git/config like this:</p>\r
+<div class="para"><p>Given a .git/config like this:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>#\r
gitproxy="proxy-command" for kernel.org\r
gitproxy=default-proxy ; for all the rest</tt></pre>\r
</div></div>\r
-<p>you can set the filemode to true with</p>\r
+<div class="para"><p>you can set the filemode to true with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config core.filemode true</tt></pre>\r
</div></div>\r
-<p>The hypothetical proxy command entries actually have a postfix to discern\r
+<div class="para"><p>The hypothetical proxy command entries actually have a postfix to discern\r
what URL they apply to. Here is how to change the entry for kernel.org\r
-to "ssh".</p>\r
+to "ssh".</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>\r
</div></div>\r
-<p>This makes sure that only the key/value pair for kernel.org is replaced.</p>\r
-<p>To delete the entry for renames, do</p>\r
+<div class="para"><p>This makes sure that only the key/value pair for kernel.org is replaced.</p></div>\r
+<div class="para"><p>To delete the entry for renames, do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config --unset diff.renames</tt></pre>\r
</div></div>\r
-<p>If you want to delete an entry for a multivar (like core.gitproxy above),\r
-you have to provide a regex matching the value of exactly one line.</p>\r
-<p>To query the value for a given key, do</p>\r
+<div class="para"><p>If you want to delete an entry for a multivar (like core.gitproxy above),\r
+you have to provide a regex matching the value of exactly one line.</p></div>\r
+<div class="para"><p>To query the value for a given key, do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config --get core.filemode</tt></pre>\r
</div></div>\r
-<p>or</p>\r
+<div class="para"><p>or</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config core.filemode</tt></pre>\r
</div></div>\r
-<p>or, to query a multivar:</p>\r
+<div class="para"><p>or, to query a multivar:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config --get core.gitproxy "for kernel.org$"</tt></pre>\r
</div></div>\r
-<p>If you want to know all the values for a multivar, do:</p>\r
+<div class="para"><p>If you want to know all the values for a multivar, do:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config --get-all core.gitproxy</tt></pre>\r
</div></div>\r
-<p>If you like to live dangerous, you can replace <strong>all</strong> core.gitproxy by a\r
-new one with</p>\r
+<div class="para"><p>If you like to live dangerous, you can replace <strong>all</strong> core.gitproxy by a\r
+new one with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config --replace-all core.gitproxy ssh</tt></pre>\r
</div></div>\r
-<p>However, if you really only want to replace the line for the default proxy,\r
-i.e. the one without a "for …" postfix, do something like this:</p>\r
+<div class="para"><p>However, if you really only want to replace the line for the default proxy,\r
+i.e. the one without a "for …" postfix, do something like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config core.gitproxy ssh '! for '</tt></pre>\r
</div></div>\r
-<p>To actually match only values with an exclamation mark, you have to</p>\r
+<div class="para"><p>To actually match only values with an exclamation mark, you have to</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config section.key value '[!]'</tt></pre>\r
</div></div>\r
-<p>To add a new proxy, without altering any of the existing ones, use</p>\r
+<div class="para"><p>To add a new proxy, without altering any of the existing ones, use</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git config core.gitproxy '"proxy-command" for example.com'</tt></pre>\r
</div></div>\r
-<p>An example to use customized color from the configuration in your\r
-script:</p>\r
+<div class="para"><p>An example to use customized color from the configuration in your\r
+script:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>#!/bin/sh\r
echo "${WS}your whitespace color or blue reverse${RESET}"</tt></pre>\r
</div></div>\r
</div>\r
-<h2>CONFIGURATION FILE</h2>\r
+<h2 id="_configuration_file">CONFIGURATION FILE</h2>\r
<div class="sectionbody">\r
-<p>The git configuration file contains a number of variables that affect\r
+<div class="para"><p>The git configuration file contains a number of variables that affect\r
the git command's behavior. <tt>.git/config</tt> file for each repository\r
is used to store the information for that repository, and\r
<tt>$HOME/.gitconfig</tt> is used to store per user information to give\r
fallback values for <tt>.git/config</tt> file. The file <tt>/etc/gitconfig</tt>\r
-can be used to store system-wide defaults.</p>\r
-<p>They can be used by both the git plumbing\r
+can be used to store system-wide defaults.</p></div>\r
+<div class="para"><p>They can be used by both the git plumbing\r
and the porcelains. The variables are divided into sections, where\r
in the fully qualified variable name the variable itself is the last\r
dot-separated segment and the section name is everything before the last\r
dot. The variable names are case-insensitive and only alphanumeric\r
-characters are allowed. Some variables may appear multiple times.</p>\r
-<h3>Syntax</h3>\r
-<p>The syntax is fairly flexible and permissive; whitespaces are mostly\r
+characters are allowed. Some variables may appear multiple times.</p></div>\r
+<h3 id="_syntax">Syntax</h3><div style="clear:left"></div>\r
+<div class="para"><p>The syntax is fairly flexible and permissive; whitespaces are mostly\r
ignored. The <em>#</em> and <em>;</em> characters begin comments to the end of line,\r
-blank lines are ignored.</p>\r
-<p>The file consists of sections and variables. A section begins with\r
+blank lines are ignored.</p></div>\r
+<div class="para"><p>The file consists of sections and variables. A section begins with\r
the name of the section in square brackets and continues until the next\r
section begins. Section names are not case sensitive. Only alphanumeric\r
characters, <em><tt>-</tt></em> and <em><tt>.</tt></em> are allowed in section names. Each variable\r
must belong to some section, which means that there must be section\r
-header before first setting of a variable.</p>\r
-<p>Sections can be further divided into subsections. To begin a subsection\r
+header before first setting of a variable.</p></div>\r
+<div class="para"><p>Sections can be further divided into subsections. To begin a subsection\r
put its name in double quotes, separated by space from the section name,\r
-in the section header, like in example below:</p>\r
+in the section header, like in example below:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [section "subsection"]\r
</tt></pre>\r
</div></div>\r
-<p>Subsection names can contain any characters except newline (doublequote\r
+<div class="para"><p>Subsection names can contain any characters except newline (doublequote\r
<em><tt>"</tt></em> and backslash have to be escaped as <em><tt>\"</tt></em> and <em><tt>\\</tt></em>,\r
respectively) and are case sensitive. Section header cannot span multiple\r
lines. Variables may belong directly to a section or to a given subsection.\r
You can have <tt>[section]</tt> if you have <tt>[section "subsection"]</tt>, but you\r
-don't need to.</p>\r
-<p>There is also (case insensitive) alternative <tt>[section.subsection]</tt> syntax.\r
+don't need to.</p></div>\r
+<div class="para"><p>There is also (case insensitive) alternative <tt>[section.subsection]</tt> syntax.\r
In this syntax subsection names follow the same restrictions as for section\r
-name.</p>\r
-<p>All the other lines are recognized as setting variables, in the form\r
+name.</p></div>\r
+<div class="para"><p>All the other lines are recognized as setting variables, in the form\r
<em>name = value</em>. If there is no equal sign on the line, the entire line\r
is taken as <em>name</em> and the variable is recognized as boolean "true".\r
The variable names are case-insensitive and only alphanumeric\r
characters and <em><tt>-</tt></em> are allowed. There can be more than one value\r
-for a given variable; we say then that variable is multivalued.</p>\r
-<p>Leading and trailing whitespace in a variable value is discarded.\r
-Internal whitespace within a variable value is retained verbatim.</p>\r
-<p>The values following the equals sign in variable assign are all either\r
+for a given variable; we say then that variable is multivalued.</p></div>\r
+<div class="para"><p>Leading and trailing whitespace in a variable value is discarded.\r
+Internal whitespace within a variable value is retained verbatim.</p></div>\r
+<div class="para"><p>The values following the equals sign in variable assign are all either\r
a string, an integer, or a boolean. Boolean values may be given as yes/no,\r
0/1 or true/false. Case is not significant in boolean values, when\r
converting value to the canonical form using <em>--bool</em> type specifier;\r
-<tt>git-config</tt> will ensure that the output is "true" or "false".</p>\r
-<p>String values may be entirely or partially enclosed in double quotes.\r
+<em>git-config</em> will ensure that the output is "true" or "false".</p></div>\r
+<div class="para"><p>String values may be entirely or partially enclosed in double quotes.\r
You need to enclose variable value in double quotes if you want to\r
preserve leading or trailing whitespace, or if variable value contains\r
beginning of comment characters (if it contains <em>#</em> or <em>;</em>).\r
Double quote <em><tt>"</tt></em> and backslash <em><tt>\</tt></em> characters in variable value must\r
-be escaped: use <em><tt>\"</tt></em> for <em><tt>"</tt></em> and <em><tt>\\</tt></em> for <em><tt>\</tt></em>.</p>\r
-<p>The following escape sequences (beside <em><tt>\"</tt></em> and <em><tt>\\</tt></em>) are recognized:\r
+be escaped: use <em><tt>\"</tt></em> for <em><tt>"</tt></em> and <em><tt>\\</tt></em> for <em><tt>\</tt></em>.</p></div>\r
+<div class="para"><p>The following escape sequences (beside <em><tt>\"</tt></em> and <em><tt>\\</tt></em>) are recognized:\r
<em><tt>\n</tt></em> for newline character (NL), <em><tt>\t</tt></em> for horizontal tabulation (HT, TAB)\r
and <em><tt>\b</tt></em> for backspace (BS). No other char escape sequence, nor octal\r
-char sequences are valid.</p>\r
-<p>Variable value ending in a <em><tt>\</tt></em> is continued on the next line in the\r
-customary UNIX fashion.</p>\r
-<p>Some variables may require special value format.</p>\r
-<h3>Example</h3>\r
+char sequences are valid.</p></div>\r
+<div class="para"><p>Variable value ending in a <em><tt>\</tt></em> is continued on the next line in the\r
+customary UNIX fashion.</p></div>\r
+<div class="para"><p>Some variables may require special value format.</p></div>\r
+<h3 id="_example">Example</h3><div style="clear:left"></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt># Core variables\r
gitProxy="ssh" for "kernel.org"\r
gitProxy=default-proxy ; for the rest</tt></pre>\r
</div></div>\r
-<h3>Variables</h3>\r
-<p>Note that this list is non-comprehensive and not necessarily complete.\r
+<h3 id="_variables">Variables</h3><div style="clear:left"></div>\r
+<div class="para"><p>Note that this list is non-comprehensive and not necessarily complete.\r
For command-specific variables, you will find a more detailed description\r
in the appropriate manual page. You will find a description of non-core\r
-porcelain configuration variables in the respective porcelain documentation.</p>\r
-<dl>\r
+porcelain configuration variables in the respective porcelain documentation.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
core.fileMode\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- The commands that output paths (e.g. <tt>ls-files</tt>,\r
- <tt>diff</tt>), when not given the <tt>-z</tt> option, will quote\r
+ The commands that output paths (e.g. <em>ls-files</em>,\r
+ <em>diff</em>), when not given the <tt>-z</tt> option, will quote\r
"unusual" characters in the pathname by enclosing the\r
pathname in a double-quote pair and with backslashes the\r
same way strings in C source code are quoted. If this\r
be set to "warn", in which case git will only warn about an\r
irreversible conversion but continue the operation.\r
</p>\r
-<p>CRLF conversion bears a slight chance of corrupting data.\r
+<div class="para"><p>CRLF conversion bears a slight chance of corrupting data.\r
autocrlf=true will convert CRLF to LF during commit and LF to\r
CRLF during checkout. A file that contains a mixture of LF and\r
CRLF before the commit cannot be recreated by git. For text\r
files this is the right thing to do: it corrects line endings\r
such that we have only LF line endings in the repository.\r
But for binary files that are accidentally classified as text the\r
-conversion can corrupt data.</p>\r
-<p>If you recognize such corruption early you can easily fix it by\r
+conversion can corrupt data.</p></div>\r
+<div class="para"><p>If you recognize such corruption early you can easily fix it by\r
setting the conversion type explicitly in .gitattributes. Right\r
after committing you still have the original file in your work\r
tree and this file is not yet corrupted. You can explicitly tell\r
git that this file is binary and git will handle the file\r
-appropriately.</p>\r
-<p>Unfortunately, the desired effect of cleaning up text files with\r
+appropriately.</p></div>\r
+<div class="para"><p>Unfortunately, the desired effect of cleaning up text files with\r
mixed line endings and the undesired effect of corrupting binary\r
files cannot be distinguished. In both cases CRLFs are removed\r
in an irreversible way. For text files this is the right thing\r
to do because CRLFs are line endings, while for binary files\r
-converting CRLFs corrupts data.</p>\r
-<p>Note, this safety check does not mean that a checkout will generate a\r
+converting CRLFs corrupts data.</p></div>\r
+<div class="para"><p>Note, this safety check does not mean that a checkout will generate a\r
file identical to the original file for a different setting of\r
<tt>core.autocrlf</tt>, but only for the current one. For example, a text\r
file with <tt>LF</tt> would be accepted with <tt>core.autocrlf=input</tt> and could\r
contained <tt>LF</tt>. However, in both work trees the line endings would be\r
consistent, that is either all <tt>LF</tt> or all <tt>CRLF</tt>, but never mixed. A\r
file with mixed line endings would be reported by the <tt>core.safecrlf</tt>\r
-mechanism.</p>\r
+mechanism.</p></div>\r
</dd>\r
<dt>\r
core.symlinks\r
may be set multiple times and is matched in the given order;\r
the first match wins.\r
</p>\r
-<p>Can be overridden by the <em>GIT_PROXY_COMMAND</em> environment variable\r
+<div class="para"><p>Can be overridden by the <em>GIT_PROXY_COMMAND</em> environment variable\r
(which always applies universally, without the special "for"\r
-handling).</p>\r
+handling).</p></div>\r
</dd>\r
<dt>\r
core.ignoreStat\r
number of commands that require a working directory will be\r
disabled, such as <a href="git-add.html">git-add(1)</a> or <a href="git-merge.html">git-merge(1)</a>.\r
</p>\r
-<p>This setting is automatically guessed by <a href="git-clone.html">git-clone(1)</a> or\r
+<div class="para"><p>This setting is automatically guessed by <a href="git-clone.html">git-clone(1)</a> or\r
<a href="git-init.html">git-init(1)</a> when the repository was created. By default a\r
repository that ends in "/.git" is assumed to be not bare (bare =\r
false), while all other repositories are assumed to be bare (bare\r
-= true).</p>\r
+= true).</p></div>\r
</dd>\r
<dt>\r
core.worktree\r
variable is set to true, missing "$GIT_DIR/logs/<ref>"\r
file is automatically created for branch heads.\r
</p>\r
-<p>This information can be used to determine what commit\r
-was the tip of a branch "2 days ago".</p>\r
-<p>This value is true by default in a repository that has\r
+<div class="para"><p>This information can be used to determine what commit\r
+was the tip of a branch "2 days ago".</p></div>\r
+<div class="para"><p>This value is true by default in a repository that has\r
a working directory associated with it, and false by\r
-default in a bare repository.</p>\r
+default in a bare repository.</p></div>\r
</dd>\r
<dt>\r
core.repositoryFormatVersion\r
memory manager, but may improve performance when accessing\r
a large number of large pack files.\r
</p>\r
-<p>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32\r
+<div class="para"><p>Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32\r
MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should\r
be reasonable for all users/operating systems. You probably do\r
-not need to adjust this value.</p>\r
-<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>\r
+not need to adjust this value.</p></div>\r
+<div class="para"><p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p></div>\r
</dd>\r
<dt>\r
core.packedGitLimit\r
bytes at once to complete an operation it will unmap existing\r
regions to reclaim virtual address space within the process.\r
</p>\r
-<p>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.\r
+<div class="para"><p>Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.\r
This should be reasonable for all users/operating systems, except on\r
-the largest projects. You probably do not need to adjust this value.</p>\r
-<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>\r
+the largest projects. You probably do not need to adjust this value.</p></div>\r
+<div class="para"><p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p></div>\r
</dd>\r
<dt>\r
core.deltaBaseCacheLimit\r
to avoid unpacking and decompressing frequently used base\r
objects multiple times.\r
</p>\r
-<p>Default is 16 MiB on all platforms. This should be reasonable\r
+<div class="para"><p>Default is 16 MiB on all platforms. This should be reasonable\r
for all users/operating systems, except on the largest projects.\r
-You probably do not need to adjust this value.</p>\r
-<p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p>\r
+You probably do not need to adjust this value.</p></div>\r
+<div class="para"><p>Common unit suffixes of <em>k</em>, <em>m</em>, or <em>g</em> are supported.</p></div>\r
</dd>\r
<dt>\r
core.excludesfile\r
<dd>\r
<p>\r
A comma separated list of common whitespace problems to\r
- notice. <tt>git diff</tt> will use <tt>color.diff.whitespace</tt> to\r
- highlight them, and <tt>git apply --whitespace=error</tt> will\r
+ notice. <em>git-diff</em> will use <tt>color.diff.whitespace</tt> to\r
+ highlight them, and <em>git-apply --whitespace=error</em> will\r
consider them as errors:\r
</p>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<tt>trailing-space</tt> treats trailing whitespaces at the end of the line\r
is not a whitespace (not enabled by default).\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
<dt>\r
core.fsyncobjectfiles\r
<p>\r
This boolean will enable <em>fsync()</em> when writing object files.\r
</p>\r
-<p>This is a total waste of time and effort on a filesystem that orders\r
+<div class="para"><p>This is a total waste of time and effort on a filesystem that orders\r
data writes properly, but can be useful for filesystems that do not use\r
journalling (traditional UNIX filesystems) or that only journal metadata\r
-and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").</p>\r
+and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").</p></div>\r
</dd>\r
<dt>\r
alias.*\r
spaces, the usual shell quoting and escaping is supported.\r
quote pair and a backslash can be used to quote them.\r
</p>\r
-<p>If the alias expansion is prefixed with an exclamation point,\r
+<div class="para"><p>If the alias expansion is prefixed with an exclamation point,\r
it will be treated as a shell command. For example, defining\r
"alias.new = !gitk --all --not ORIG_HEAD", the invocation\r
"git new" is equivalent to running the shell command\r
-"gitk --all --not ORIG_HEAD".</p>\r
+"gitk --all --not ORIG_HEAD".</p></div>\r
</dd>\r
<dt>\r
apply.whitespace\r
</dt>\r
<dd>\r
<p>\r
- Tells <tt>git-apply</tt> how to handle whitespaces, in the same way\r
+ Tells <em>git-apply</em> how to handle whitespaces, in the same way\r
as the <em>--whitespace</em> option. See <a href="git-apply.html">git-apply(1)</a>.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Tells <tt>git-branch</tt> and <tt>git-checkout</tt> to setup new branches\r
+ Tells <em>git-branch</em> and <em>git-checkout</em> to setup new branches\r
so that <a href="git-pull.html">git-pull(1)</a> will appropriately merge from the\r
starting point branch. Note that even if this option is not set,\r
this behavior can be chosen per-branch using the <tt>--track</tt>\r
</dt>\r
<dd>\r
<p>\r
- When a new branch is created with <tt>git-branch</tt> or <tt>git-checkout</tt>\r
+ When a new branch is created with <em>git-branch</em> or <em>git-checkout</em>\r
that tracks another branch, this variable tells git to set\r
up pull to rebase instead of merge (see "branch.<name>.rebase").\r
When <tt>never</tt>, rebase is never automatically set to true.\r
</dt>\r
<dd>\r
<p>\r
- When in branch <name>, it tells <tt>git fetch</tt> which remote to fetch.\r
- If this option is not given, <tt>git fetch</tt> defaults to remote "origin".\r
+ When in branch <name>, it tells <em>git-fetch</em> which remote to fetch.\r
+ If this option is not given, <em>git-fetch</em> defaults to remote "origin".\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- When in branch <name>, it tells <tt>git fetch</tt> the default\r
+ When in branch <name>, it tells <em>git-fetch</em> the default\r
refspec to be marked for merging in FETCH_HEAD. The value is\r
handled like the remote part of a refspec, and must match a\r
ref which is fetched from the remote given by\r
"branch.<name>.remote".\r
- The merge information is used by <tt>git pull</tt> (which at first calls\r
- <tt>git fetch</tt>) to lookup the default branch for merging. Without\r
- this option, <tt>git pull</tt> defaults to merge the first refspec fetched.\r
+ The merge information is used by <em>git-pull</em> (which at first calls\r
+ <em>git-fetch</em>) to lookup the default branch for merging. Without\r
+ this option, <em>git-pull</em> defaults to merge the first refspec fetched.\r
Specify multiple values to get an octopus merge.\r
- If you wish to setup <tt>git pull</tt> so that it merges into <name> from\r
+ If you wish to setup <em>git-pull</em> so that it merges into <name> from\r
another branch in the local repository, you can point\r
branch.<name>.merge to the desired branch, and use the special setting\r
<tt>.</tt> (a period) for branch.<name>.remote.\r
<tt>remote</tt> (a tracking branch in refs/remotes/), <tt>plain</tt> (other\r
refs).\r
</p>\r
-<p>The value for these configuration variables is a list of colors (at most\r
+<div class="para"><p>The value for these configuration variables is a list of colors (at most\r
two) and attributes (at most one), separated by spaces. The colors\r
accepted are <tt>normal</tt>, <tt>black</tt>, <tt>red</tt>, <tt>green</tt>, <tt>yellow</tt>, <tt>blue</tt>,\r
<tt>magenta</tt>, <tt>cyan</tt> and <tt>white</tt>; the attributes are <tt>bold</tt>, <tt>dim</tt>, <tt>ul</tt>,\r
<tt>blink</tt> and <tt>reverse</tt>. The first color given is the foreground; the\r
second is the background. The position of the attribute, if any,\r
-doesn't matter.</p>\r
+doesn't matter.</p></div>\r
</dd>\r
<dt>\r
color.diff\r
<dd>\r
<p>\r
When set to <tt>always</tt>, always use colors for interactive prompts\r
- and displays (such as those used by "git add --interactive").\r
+ and displays (such as those used by "git-add --interactive").\r
When false (or <tt>never</tt>), never. When set to <tt>true</tt> or <tt>auto</tt>, use\r
colors only when the output is to the terminal. Defaults to false.\r
</p>\r
</dt>\r
<dd>\r
<p>\r
- Use customized color for <tt>git add --interactive</tt>\r
+ Use customized color for <em>git-add --interactive</em>\r
output. <tt><slot></tt> may be <tt>prompt</tt>, <tt>header</tt>, or <tt>help</tt>, for\r
three distinct types of normal output from interactive\r
programs. The values of these variables may be specified as\r
</dt>\r
<dd>\r
<p>\r
- When using <tt>git diff</tt> to compare with work tree\r
+ When using <em>git-diff</em> to compare with work tree\r
files, do not consider stat-only change as changed.\r
Instead, silently run <tt>git update-index --refresh</tt> to\r
update the cached stat information for paths whose\r
contents in the work tree match the contents in the\r
index. This option defaults to true. Note that this\r
- affects only <tt>git diff</tt> Porcelain, and not lower level\r
- <tt>diff</tt> commands, such as <tt>git diff-files</tt>.\r
+ affects only <em>git-diff</em> Porcelain, and not lower level\r
+ <em>diff</em> commands, such as <em>git-diff-files</em>.\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
The number of files to consider when performing the copy/rename\r
- detection; equivalent to the git diff option <em>-l</em>.\r
+ detection; equivalent to the <em>git-diff</em> option <em>-l</em>.\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
The window size parameter used in the delta compression\r
- algorithm used by <em>git gc --aggressive</em>. This defaults\r
+ algorithm used by <em>git-gc --aggressive</em>. This defaults\r
to 10.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- <tt>git gc</tt> does not run <tt>git pack-refs</tt> in a bare repository by\r
+ <em>git-gc</em> does not run <tt>git pack-refs</tt> in a bare repository by\r
default so that older dumb-transport clients can still fetch\r
- from the repository. Setting this to <tt>true</tt> lets <tt>git\r
- gc</tt> to run <tt>git pack-refs</tt>. Setting this to <tt>false</tt> tells\r
- <tt>git gc</tt> never to run <tt>git pack-refs</tt>. The default setting is\r
+ from the repository. Setting this to <tt>true</tt> lets <em>git-gc</em>\r
+ to run <tt>git pack-refs</tt>. Setting this to <tt>false</tt> tells\r
+ <em>git-gc</em> never to run <tt>git pack-refs</tt>. The default setting is\r
<tt>notbare</tt>. Enable it only when you know you do not have to\r
support such clients. The default setting will change to <tt>true</tt>\r
at some stage, and setting this to <tt>false</tt> will continue to\r
- prevent <tt>git pack-refs</tt> from being run from <tt>git gc</tt>.\r
+ prevent <tt>git pack-refs</tt> from being run from <em>git-gc</em>.\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- When <tt>git gc</tt> is run, it will call <tt>prune --expire 2.weeks.ago</tt>.\r
+ When <em>git-gc</em> is run, it will call <em>prune --expire 2.weeks.ago</em>.\r
Override the grace period with this config variable.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- <tt>git reflog expire</tt> removes reflog entries older than\r
+ <em>git-reflog expire</em> removes reflog entries older than\r
this time; defaults to 90 days.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- <tt>git reflog expire</tt> removes reflog entries older than\r
+ <em>git-reflog expire</em> removes reflog entries older than\r
this time and are not reachable from the current tip;\r
defaults to 30 days.\r
</p>\r
<dd>\r
<p>\r
Records of conflicted merge you resolved earlier are\r
- kept for this many days when <tt>git rerere gc</tt> is run.\r
+ kept for this many days when <em>git-rerere gc</em> is run.\r
The default is 60 days. See <a href="git-rerere.html">git-rerere(1)</a>.\r
</p>\r
</dd>\r
<dd>\r
<p>\r
Records of conflicted merge you have not resolved are\r
- kept for this many days when <tt>git rerere gc</tt> is run.\r
+ kept for this many days when <em>git-rerere gc</em> is run.\r
The default is 15 days. See <a href="git-rerere.html">git-rerere(1)</a>.\r
</p>\r
</dd>\r
various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.\r
</p>\r
</dd>\r
-</dl>\r
-<p>gitcvs.usecrlfattr\r
+</dl></div>\r
+<div class="para"><p>gitcvs.usecrlfattr\r
If true, the server will look up the <tt>crlf</tt> attribute for\r
files to determine the <em>-k</em> modes to use. If <tt>crlf</tt> is set,\r
the <em>-k</em> mode will be left blank, so cvs clients will\r
treat it as text. If <tt>crlf</tt> is explicitly unset, the file\r
will be set with <em>-kb</em> mode, which supresses any newline munging\r
the client might otherwise do. If <tt>crlf</tt> is not specified,\r
- then <em>gitcvs.allbinary</em> is used. See <a href="gitattribute.html">gitattribute(5)</a>.</p>\r
-<dl>\r
+ then <em>gitcvs.allbinary</em> is used. See <a href="gitattribute.html">gitattribute(5)</a>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
gitcvs.allbinary\r
</dt>\r
characters will be replaced with underscores.\r
</p>\r
</dd>\r
-</dl>\r
-<p>All gitcvs variables except for <em>gitcvs.usecrlfattr</em> and\r
+</dl></div>\r
+<div class="para"><p>All gitcvs variables except for <em>gitcvs.usecrlfattr</em> and\r
<em>gitcvs.allbinary</em> can also be specified as\r
<em>gitcvs.<access_method>.<varname></em> (where <em>access_method</em>\r
is one of "ext" and "pserver") to make them apply only for the given\r
-access method.</p>\r
-<dl>\r
+access method.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
gui.commitmsgwidth\r
</dt>\r
<dd>\r
<p>\r
Character encoding the commit messages are converted to when\r
- running <tt>git-log</tt> and friends.\r
+ running <em>git-log</em> and friends.\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
Set default date-time mode for the log command. Setting log.date\r
- value is similar to using git log's --date option. The value is one of\r
+ value is similar to using <em>git-log</em>'s --date option. The value is one of the\r
following alternatives: {relative,local,default,iso,rfc,short}.\r
See <a href="git-log.html">git-log(1)</a>.\r
</p>\r
and this config option ignored whenever the corresponding pack is\r
larger than 2 GB.\r
</p>\r
-<p>If you have an old git that does not understand the version 2 <tt>*.idx</tt> file,\r
+<div class="para"><p>If you have an old git that does not understand the version 2 <tt>*.idx</tt> file,\r
cloning or fetching over a non native protocol (e.g. "http" and "rsync")\r
that will copy both <tt>*.pack</tt> file and corresponding <tt>*.idx</tt> file from the\r
other side may give you a repository that cannot be accessed with your\r
older version of git. If the <tt>*.pack</tt> file is smaller than 2 GB, however,\r
you can use <a href="git-index-pack.html">git-index-pack(1)</a> on the *.pack file to regenerate\r
-the <tt>*.idx</tt> file.</p>\r
+the <tt>*.idx</tt> file.</p></div>\r
</dd>\r
<dt>\r
pack.packSizeLimit\r
systems. So, this variable controls how the commands displays\r
the untracked files. Possible values are:\r
</p>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>no</em> - Show no untracked files\r
<em>all</em> - Shows also individual files in untracked directories.\r
</p>\r
</li>\r
-</ul>\r
-<p>If this variable is not specified, it defaults to <em>normal</em>.\r
+</ul></div>\r
+<div class="para"><p>If this variable is not specified, it defaults to <em>normal</em>.\r
This variable can be overridden with the -u|--untracked-files option\r
-of <a href="git-status.html">git-status(1)</a> and <a href="git-commit.html">git-commit(1)</a>.</p>\r
+of <a href="git-status.html">git-status(1)</a> and <a href="git-commit.html">git-commit(1)</a>.</p></div>\r
</dd>\r
<dt>\r
tar.umask\r
may use it.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Johannes Schindelin <Johannes.Schindelin@gmx.de></p>\r
+<div class="para"><p>Written by Johannes Schindelin <Johannes.Schindelin@gmx.de></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:37 UTC\r
+Last updated 2008-07-06 05:16:39 UTC\r
</div>\r
</div>\r
</body>\r
prepend a single exclamation mark in front (see also <<EXAMPLES>>).
The type specifier can be either '--int' or '--bool', which will make
-`git-config` ensure that the variable(s) are of the given type and
+'git-config' ensure that the variable(s) are of the given type and
convert the value to the canonical form (simple decimal number for int,
a "true" or "false" string for bool). If no type specifier is passed,
no checks or transformations are performed on the value.
List all variables set in config file.
--bool::
- `git-config` will ensure that the output is "true" or "false"
+ 'git-config' will ensure that the output is "true" or "false"
--int::
- `git-config` will ensure that the output is a simple
+ 'git-config' will ensure that the output is a simple
decimal number. An optional value suffix of 'k', 'm', or 'g'
in the config file will cause the value to be multiplied
by 1024, 1048576, or 1073741824 prior to output.
-----
If not set explicitly with '--file', there are three files where
-`git-config` will search for configuration options:
+'git-config' will search for configuration options:
$GIT_DIR/config::
Repository specific configuration file. (The filename is
If no further options are given, all reading options will read all of these
files that are available. If the global or the system-wide configuration
file are not available they will be ignored. If the repository configuration
-file is not available or readable, `git-config` will exit with a non-zero
+file is not available or readable, 'git-config' will exit with a non-zero
error code. However, in neither case will an error message be issued.
All writing options will per default write to the repository specific
configuration file. Note that this also affects options like '--replace-all'
-and '--unset'. *`git-config` will only ever change one file at a time*.
+and '--unset'. *'git-config' will only ever change one file at a time*.
You can override these rules either by command line options or by environment
variables. The '--global' and the '--system' options will limit the file used
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-cvsexportcommit(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git cvsexportcommit</em> [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d cvsroot]\r
- [-w cvsworkdir] [-W] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID</p>\r
+<div class="para"><p><em>git cvsexportcommit</em> [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d cvsroot]\r
+ [-w cvsworkdir] [-W] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Exports a commit from GIT to a CVS checkout, making it easier\r
-to merge patches from a git repository into a CVS repository.</p>\r
-<p>Specify the name of a CVS checkout using the -w switch or execute it\r
+<div class="para"><p>Exports a commit from GIT to a CVS checkout, making it easier\r
+to merge patches from a git repository into a CVS repository.</p></div>\r
+<div class="para"><p>Specify the name of a CVS checkout using the -w switch or execute it\r
from the root of the CVS working copy. In the latter case GIT_DIR must\r
-be defined. See examples below.</p>\r
-<p>It does its best to do the safe thing, it will check that the files are\r
+be defined. See examples below.</p></div>\r
+<div class="para"><p>It does its best to do the safe thing, it will check that the files are\r
unchanged and up to date in the CVS checkout, and it will not autocommit\r
-by default.</p>\r
-<p>Supports file additions, removals, and commits that affect binary files.</p>\r
-<p>If the commit is a merge commit, you must tell <tt>git-cvsexportcommit</tt> what\r
-parent the changeset should be done against.</p>\r
+by default.</p></div>\r
+<div class="para"><p>Supports file additions, removals, and commits that affect binary files.</p></div>\r
+<div class="para"><p>If the commit is a merge commit, you must tell <em>git-cvsexportcommit</em> what\r
+parent the changeset should be done against.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-c\r
</dt>\r
Verbose.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
cvsexportcommit.cvsdir\r
</dt>\r
The default location of the CVS checkout to use for the export.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
Merge one patch into CVS\r
</dt>\r
$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v</tt></pre>\r
</div></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Martin Langhoff <martin@catalyst.net.nz> and others.</p>\r
+<div class="para"><p>Written by Martin Langhoff <martin@catalyst.net.nz> and others.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Martin Langhoff <martin@catalyst.net.nz> and others.</p>\r
+<div class="para"><p>Documentation by Martin Langhoff <martin@catalyst.net.nz> and others.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:38 UTC\r
+Last updated 2008-07-06 05:16:40 UTC\r
</div>\r
</div>\r
</body>\r
Supports file additions, removals, and commits that affect binary files.
-If the commit is a merge commit, you must tell `git-cvsexportcommit` what
+If the commit is a merge commit, you must tell 'git-cvsexportcommit' what
parent the changeset should be done against.
OPTIONS
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-cvsimport(1)</title>\r
</head>\r
[-a] [-m] [-M <regex>] [-S <regex>] [-L <commitlimit>]\r
[-r <remote>] [<CVS_module>]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Imports a CVS repository into git. It will either create a new\r
-repository, or incrementally import into an existing one.</p>\r
-<p>Splitting the CVS log into patch sets is done by <em>cvsps</em>.\r
-At least version 2.1 is required.</p>\r
-<p>You should <strong>never</strong> do any work of your own on the branches that are\r
-created by <tt>git-cvsimport</tt>. By default initial import will create and populate a\r
+<div class="para"><p>Imports a CVS repository into git. It will either create a new\r
+repository, or incrementally import into an existing one.</p></div>\r
+<div class="para"><p>Splitting the CVS log into patch sets is done by <em>cvsps</em>.\r
+At least version 2.1 is required.</p></div>\r
+<div class="para"><p>You should <strong>never</strong> do any work of your own on the branches that are\r
+created by <em>git-cvsimport</em>. By default initial import will create and populate a\r
"master" branch from the CVS repository's main branch which you're free\r
-to work with; after that, you need to <tt>git-merge</tt> incremental imports, or\r
+to work with; after that, you need to <em>git-merge</em> incremental imports, or\r
any CVS branches, yourself. It is advisable to specify a named remote via\r
--r to separate and protect the incoming branches.</p>\r
+-r to separate and protect the incoming branches.</p></div>\r
+<div class="para"><p>If you intend to set up a shared public repository that all developers can\r
+read/write, or if you want to use <a href="git-cvsserver.html">git-cvsserver(1)</a>, then you\r
+probably want to make a bare clone of the imported repository,\r
+and use the clone as the shared repository.\r
+See <a href="gitcvs-migration.html">gitcvs-migration(7)</a>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-v\r
</dt>\r
<p>\r
The root of the CVS archive. May be local (a simple path) or remote;\r
currently, only the :local:, :ext: and :pserver: access methods\r
- are supported. If not given, <tt>git-cvsimport</tt> will try to read it\r
+ are supported. If not given, <em>git-cvsimport</em> will try to read it\r
from <tt>CVS/Root</tt>. If no such file exists, it checks for the\r
<tt>CVSROOT</tt> environment variable.\r
</p>\r
<dd>\r
<p>\r
The CVS module you want to import. Relative to <CVSROOT>.\r
- If not given, <tt>git-cvsimport</tt> tries to read it from\r
+ If not given, <em>git-cvsimport</em> tries to read it from\r
<tt>CVS/Repository</tt>.\r
</p>\r
</dd>\r
<p>\r
The git remote to import this CVS repository into.\r
Moves all CVS branches into remotes/<remote>/<branch>\r
- akin to the <tt>git-clone</tt> "--use-separate-remote" option.\r
+ akin to the <em>git-clone</em> "--use-separate-remote" option.\r
</p>\r
</dd>\r
<dt>\r
from CVS is imported to the <em>origin</em> branch within the git\r
repository, as <em>HEAD</em> already has a special meaning for git.\r
When a remote is specified the <em>HEAD</em> branch is named\r
- remotes/<remote>/master mirroring <tt>git-clone</tt> behaviour.\r
+ remotes/<remote>/master mirroring <em>git-clone</em> behaviour.\r
Use this option if you want to import into a different\r
branch.\r
</p>\r
-<p>Use <em>-o master</em> for continuing an import that was initially done by\r
-the old cvs2git tool.</p>\r
+<div class="para"><p>Use <em>-o master</em> for continuing an import that was initially done by\r
+the old cvs2git tool.</p></div>\r
</dd>\r
<dt>\r
-i\r
Additional options for cvsps.\r
The options <em>-u</em> and <em>-A</em> are implicit and should not be used here.\r
</p>\r
-<p>If you need to pass multiple options, separate them with a comma.</p>\r
+<div class="para"><p>If you need to pass multiple options, separate them with a comma.</p></div>\r
</dd>\r
<dt>\r
-z <fuzz>\r
regex. It can be used with <em>-m</em> to enable the default regexes\r
as well. You must escape forward slashes.\r
</p>\r
-<p>The regex must capture the source branch name in $1.</p>\r
-<p>This option can be used several times to provide several detection regexes.</p>\r
+<div class="para"><p>The regex must capture the source branch name in $1.</p></div>\r
+<div class="para"><p>This option can be used several times to provide several detection regexes.</p></div>\r
</dd>\r
<dt>\r
-S <regex>\r
spawn=Simon Pawn <spawn@frog-pond.org>\r
</tt></pre>\r
</div></div>\r
-<p><tt>git-cvsimport</tt> will make it appear as those authors had\r
+<div class="para"><p><em>git-cvsimport</em> will make it appear as those authors had\r
their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly\r
-all along.</p>\r
-<p>For convenience, this data is saved to <tt>$GIT_DIR/cvs-authors</tt>\r
+all along.</p></div>\r
+<div class="para"><p>For convenience, this data is saved to <tt>$GIT_DIR/cvs-authors</tt>\r
each time the <em>-A</em> option is provided and read from that same\r
-file each time <tt>git-cvsimport</tt> is run.</p>\r
-<p>It is not recommended to use this feature if you intend to\r
+file each time <em>git-cvsimport</em> is run.</p></div>\r
+<div class="para"><p>It is not recommended to use this feature if you intend to\r
export changes back to CVS again later with\r
-<tt>git-cvsexportcommit</tt>.</p>\r
+<em>git-cvsexportcommit</em>.</p></div>\r
</dd>\r
<dt>\r
-h\r
Print a short usage message and exit.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>OUTPUT</h2>\r
+<h2 id="_output">OUTPUT</h2>\r
<div class="sectionbody">\r
-<p>If <em>-v</em> is specified, the script reports what it is doing.</p>\r
-<p>Otherwise, success is indicated the Unix way, i.e. by simply exiting with\r
-a zero exit status.</p>\r
+<div class="para"><p>If <em>-v</em> is specified, the script reports what it is doing.</p></div>\r
+<div class="para"><p>Otherwise, success is indicated the Unix way, i.e. by simply exiting with\r
+a zero exit status.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Matthias Urlichs <smurf@smurf.noris.de>, with help from\r
-various participants of the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Written by Matthias Urlichs <smurf@smurf.noris.de>, with help from\r
+various participants of the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Matthias Urlichs <smurf@smurf.noris.de>.</p>\r
+<div class="para"><p>Documentation by Matthias Urlichs <smurf@smurf.noris.de>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:38 UTC\r
+Last updated 2008-07-06 05:16:40 UTC\r
</div>\r
</div>\r
</body>\r
At least version 2.1 is required.
You should *never* do any work of your own on the branches that are
-created by `git-cvsimport`. By default initial import will create and populate a
+created by 'git-cvsimport'. By default initial import will create and populate a
"master" branch from the CVS repository's main branch which you're free
-to work with; after that, you need to `git-merge` incremental imports, or
+to work with; after that, you need to 'git-merge' incremental imports, or
any CVS branches, yourself. It is advisable to specify a named remote via
-r to separate and protect the incoming branches.
+If you intend to set up a shared public repository that all developers can
+read/write, or if you want to use linkgit:git-cvsserver[1], then you
+probably want to make a bare clone of the imported repository,
+and use the clone as the shared repository.
+See linkgit:gitcvs-migration[7].
+
OPTIONS
-------
-d <CVSROOT>::
The root of the CVS archive. May be local (a simple path) or remote;
currently, only the :local:, :ext: and :pserver: access methods
- are supported. If not given, `git-cvsimport` will try to read it
+ are supported. If not given, 'git-cvsimport' will try to read it
from `CVS/Root`. If no such file exists, it checks for the
`CVSROOT` environment variable.
<CVS_module>::
The CVS module you want to import. Relative to <CVSROOT>.
- If not given, `git-cvsimport` tries to read it from
+ If not given, 'git-cvsimport' tries to read it from
`CVS/Repository`.
-C <target-dir>::
-r <remote>::
The git remote to import this CVS repository into.
Moves all CVS branches into remotes/<remote>/<branch>
- akin to the `git-clone` "--use-separate-remote" option.
+ akin to the 'git-clone' "--use-separate-remote" option.
-o <branch-for-HEAD>::
When no remote is specified (via -r) the 'HEAD' branch
from CVS is imported to the 'origin' branch within the git
repository, as 'HEAD' already has a special meaning for git.
When a remote is specified the 'HEAD' branch is named
- remotes/<remote>/master mirroring `git-clone` behaviour.
+ remotes/<remote>/master mirroring 'git-clone' behaviour.
Use this option if you want to import into a different
branch.
+
---------
+
-`git-cvsimport` will make it appear as those authors had
+'git-cvsimport' will make it appear as those authors had
their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly
all along.
+
For convenience, this data is saved to `$GIT_DIR/cvs-authors`
each time the '-A' option is provided and read from that same
-file each time `git-cvsimport` is run.
+file each time 'git-cvsimport' is run.
+
It is not recommended to use this feature if you intend to
export changes back to CVS again later with
-`git-cvsexportcommit`.
+'git-cvsexportcommit'.
-h::
Print a short usage message and exit.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-cvsserver(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>SSH:</p>\r
+<div class="para"><p>SSH:</p></div>\r
<div class="verseblock">\r
<div class="content">export CVS_SERVER=git-cvsserver\r
<em>cvs</em> -d :ext:user@server/path/repo.git co <HEAD_name></div></div>\r
-<p>pserver (/etc/inetd.conf):</p>\r
+<div class="para"><p>pserver (/etc/inetd.conf):</p></div>\r
<div class="verseblock">\r
<div class="content">cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver</div></div>\r
-<p>Usage:</p>\r
+<div class="para"><p>Usage:</p></div>\r
<div class="verseblock">\r
<div class="content"><em>git cvsserver</em> [options] [pserver|server] [<directory> …]</div></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<p>All these options obviously only make sense if enforced by the server side.\r
+<div class="para"><p>All these options obviously only make sense if enforced by the server side.\r
They have been implemented to resemble the <a href="git-daemon.html">git-daemon(1)</a> options as\r
-closely as possible.</p>\r
-<dl>\r
+closely as possible.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--base-path <path>\r
</dt>\r
unless <em>--export-all</em> was given, too.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This application is a CVS emulation layer for git.</p>\r
-<p>It is highly functional. However, not all methods are implemented,\r
+<div class="para"><p>This application is a CVS emulation layer for git.</p></div>\r
+<div class="para"><p>It is highly functional. However, not all methods are implemented,\r
and for those methods that are implemented,\r
-not all switches are implemented.</p>\r
-<p>Testing has been done using both the CLI CVS client, and the Eclipse CVS\r
-plugin. Most functionality works fine with both of these clients.</p>\r
+not all switches are implemented.</p></div>\r
+<div class="para"><p>Testing has been done using both the CLI CVS client, and the Eclipse CVS\r
+plugin. Most functionality works fine with both of these clients.</p></div>\r
</div>\r
-<h2>LIMITATIONS</h2>\r
+<h2 id="_limitations">LIMITATIONS</h2>\r
<div class="sectionbody">\r
-<p>Currently cvsserver works over SSH connections for read/write clients, and\r
-over pserver for anonymous CVS access.</p>\r
-<p>CVS clients cannot tag, branch or perform GIT merges.</p>\r
-<p><tt>git-cvsserver</tt> maps GIT branches to CVS modules. This is very different\r
+<div class="para"><p>Currently cvsserver works over SSH connections for read/write clients, and\r
+over pserver for anonymous CVS access.</p></div>\r
+<div class="para"><p>CVS clients cannot tag, branch or perform GIT merges.</p></div>\r
+<div class="para"><p><em>git-cvsserver</em> maps GIT branches to CVS modules. This is very different\r
from what most CVS users would expect since in CVS modules usually represent\r
-one or more directories.</p>\r
+one or more directories.</p></div>\r
</div>\r
-<h2>INSTALLATION</h2>\r
+<h2 id="_installation">INSTALLATION</h2>\r
<div class="sectionbody">\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
If you are going to offer anonymous CVS access via pserver, add a line in\r
<pre><tt> cvspserver stream tcp nowait nobody git-cvsserver pserver\r
</tt></pre>\r
</div></div>\r
-<p>Note: Some inetd servers let you specify the name of the executable\r
+<div class="para"><p>Note: Some inetd servers let you specify the name of the executable\r
independently of the value of argv[0] (i.e. the name the program assumes\r
it was executed with). In this case the correct line in /etc/inetd.conf\r
-looks like</p>\r
+looks like</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver\r
</tt></pre>\r
</div></div>\r
-<p>No special setup is needed for SSH access, other than having GIT tools\r
+<div class="para"><p>No special setup is needed for SSH access, other than having GIT tools\r
in the PATH. If you have clients that do not accept the CVS_SERVER\r
-environment variable, you can rename <tt>git-cvsserver</tt> to <tt>cvs</tt>.</p>\r
-<p>Note: Newer CVS versions (>= 1.12.11) also support specifying\r
-CVS_SERVER directly in CVSROOT like</p>\r
+environment variable, you can rename <em>git-cvsserver</em> to <tt>cvs</tt>.</p></div>\r
+<div class="para"><p>Note: Newer CVS versions (>= 1.12.11) also support specifying\r
+CVS_SERVER directly in CVSROOT like</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>cvs -d ":ext;CVS_SERVER=git-cvsserver:user@server/path/repo.git" co <HEAD_name></tt></pre>\r
</div></div>\r
-<p>This has the advantage that it will be saved in your <em>CVS/Root</em> files and\r
+<div class="para"><p>This has the advantage that it will be saved in your <em>CVS/Root</em> files and\r
you don't need to worry about always setting the correct environment\r
-variable. SSH users restricted to <tt>git-shell</tt> don't need to override the default\r
-with CVS_SERVER (and shouldn't) as <tt>git-shell</tt> understands <tt>cvs</tt> to mean\r
-<tt>git-cvsserver</tt> and pretends that the other end runs the real <tt>cvs</tt> better.</p>\r
+variable. SSH users restricted to <em>git-shell</em> don't need to override the default\r
+with CVS_SERVER (and shouldn't) as <em>git-shell</em> understands <tt>cvs</tt> to mean\r
+<em>git-cvsserver</em> and pretends that the other end runs the real <em>cvs</em> better.</p></div>\r
</li>\r
<li>\r
<p>\r
logfile=/path/to/logfile\r
</tt></pre>\r
</div></div>\r
-<p>Note: you need to ensure each user that is going to invoke <tt>git-cvsserver</tt> has\r
+<div class="para"><p>Note: you need to ensure each user that is going to invoke <em>git-cvsserver</em> has\r
write access to the log file and to the database (see\r
<a href="#dbbackend">Database Backend</a>. If you want to offer write access over\r
-SSH, the users of course also need write access to the git repository itself.</p>\r
-<p><a id="configaccessmethod"></a>All configuration variables can also be overridden for a specific method of\r
+SSH, the users of course also need write access to the git repository itself.</p></div>\r
+<div class="para"><p>You also need to ensure that each repository is "bare" (without a git index\r
+file) for <tt>cvs commit</tt> to work. See <a href="gitcvs-migration.html">gitcvs-migration(7)</a>.</p></div>\r
+<div class="para" id="configaccessmethod"><p>All configuration variables can also be overridden for a specific method of\r
access. Valid method names are "ext" (for SSH access) and "pserver". The\r
following example configuration would disable pserver access while still\r
-allowing access over SSH.</p>\r
+allowing access over SSH.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [gitcvs]\r
automatically saving it in your <em>CVS/Root</em> files, then you need to set them\r
explicitly in your environment. CVSROOT should be set as per normal, but the\r
directory should point at the appropriate git repo. As above, for SSH clients\r
- _not_ restricted to <tt>git-shell</tt>, CVS_SERVER should be set to <tt>git-cvsserver</tt>.\r
+ <em>not</em> restricted to <em>git-shell</em>, CVS_SERVER should be set to <em>git-cvsserver</em>.\r
</p>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> cvs co -d project-master master</tt></pre>\r
</div></div>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2><a id="dbbackend"></a>Database Backend</h2>\r
+<h2 id="dbbackend">Database Backend</h2>\r
<div class="sectionbody">\r
-<p><tt>git-cvsserver</tt> uses one database per git head (i.e. CVS module) to\r
+<div class="para"><p><em>git-cvsserver</em> uses one database per git head (i.e. CVS module) to\r
store information about the repository for faster access. The\r
database doesn't contain any persistent data and can be completely\r
regenerated from the git repository at any time. The database\r
-needs to be updated (i.e. written to) after every commit.</p>\r
-<p>If the commit is done directly by using <tt>git</tt> (as opposed to\r
-using <tt>git-cvsserver</tt>) the update will need to happen on the\r
-next repository access by <tt>git-cvsserver</tt>, independent of\r
-access method and requested operation.</p>\r
-<p>That means that even if you offer only read access (e.g. by using\r
-the pserver method), <tt>git-cvsserver</tt> should have write access to\r
+needs to be updated (i.e. written to) after every commit.</p></div>\r
+<div class="para"><p>If the commit is done directly by using <tt>git</tt> (as opposed to\r
+using <em>git-cvsserver</em>) the update will need to happen on the\r
+next repository access by <em>git-cvsserver</em>, independent of\r
+access method and requested operation.</p></div>\r
+<div class="para"><p>That means that even if you offer only read access (e.g. by using\r
+the pserver method), <em>git-cvsserver</em> should have write access to\r
the database to work reliably (otherwise you need to make sure\r
-that the database is up-to-date any time <tt>git-cvsserver</tt> is executed).</p>\r
-<p>By default it uses SQLite databases in the git directory, named\r
+that the database is up-to-date any time <em>git-cvsserver</em> is executed).</p></div>\r
+<div class="para"><p>By default it uses SQLite databases in the git directory, named\r
<tt>gitcvs.<module_name>.sqlite</tt>. Note that the SQLite backend creates\r
temporary files in the same directory as the database file on\r
write so it might not be enough to grant the users using\r
-<tt>git-cvsserver</tt> write access to the database file without granting\r
-them write access to the directory, too.</p>\r
-<p>You can configure the database backend with the following\r
-configuration variables:</p>\r
-<h3>Configuring database backend</h3>\r
-<p><tt>git-cvsserver</tt> uses the Perl DBI module. Please also read\r
+<em>git-cvsserver</em> write access to the database file without granting\r
+them write access to the directory, too.</p></div>\r
+<div class="para"><p>You can configure the database backend with the following\r
+configuration variables:</p></div>\r
+<h3 id="_configuring_database_backend">Configuring database backend</h3><div style="clear:left"></div>\r
+<div class="para"><p><em>git-cvsserver</em> uses the Perl DBI module. Please also read\r
its documentation if changing these variables, especially\r
-about <tt>DBI->connect()</tt>.</p>\r
-<dl>\r
+about <tt>DBI->connect()</tt>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
gitcvs.dbname\r
</dt>\r
with underscores.\r
</p>\r
</dd>\r
-</dl>\r
-<p>All variables can also be set per access method, see <a href="#configaccessmethod">above</a>.</p>\r
-<h4>Variable substitution</h4>\r
-<p>In <tt>dbdriver</tt> and <tt>dbuser</tt> you can use the following variables:</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>All variables can also be set per access method, see <a href="#configaccessmethod">above</a>.</p></div>\r
+<h4 id="_variable_substitution">Variable substitution</h4>\r
+<div class="para"><p>In <tt>dbdriver</tt> and <tt>dbuser</tt> you can use the following variables:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
%G\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Name of the user running <tt>git-cvsserver</tt>.\r
+ Name of the user running <em>git-cvsserver</em>.\r
If no name can be determined, the\r
numeric uid is used.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Eclipse CVS Client Notes</h2>\r
+<h2 id="_eclipse_cvs_client_notes">Eclipse CVS Client Notes</h2>\r
<div class="sectionbody">\r
-<p>To get a checkout with the Eclipse CVS client:</p>\r
-<ol>\r
+<div class="para"><p>To get a checkout with the Eclipse CVS client:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
Select "Create a new project -> From CVS checkout"\r
"launch commit wizard" to avoid committing the .project file.\r
</p>\r
</li>\r
-</ol>\r
-<p>Protocol notes: If you are using anonymous access via pserver, just select that.\r
+</ol></div>\r
+<div class="para"><p>Protocol notes: If you are using anonymous access via pserver, just select that.\r
Those using SSH access should choose the <em>ext</em> protocol, and configure <em>ext</em>\r
access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to\r
-<tt>git-cvsserver</tt>. Note that password support is not good when using <em>ext</em>,\r
-you will definitely want to have SSH keys setup.</p>\r
-<p>Alternatively, you can just use the non-standard extssh protocol that Eclipse\r
+<em>git-cvsserver</em>. Note that password support is not good when using <em>ext</em>,\r
+you will definitely want to have SSH keys setup.</p></div>\r
+<div class="para"><p>Alternatively, you can just use the non-standard extssh protocol that Eclipse\r
offer. In that case CVS_SERVER is ignored, and you will have to replace\r
-the cvs utility on the server with <tt>git-cvsserver</tt> or manipulate your <tt>.bashrc</tt>\r
-so that calling <em>cvs</em> effectively calls <tt>git-cvsserver</tt>.</p>\r
+the cvs utility on the server with <em>git-cvsserver</em> or manipulate your <tt>.bashrc</tt>\r
+so that calling <em>cvs</em> effectively calls <em>git-cvsserver</em>.</p></div>\r
</div>\r
-<h2>Clients known to work</h2>\r
+<h2 id="_clients_known_to_work">Clients known to work</h2>\r
<div class="sectionbody">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
CVS 1.12.9 on Debian\r
TortoiseCVS\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Operations supported</h2>\r
+<h2 id="_operations_supported">Operations supported</h2>\r
<div class="sectionbody">\r
-<p>All the operations required for normal use are supported, including\r
+<div class="para"><p>All the operations required for normal use are supported, including\r
checkout, diff, status, update, log, add, remove, commit.\r
Legacy monitoring operations are not supported (edit, watch and related).\r
-Exports and tagging (tags and branches) are not supported at this stage.</p>\r
-<h3>CRLF Line Ending Conversions</h3>\r
-<p>By default the server leaves the <em>-k</em> mode blank for all files,\r
+Exports and tagging (tags and branches) are not supported at this stage.</p></div>\r
+<h3 id="_crlf_line_ending_conversions">CRLF Line Ending Conversions</h3><div style="clear:left"></div>\r
+<div class="para"><p>By default the server leaves the <em>-k</em> mode blank for all files,\r
which causes the cvs client to treat them as a text files, subject\r
-to crlf conversion on some platforms.</p>\r
-<p>You can make the server use <tt>crlf</tt> attributes to set the <em>-k</em> modes\r
+to crlf conversion on some platforms.</p></div>\r
+<div class="para"><p>You can make the server use <tt>crlf</tt> attributes to set the <em>-k</em> modes\r
for files by setting the <tt>gitcvs.usecrlfattr</tt> config variable.\r
In this case, if <tt>crlf</tt> is explicitly unset (<em>-crlf</em>), then the\r
server will set <em>-kb</em> mode for binary files. If <tt>crlf</tt> is set,\r
then the <em>-k</em> mode will explicitly be left blank. See\r
also <a href="gitattributes.html">gitattributes(5)</a> for more information about the <tt>crlf</tt>\r
-attribute.</p>\r
-<p>Alternatively, if <tt>gitcvs.usecrlfattr</tt> config is not enabled\r
+attribute.</p></div>\r
+<div class="para"><p>Alternatively, if <tt>gitcvs.usecrlfattr</tt> config is not enabled\r
or if the <tt>crlf</tt> attribute is unspecified for a filename, then\r
the server uses the <tt>gitcvs.allbinary</tt> config for the default setting.\r
If <tt>gitcvs.allbinary</tt> is set, then file not otherwise\r
specified will default to <em>-kb</em> mode. Otherwise the <em>-k</em> mode\r
is left blank. But if <tt>gitcvs.allbinary</tt> is set to "guess", then\r
the correct <em>-k</em> mode will be guessed based on the contents of\r
-the file.</p>\r
-<p>For best consistency with <tt>cvs</tt>, it is probably best to override the\r
+the file.</p></div>\r
+<div class="para"><p>For best consistency with <em>cvs</em>, it is probably best to override the\r
defaults by setting <tt>gitcvs.usecrlfattr</tt> to true,\r
-and <tt>gitcvs.allbinary</tt> to "guess".</p>\r
+and <tt>gitcvs.allbinary</tt> to "guess".</p></div>\r
</div>\r
-<h2>Dependencies</h2>\r
+<h2 id="_dependencies">Dependencies</h2>\r
<div class="sectionbody">\r
-<p><tt>git-cvsserver</tt> depends on DBD::SQLite.</p>\r
+<div class="para"><p><em>git-cvsserver</em> depends on DBD::SQLite.</p></div>\r
</div>\r
-<h2>Copyright and Authors</h2>\r
+<h2 id="_copyright_and_authors">Copyright and Authors</h2>\r
<div class="sectionbody">\r
-<p>This program is copyright The Open University UK - 2006.</p>\r
-<p>Authors:</p>\r
-<ul>\r
+<div class="para"><p>This program is copyright The Open University UK - 2006.</p></div>\r
+<div class="para"><p>Authors:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Martyn Smith <martyn@catalyst.net.nz>\r
Martin Langhoff <martin@catalyst.net.nz>\r
</p>\r
</li>\r
-</ul>\r
-<p>with ideas and patches from participants of the git-list <git@vger.kernel.org>.</p>\r
+</ul></div>\r
+<div class="para"><p>with ideas and patches from participants of the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Martyn Smith <martyn@catalyst.net.nz>, Martin Langhoff <martin@catalyst.net.nz>, and Matthias Urlichs <smurf@smurf.noris.de>.</p>\r
+<div class="para"><p>Documentation by Martyn Smith <martyn@catalyst.net.nz>, Martin Langhoff <martin@catalyst.net.nz>, and Matthias Urlichs <smurf@smurf.noris.de>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:39 UTC\r
+Last updated 2008-07-06 05:16:41 UTC\r
</div>\r
</div>\r
</body>\r
CVS clients cannot tag, branch or perform GIT merges.
-`git-cvsserver` maps GIT branches to CVS modules. This is very different
+'git-cvsserver' maps GIT branches to CVS modules. This is very different
from what most CVS users would expect since in CVS modules usually represent
one or more directories.
------
No special setup is needed for SSH access, other than having GIT tools
in the PATH. If you have clients that do not accept the CVS_SERVER
-environment variable, you can rename `git-cvsserver` to `cvs`.
+environment variable, you can rename 'git-cvsserver' to `cvs`.
Note: Newer CVS versions (>= 1.12.11) also support specifying
CVS_SERVER directly in CVSROOT like
------
This has the advantage that it will be saved in your 'CVS/Root' files and
you don't need to worry about always setting the correct environment
-variable. SSH users restricted to `git-shell` don't need to override the default
-with CVS_SERVER (and shouldn't) as `git-shell` understands `cvs` to mean
-`git-cvsserver` and pretends that the other end runs the real `cvs` better.
+variable. SSH users restricted to 'git-shell' don't need to override the default
+with CVS_SERVER (and shouldn't) as 'git-shell' understands `cvs` to mean
+'git-cvsserver' and pretends that the other end runs the real 'cvs' better.
--
2. For each repo that you want accessible from CVS you need to edit config in
the repo and add the following section.
logfile=/path/to/logfile
------
-Note: you need to ensure each user that is going to invoke `git-cvsserver` has
+Note: you need to ensure each user that is going to invoke 'git-cvsserver' has
write access to the log file and to the database (see
<<dbbackend,Database Backend>>. If you want to offer write access over
SSH, the users of course also need write access to the git repository itself.
+You also need to ensure that each repository is "bare" (without a git index
+file) for `cvs commit` to work. See linkgit:gitcvs-migration[7].
+
[[configaccessmethod]]
All configuration variables can also be overridden for a specific method of
access. Valid method names are "ext" (for SSH access) and "pserver". The
automatically saving it in your 'CVS/Root' files, then you need to set them
explicitly in your environment. CVSROOT should be set as per normal, but the
directory should point at the appropriate git repo. As above, for SSH clients
- _not_ restricted to `git-shell`, CVS_SERVER should be set to `git-cvsserver`.
+ _not_ restricted to 'git-shell', CVS_SERVER should be set to 'git-cvsserver'.
+
--
------
Database Backend
----------------
-`git-cvsserver` uses one database per git head (i.e. CVS module) to
+'git-cvsserver' uses one database per git head (i.e. CVS module) to
store information about the repository for faster access. The
database doesn't contain any persistent data and can be completely
regenerated from the git repository at any time. The database
needs to be updated (i.e. written to) after every commit.
If the commit is done directly by using `git` (as opposed to
-using `git-cvsserver`) the update will need to happen on the
-next repository access by `git-cvsserver`, independent of
+using 'git-cvsserver') the update will need to happen on the
+next repository access by 'git-cvsserver', independent of
access method and requested operation.
That means that even if you offer only read access (e.g. by using
-the pserver method), `git-cvsserver` should have write access to
+the pserver method), 'git-cvsserver' should have write access to
the database to work reliably (otherwise you need to make sure
-that the database is up-to-date any time `git-cvsserver` is executed).
+that the database is up-to-date any time 'git-cvsserver' is executed).
By default it uses SQLite databases in the git directory, named
`gitcvs.<module_name>.sqlite`. Note that the SQLite backend creates
temporary files in the same directory as the database file on
write so it might not be enough to grant the users using
-`git-cvsserver` write access to the database file without granting
+'git-cvsserver' write access to the database file without granting
them write access to the directory, too.
You can configure the database backend with the following
Configuring database backend
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-`git-cvsserver` uses the Perl DBI module. Please also read
+'git-cvsserver' uses the Perl DBI module. Please also read
its documentation if changing these variables, especially
about `DBI->connect()`.
%a::
access method (one of "ext" or "pserver")
%u::
- Name of the user running `git-cvsserver`.
+ Name of the user running 'git-cvsserver'.
If no name can be determined, the
numeric uid is used.
Protocol notes: If you are using anonymous access via pserver, just select that.
Those using SSH access should choose the 'ext' protocol, and configure 'ext'
access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to
-`git-cvsserver`. Note that password support is not good when using 'ext',
+'git-cvsserver'. Note that password support is not good when using 'ext',
you will definitely want to have SSH keys setup.
Alternatively, you can just use the non-standard extssh protocol that Eclipse
offer. In that case CVS_SERVER is ignored, and you will have to replace
-the cvs utility on the server with `git-cvsserver` or manipulate your `.bashrc`
-so that calling 'cvs' effectively calls `git-cvsserver`.
+the cvs utility on the server with 'git-cvsserver' or manipulate your `.bashrc`
+so that calling 'cvs' effectively calls 'git-cvsserver'.
Clients known to work
---------------------
the correct '-k' mode will be guessed based on the contents of
the file.
-For best consistency with `cvs`, it is probably best to override the
+For best consistency with 'cvs', it is probably best to override the
defaults by setting `gitcvs.usecrlfattr` to true,
and `gitcvs.allbinary` to "guess".
Dependencies
------------
-`git-cvsserver` depends on DBD::SQLite.
+'git-cvsserver' depends on DBD::SQLite.
Copyright and Authors
---------------------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-daemon(1)</title>\r
</head>\r
[--inetd | [--listen=host_or_ipaddr] [--port=n] [--user=user [--group=group]]\r
[directory…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT"\r
+<div class="para"><p>A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT"\r
aka 9418. It waits for a connection asking for a service, and will serve\r
-that service if it is enabled.</p>\r
-<p>It verifies that the directory has the magic file "git-daemon-export-ok", and\r
+that service if it is enabled.</p></div>\r
+<div class="para"><p>It verifies that the directory has the magic file "git-daemon-export-ok", and\r
it will refuse to export any git directory that hasn't explicitly been marked\r
for export this way (unless the <em>--export-all</em> parameter is specified). If you\r
-pass some directory paths as <tt>git-daemon</tt> arguments, you can further restrict\r
-the offers to a whitelist comprising of those.</p>\r
-<p>By default, only <tt>upload-pack</tt> service is enabled, which serves\r
-<tt>git-fetch-pack</tt> and <tt>git-ls-remote</tt> clients, which are invoked\r
-from <tt>git-fetch</tt>, <tt>git-pull</tt>, and <tt>git-clone</tt>.</p>\r
-<p>This is ideally suited for read-only updates, i.e., pulling from\r
-git repositories.</p>\r
-<p>An <tt>upload-archive</tt> also exists to serve <tt>git-archive</tt>.</p>\r
+pass some directory paths as <em>git-daemon</em> arguments, you can further restrict\r
+the offers to a whitelist comprising of those.</p></div>\r
+<div class="para"><p>By default, only <tt>upload-pack</tt> service is enabled, which serves\r
+<em>git-fetch-pack</em> and <em>git-ls-remote</em> clients, which are invoked\r
+from <em>git-fetch</em>, <em>git-pull</em>, and <em>git-clone</em>.</p></div>\r
+<div class="para"><p>This is ideally suited for read-only updates, i.e., pulling from\r
+git repositories.</p></div>\r
+<div class="para"><p>An <tt>upload-archive</tt> also exists to serve <em>git-archive</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--strict-paths\r
</dt>\r
<p>\r
Match paths exactly (i.e. don't allow "/foo/repo" when the real path is\r
"/foo/repo.git" or "/foo/repo/.git") and don't do user-relative paths.\r
- <tt>git-daemon</tt> will refuse to start when this option is enabled and no\r
+ <em>git-daemon</em> will refuse to start when this option is enabled and no\r
whitelist is specified.\r
</p>\r
</dd>\r
<dd>\r
<p>\r
Remap all the path requests as relative to the given path.\r
- This is sort of "GIT root" - if you run <tt>git-daemon</tt> with\r
+ This is sort of "GIT root" - if you run <em>git-daemon</em> with\r
<em>--base-path=/srv/git</em> on example.com, then if you later try to pull\r
- <em>git://example.com/hello.git</em>, <tt>git-daemon</tt> will interpret the path\r
+ <em>git://example.com/hello.git</em>, <em>git-daemon</em> will interpret the path\r
as <em>/srv/git/hello.git</em>.\r
</p>\r
</dd>\r
<dd>\r
<p>\r
If --base-path is enabled and repo lookup fails, with this option\r
- <tt>git-daemon</tt> will attempt to lookup without prefixing the base path.\r
+ <em>git-daemon</em> will attempt to lookup without prefixing the base path.\r
This is useful for switching to --base-path usage, while still\r
allowing the old paths.\r
</p>\r
</dt>\r
<dd>\r
<p>\r
- Allow ~user notation to be used in requests. When\r
+ Allow <sub>user notation to be used in requests. When\r
specified with no parameter, requests to\r
- git://host/~alice/foo is taken as a request to access\r
+ git://host/</sub>alice/foo is taken as a request to access\r
<em>foo</em> repository in the home directory of user <tt>alice</tt>.\r
If <tt>--user-path=path</tt> is specified, the same request is\r
taken as a request to access <tt>path/foo</tt> repository in\r
the option are given to <tt>getpwnam(3)</tt> and <tt>getgrnam(3)</tt>\r
and numeric IDs are not supported.\r
</p>\r
-<p>Giving these options is an error when used with <tt>--inetd</tt>; use\r
+<div class="para"><p>Giving these options is an error when used with <tt>--inetd</tt>; use\r
the facility of inet daemon to achieve the same before spawning\r
-<tt>git-daemon</tt> if needed.</p>\r
+<em>git-daemon</em> if needed.</p></div>\r
</dd>\r
<dt>\r
--enable=service\r
of each named directory.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SERVICES</h2>\r
+<h2 id="_services">SERVICES</h2>\r
<div class="sectionbody">\r
-<p>These services can be globally enabled/disabled using the\r
+<div class="para"><p>These services can be globally enabled/disabled using the\r
command line options of this command. If a finer-grained\r
-control is desired (e.g. to allow <tt>git-archive</tt> to be run\r
+control is desired (e.g. to allow <em>git-archive</em> to be run\r
against only in a few selected repositories the daemon serves),\r
the per-repository configuration file can be used to enable or\r
-disable them.</p>\r
-<dl>\r
+disable them.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
upload-pack\r
</dt>\r
<dd>\r
<p>\r
- This serves <tt>git-fetch-pack</tt> and <tt>git-ls-remote</tt>\r
+ This serves <em>git-fetch-pack</em> and <em>git-ls-remote</em>\r
clients. It is enabled by default, but a repository can\r
disable it by setting <tt>daemon.uploadpack</tt> configuration\r
item to <tt>false</tt>.\r
</dt>\r
<dd>\r
<p>\r
- This serves <tt>git-archive --remote</tt>. It is disabled by\r
+ This serves <em>git-archive --remote</em>. It is disabled by\r
default, but a repository can enable it by setting\r
<tt>daemon.uploadarch</tt> configuration item to <tt>true</tt>.\r
</p>\r
</dt>\r
<dd>\r
<p>\r
- This serves <tt>git-send-pack</tt> clients, allowing anonymous\r
- push. It is disabled by default, as there is _no_\r
+ This serves <em>git-send-pack</em> clients, allowing anonymous\r
+ push. It is disabled by default, as there is <em>no</em>\r
authentication in the protocol (in other words, anybody\r
can push anything into the repository, including removal\r
of refs). This is solely meant for a closed LAN setting\r
<tt>true</tt>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
We assume the following in /etc/services\r
</dt>\r
</div></div>\r
</dd>\r
<dt>\r
-<tt>git-daemon</tt> as inetd server\r
+<em>git-daemon</em> as inetd server\r
</dt>\r
<dd>\r
<p>\r
- To set up <tt>git-daemon</tt> as an inetd service that handles any\r
+ To set up <em>git-daemon</em> as an inetd service that handles any\r
repository under the whitelisted set of directories, /pub/foo\r
and /pub/bar, place an entry like the following into\r
/etc/inetd all on one line:\r
</div></div>\r
</dd>\r
<dt>\r
-<tt>git-daemon</tt> as inetd server for virtual hosts\r
+<em>git-daemon</em> as inetd server for virtual hosts\r
</dt>\r
<dd>\r
<p>\r
- To set up <tt>git-daemon</tt> as an inetd service that handles\r
+ To set up <em>git-daemon</em> as an inetd service that handles\r
repositories for different virtual hosts, <tt>www.example.com</tt>\r
and <tt>www.example.org</tt>, place an entry like the following into\r
<tt>/etc/inetd</tt> all on one line:\r
/pub/www.example.com/software\r
/software</tt></pre>\r
</div></div>\r
-<p>In this example, the root-level directory <tt>/pub</tt> will contain\r
+<div class="para"><p>In this example, the root-level directory <tt>/pub</tt> will contain\r
a subdirectory for each virtual host name supported.\r
Further, both hosts advertise repositories simply as\r
<tt>git://www.example.com/software/repo.git</tt>. For pre-1.4.0\r
clients, a symlink from <tt>/software</tt> into the appropriate\r
-default repository could be made as well.</p>\r
+default repository could be made as well.</p></div>\r
</dd>\r
<dt>\r
-<tt>git-daemon</tt> as regular daemon for virtual hosts\r
+<em>git-daemon</em> as regular daemon for virtual hosts\r
</dt>\r
<dd>\r
<p>\r
- To set up <tt>git-daemon</tt> as a regular, non-inetd service that\r
+ To set up <em>git-daemon</em> as a regular, non-inetd service that\r
handles repositories for multiple virtual hosts based on\r
their IP addresses, start the daemon like this:\r
</p>\r
/pub/192.168.1.200/software\r
/pub/10.10.220.23/software</tt></pre>\r
</div></div>\r
-<p>In this example, the root-level directory <tt>/pub</tt> will contain\r
+<div class="para"><p>In this example, the root-level directory <tt>/pub</tt> will contain\r
a subdirectory for each virtual host IP address supported.\r
Repositories can still be accessed by hostname though, assuming\r
-they correspond to these IP addresses.</p>\r
+they correspond to these IP addresses.</p></div>\r
</dd>\r
<dt>\r
selectively enable/disable services per repository\r
</dt>\r
<dd>\r
<p>\r
- To enable <tt>git-archive --remote</tt> and disable <tt>git-fetch</tt> against\r
+ To enable <em>git-archive --remote</em> and disable <em>git-fetch</em> against\r
a repository, have the following in the configuration file in the\r
repository (that is the file <em>config</em> next to <em>HEAD</em>, <em>refs</em> and\r
<em>objects</em>).\r
uploadarch = true</tt></pre>\r
</div></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org>, YOSHIFUJI Hideaki\r
-<yoshfuji@linux-ipv6.org> and the git-list <git@vger.kernel.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org>, YOSHIFUJI Hideaki\r
+<yoshfuji@linux-ipv6.org> and the git-list <git@vger.kernel.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:39 UTC\r
+Last updated 2008-07-06 05:16:42 UTC\r
</div>\r
</div>\r
</body>\r
It verifies that the directory has the magic file "git-daemon-export-ok", and
it will refuse to export any git directory that hasn't explicitly been marked
for export this way (unless the '--export-all' parameter is specified). If you
-pass some directory paths as `git-daemon` arguments, you can further restrict
+pass some directory paths as 'git-daemon' arguments, you can further restrict
the offers to a whitelist comprising of those.
By default, only `upload-pack` service is enabled, which serves
-`git-fetch-pack` and `git-ls-remote` clients, which are invoked
-from `git-fetch`, `git-pull`, and `git-clone`.
+'git-fetch-pack' and 'git-ls-remote' clients, which are invoked
+from 'git-fetch', 'git-pull', and 'git-clone'.
This is ideally suited for read-only updates, i.e., pulling from
git repositories.
-An `upload-archive` also exists to serve `git-archive`.
+An `upload-archive` also exists to serve 'git-archive'.
OPTIONS
-------
--strict-paths::
Match paths exactly (i.e. don't allow "/foo/repo" when the real path is
"/foo/repo.git" or "/foo/repo/.git") and don't do user-relative paths.
- `git-daemon` will refuse to start when this option is enabled and no
+ 'git-daemon' will refuse to start when this option is enabled and no
whitelist is specified.
--base-path::
Remap all the path requests as relative to the given path.
- This is sort of "GIT root" - if you run `git-daemon` with
+ This is sort of "GIT root" - if you run 'git-daemon' with
'--base-path=/srv/git' on example.com, then if you later try to pull
- 'git://example.com/hello.git', `git-daemon` will interpret the path
+ 'git://example.com/hello.git', 'git-daemon' will interpret the path
as '/srv/git/hello.git'.
--base-path-relaxed::
If --base-path is enabled and repo lookup fails, with this option
- `git-daemon` will attempt to lookup without prefixing the base path.
+ 'git-daemon' will attempt to lookup without prefixing the base path.
This is useful for switching to --base-path usage, while still
allowing the old paths.
+
Giving these options is an error when used with `--inetd`; use
the facility of inet daemon to achieve the same before spawning
-`git-daemon` if needed.
+'git-daemon' if needed.
--enable=service::
--disable=service::
These services can be globally enabled/disabled using the
command line options of this command. If a finer-grained
-control is desired (e.g. to allow `git-archive` to be run
+control is desired (e.g. to allow 'git-archive' to be run
against only in a few selected repositories the daemon serves),
the per-repository configuration file can be used to enable or
disable them.
upload-pack::
- This serves `git-fetch-pack` and `git-ls-remote`
+ This serves 'git-fetch-pack' and 'git-ls-remote'
clients. It is enabled by default, but a repository can
disable it by setting `daemon.uploadpack` configuration
item to `false`.
upload-archive::
- This serves `git-archive --remote`. It is disabled by
+ This serves 'git-archive --remote'. It is disabled by
default, but a repository can enable it by setting
`daemon.uploadarch` configuration item to `true`.
receive-pack::
- This serves `git-send-pack` clients, allowing anonymous
+ This serves 'git-send-pack' clients, allowing anonymous
push. It is disabled by default, as there is _no_
authentication in the protocol (in other words, anybody
can push anything into the repository, including removal
git 9418/tcp # Git Version Control System
------------
-`git-daemon` as inetd server::
- To set up `git-daemon` as an inetd service that handles any
+'git-daemon' as inetd server::
+ To set up 'git-daemon' as an inetd service that handles any
repository under the whitelisted set of directories, /pub/foo
and /pub/bar, place an entry like the following into
/etc/inetd all on one line:
------------------------------------------------
-`git-daemon` as inetd server for virtual hosts::
- To set up `git-daemon` as an inetd service that handles
+'git-daemon' as inetd server for virtual hosts::
+ To set up 'git-daemon' as an inetd service that handles
repositories for different virtual hosts, `www.example.com`
and `www.example.org`, place an entry like the following into
`/etc/inetd` all on one line:
default repository could be made as well.
-`git-daemon` as regular daemon for virtual hosts::
- To set up `git-daemon` as a regular, non-inetd service that
+'git-daemon' as regular daemon for virtual hosts::
+ To set up 'git-daemon' as a regular, non-inetd service that
handles repositories for multiple virtual hosts based on
their IP addresses, start the daemon like this:
+
they correspond to these IP addresses.
selectively enable/disable services per repository::
- To enable `git-archive --remote` and disable `git-fetch` against
+ To enable 'git-archive --remote' and disable 'git-fetch' against
a repository, have the following in the configuration file in the
repository (that is the file 'config' next to 'HEAD', 'refs' and
'objects').
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-describe(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git describe</em> [--all] [--tags] [--contains] [--abbrev=<n>] <committish>…</p>\r
+<div class="para"><p><em>git describe</em> [--all] [--tags] [--contains] [--abbrev=<n>] <committish>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>The command finds the most recent tag that is reachable from a\r
+<div class="para"><p>The command finds the most recent tag that is reachable from a\r
commit. If the tag points to the commit, then only the tag is\r
shown. Otherwise, it suffixes the tag name with the number of\r
additional commits on top of the tagged object and the\r
-abbreviated object name of the most recent commit.</p>\r
+abbreviated object name of the most recent commit.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<committish>\r
</dt>\r
Show uniquely abbreviated commit object as fallback.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<p>With something like git.git current tree, I get:</p>\r
+<div class="para"><p>With something like git.git current tree, I get:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>[torvalds@g5 git]$ git describe parent\r
v1.0.4-14-g2414721</tt></pre>\r
</div></div>\r
-<p>i.e. the current head of my "parent" branch is based on v1.0.4,\r
+<div class="para"><p>i.e. the current head of my "parent" branch is based on v1.0.4,\r
but since it has a handful commits on top of that,\r
describe has added the number of additional commits ("14") and\r
an abbreviated object name for the commit itself ("2414721")\r
-at the end.</p>\r
-<p>The number of additional commits is the number\r
+at the end.</p></div>\r
+<div class="para"><p>The number of additional commits is the number\r
of commits which would be displayed by "git log v1.0.4..parent".\r
The hash suffix is "-g" + 7-char abbreviation for the tip commit\r
-of parent (which was <tt>2414721b194453f058079d897d13c4e377f92dc6</tt>).</p>\r
-<p>Doing a <tt>git-describe</tt> on a tag-name will just show the tag name:</p>\r
+of parent (which was <tt>2414721b194453f058079d897d13c4e377f92dc6</tt>).</p></div>\r
+<div class="para"><p>Doing a <em>git-describe</em> on a tag-name will just show the tag name:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>[torvalds@g5 git]$ git describe v1.0.4\r
v1.0.4</tt></pre>\r
</div></div>\r
-<p>With --all, the command can use branch heads as references, so\r
-the output shows the reference path as well:</p>\r
+<div class="para"><p>With --all, the command can use branch heads as references, so\r
+the output shows the reference path as well:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2\r
<pre><tt>[torvalds@g5 git]$ git describe --all HEAD^\r
heads/lt/describe-7-g975b</tt></pre>\r
</div></div>\r
-<p>With --abbrev set to 0, the command can be used to find the\r
-closest tagname without any suffix:</p>\r
+<div class="para"><p>With --abbrev set to 0, the command can be used to find the\r
+closest tagname without any suffix:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2\r
tags/v1.0.0</tt></pre>\r
</div></div>\r
</div>\r
-<h2>SEARCH STRATEGY</h2>\r
+<h2 id="_search_strategy">SEARCH STRATEGY</h2>\r
<div class="sectionbody">\r
-<p>For each committish supplied, <tt>git-describe</tt> will first look for\r
+<div class="para"><p>For each committish supplied, <em>git-describe</em> will first look for\r
a tag which tags exactly that commit. Annotated tags will always\r
be preferred over lightweight tags, and tags with newer dates will\r
always be preferred over tags with older dates. If an exact match\r
-is found, its name will be output and searching will stop.</p>\r
-<p>If an exact match was not found, <tt>git-describe</tt> will walk back\r
+is found, its name will be output and searching will stop.</p></div>\r
+<div class="para"><p>If an exact match was not found, <em>git-describe</em> will walk back\r
through the commit history to locate an ancestor commit which\r
has been tagged. The ancestor's tag will be output along with an\r
-abbreviation of the input committish's SHA1.</p>\r
-<p>If multiple tags were found during the walk then the tag which\r
+abbreviation of the input committish's SHA1.</p></div>\r
+<div class="para"><p>If multiple tags were found during the walk then the tag which\r
has the fewest commits different from the input committish will be\r
selected and output. Here fewest commits different is defined as\r
the number of commits which would be shown by <tt>git log tag..input</tt>\r
-will be the smallest number of commits possible.</p>\r
+will be the smallest number of commits possible.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org>, but somewhat\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org>, but somewhat\r
butchered by Junio C Hamano <junkio@cox.net>. Later significantly\r
-updated by Shawn Pearce <spearce@spearce.org>.</p>\r
+updated by Shawn Pearce <spearce@spearce.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:40 UTC\r
+Last updated 2008-07-06 05:16:42 UTC\r
</div>\r
</div>\r
</body>\r
The hash suffix is "-g" + 7-char abbreviation for the tip commit
of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`).
-Doing a `git-describe` on a tag-name will just show the tag name:
+Doing a 'git-describe' on a tag-name will just show the tag name:
[torvalds@g5 git]$ git describe v1.0.4
v1.0.4
SEARCH STRATEGY
---------------
-For each committish supplied, `git-describe` will first look for
+For each committish supplied, 'git-describe' will first look for
a tag which tags exactly that commit. Annotated tags will always
be preferred over lightweight tags, and tags with newer dates will
always be preferred over tags with older dates. If an exact match
is found, its name will be output and searching will stop.
-If an exact match was not found, `git-describe` will walk back
+If an exact match was not found, 'git-describe' will walk back
through the commit history to locate an ancestor commit which
has been tagged. The ancestor's tag will be output along with an
abbreviation of the input committish's SHA1.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-diff-files(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git diff-files</em> [-q] [-0|-1|-2|-3|-c|--cc] [<common diff options>] [<path>…]</p>\r
+<div class="para"><p><em>git diff-files</em> [-q] [-0|-1|-2|-3|-c|--cc] [<common diff options>] [<path>…]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Compares the files in the working tree and the index. When paths\r
+<div class="para"><p>Compares the files in the working tree and the index. When paths\r
are specified, compares only those named paths. Otherwise all\r
entries in the index are compared. The output format is the\r
-same as for <tt>git-diff-index</tt> and <tt>git-diff-tree</tt>.</p>\r
+same as for <em>git-diff-index</em> and <em>git-diff-tree</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-p\r
</dt>\r
Do not show any source or destination prefix.\r
</p>\r
</dd>\r
-</dl>\r
-<p>For more detailed explanation on these common options, see also\r
-<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>For more detailed explanation on these common options, see also\r
+<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-1 -2 -3 or --base --ours --theirs, and -0\r
</dt>\r
branch" respectively. With these options, diffs for\r
merged entries are not shown.\r
</p>\r
-<p>The default is to diff against our branch (-2) and the\r
+<div class="para"><p>The default is to diff against our branch (-2) and the\r
cleanly resolved paths. The option -0 can be given to\r
-omit diff output for unmerged entries and just show "Unmerged".</p>\r
+omit diff output for unmerged entries and just show "Unmerged".</p></div>\r
</dd>\r
<dt>\r
-c\r
Remain silent even on nonexistent files\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Output format</h2>\r
+<h2 id="_output_format">Output format</h2>\r
<div class="sectionbody">\r
-<p>The output format from "git-diff-index", "git-diff-tree",\r
-"git-diff-files" and "git diff --raw" are very similar.</p>\r
-<p>These commands all compare two sets of things; what is\r
-compared differs:</p>\r
-<dl>\r
+<div class="para"><p>The output format from "git-diff-index", "git-diff-tree",\r
+"git-diff-files" and "git diff --raw" are very similar.</p></div>\r
+<div class="para"><p>These commands all compare two sets of things; what is\r
+compared differs:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
git-diff-index <tree-ish>\r
</dt>\r
compares the index and the files on the filesystem.\r
</p>\r
</dd>\r
-</dl>\r
-<p>An output line is formatted this way:</p>\r
+</dl></div>\r
+<div class="para"><p>An output line is formatted this way:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0\r
delete :100644 000000 1234567... 0000000... D file5\r
unmerged :000000 000000 0000000... 0000000... U file6</tt></pre>\r
</div></div>\r
-<p>That is, from the left to the right:</p>\r
-<ol>\r
+<div class="para"><p>That is, from the left to the right:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
a colon.\r
an LF or a NUL when <em>-z</em> option is used, to terminate the record.\r
</p>\r
</li>\r
-</ol>\r
-<p><sha1> is shown as all 0's if a file is new on the filesystem\r
-and it is out of sync with the index.</p>\r
-<p>Example:</p>\r
+</ol></div>\r
+<div class="para"><p><sha1> is shown as all 0's if a file is new on the filesystem\r
+and it is out of sync with the index.</p></div>\r
+<div class="para"><p>Example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 5be4a4...... 000000...... M file.c</tt></pre>\r
</div></div>\r
-<p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
+<div class="para"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>,\r
-respectively.</p>\r
+respectively.</p></div>\r
</div>\r
-<h2>diff format for merges</h2>\r
+<h2 id="_diff_format_for_merges">diff format for merges</h2>\r
<div class="sectionbody">\r
-<p>"git-diff-tree", "git-diff-files" and "git-diff --raw"\r
+<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff --raw"\r
can take <em>-c</em> or <em>--cc</em> option\r
to generate diff output also for merge commits. The output differs\r
-from the format described above in the following way:</p>\r
-<ol>\r
+from the format described above in the following way:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
there is a colon for each parent\r
single path, only for "dst"\r
</p>\r
</li>\r
-</ol>\r
-<p>Example:</p>\r
+</ol></div>\r
+<div class="para"><p>Example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</tt></pre>\r
</div></div>\r
-<p>Note that <em>combined diff</em> lists only files which were modified from\r
-all parents.</p>\r
+<div class="para"><p>Note that <em>combined diff</em> lists only files which were modified from\r
+all parents.</p></div>\r
</div>\r
-<h2>Generating patches with -p</h2>\r
+<h2 id="_generating_patches_with_p">Generating patches with -p</h2>\r
<div class="sectionbody">\r
-<p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
+<div class="para"><p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
with a <em>-p</em> option, "git diff" without the <em>--raw</em> option, or\r
"git log" with the "-p" option, they\r
do not produce the output described above; instead they produce a\r
patch file. You can customize the creation of such patches via the\r
-GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p>\r
-<p>What the -p option produces is slightly different from the traditional\r
-diff format.</p>\r
-<ol>\r
+GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p></div>\r
+<div class="para"><p>What the -p option produces is slightly different from the traditional\r
+diff format.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --git a/file1 b/file2</tt></pre>\r
</div></div>\r
-<p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
+<div class="para"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
involved. Especially, even for a creation or a deletion,\r
-<tt>/dev/null</tt> is _not_ used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p>\r
-<p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
+<tt>/dev/null</tt> is <em>not</em> used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p></div>\r
+<div class="para"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
name of the source file of the rename/copy and the name of\r
-the file that rename/copy produces, respectively.</p>\r
+the file that rename/copy produces, respectively.</p></div>\r
</li>\r
<li>\r
<p>\r
pathname is put in double quotes.\r
</p>\r
</li>\r
-</ol>\r
-<p>The similarity index is the percentage of unchanged lines, and\r
+</ol></div>\r
+<div class="para"><p>The similarity index is the percentage of unchanged lines, and\r
the dissimilarity index is the percentage of changed lines. It\r
is a rounded down integer, followed by a percent sign. The\r
similarity index value of 100% is thus reserved for two equal\r
files, while 100% dissimilarity means that no line from the old\r
-file made it into the new one.</p>\r
+file made it into the new one.</p></div>\r
</div>\r
-<h2>combined diff format</h2>\r
+<h2 id="_combined_diff_format">combined diff format</h2>\r
<div class="sectionbody">\r
-<p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
+<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
<em>--cc</em> option to produce <em>combined diff</em>. For showing a merge commit\r
with "git log -p", this is the default format.\r
-A <em>combined diff</em> format looks like this:</p>\r
+A <em>combined diff</em> format looks like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>diff --combined describe.c\r
initialized = 1;\r
for_each_ref(get_name);</tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --combined file</tt></pre>\r
</div></div>\r
-<p>or like this (when <em>--cc</em> option is used):</p>\r
+<div class="para"><p>or like this (when <em>--cc</em> option is used):</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>diff --c file</tt></pre>\r
new file mode <mode>\r
deleted file mode <mode>,<mode></tt></pre>\r
</div></div>\r
-<p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
+<div class="para"><p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
the <mode> is different from the rest. Extended headers with\r
information about detected contents movement (renames and\r
copying detection) are designed to work with diff of two\r
-<tree-ish> and are not used by combined diff format.</p>\r
+<tree-ish> and are not used by combined diff format.</p></div>\r
</li>\r
<li>\r
<p>\r
<pre><tt>--- a/file\r
+++ b/file</tt></pre>\r
</div></div>\r
-<p>Similar to two-line header for traditional <em>unified</em> diff\r
+<div class="para"><p>Similar to two-line header for traditional <em>unified</em> diff\r
format, <tt>/dev/null</tt> is used to signal created or deleted\r
-files.</p>\r
+files.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</tt></pre>\r
</div></div>\r
-<p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
-header for combined diff format.</p>\r
+<div class="para"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
+header for combined diff format.</p></div>\r
</li>\r
-</ol>\r
-<p>Unlike the traditional <em>unified</em> diff format, which shows two\r
+</ol></div>\r
+<div class="para"><p>Unlike the traditional <em>unified</em> diff format, which shows two\r
files A and B with a single column that has <tt>-</tt> (minus —\r
appears in A but removed in B), <tt>+</tt> (plus — missing in A but\r
added to B), or <tt>" "</tt> (space — unchanged) prefix, this format\r
compares two or more files file1, file2,… with one file X, and\r
shows how X differs from each of fileN. One column for each of\r
fileN is prepended to the output line to note how X's line is\r
-different from it.</p>\r
-<p>A <tt>-</tt> character in the column N means that the line appears in\r
+different from it.</p></div>\r
+<div class="para"><p>A <tt>-</tt> character in the column N means that the line appears in\r
fileN but it does not appear in the result. A <tt>+</tt> character\r
in the column N means that the line appears in the last file,\r
and fileN does not have that line (in other words, the line was\r
-added, from the point of view of that parent).</p>\r
-<p>In the above example output, the function signature was changed\r
+added, from the point of view of that parent).</p></div>\r
+<div class="para"><p>In the above example output, the function signature was changed\r
from both files (hence two <tt>-</tt> removals from both file1 and\r
-file2, plus <tt>++</tt> to mean one line that was added does not appear\r
+file2, plus <tt><tt>+</tt> to mean one line that was added does not appear\r
in either file1 nor file2). Also two other lines are the same\r
-from file1 but do not appear in file2 (hence prefixed with <tt> +</tt>).</p>\r
-<p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
+from file1 but do not appear in file2 (hence prefixed with <tt> </tt></tt>).</p></div>\r
+<div class="para"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
merge commit with the merge result (i.e. file1..fileN are the\r
parents). When shown by <tt>git diff-files -c</tt>, it compares the\r
two unresolved merge parents with the working tree file\r
(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka\r
-"their version").</p>\r
+"their version").</p></div>\r
</div>\r
-<h2>other diff formats</h2>\r
+<h2 id="_other_diff_formats">other diff formats</h2>\r
<div class="sectionbody">\r
-<p>The <tt>--summary</tt> option describes newly added, deleted, renamed and\r
+<div class="para"><p>The <tt>--summary</tt> option describes newly added, deleted, renamed and\r
copied files. The <tt>--stat</tt> option adds diffstat(1) graph to the\r
output. These options can be combined with other options, such as\r
-<tt>-p</tt>, and are meant for human consumption.</p>\r
-<p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output\r
+<tt>-p</tt>, and are meant for human consumption.</p></div>\r
+<div class="para"><p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output\r
formats the pathnames compactly by combining common prefix and suffix of\r
the pathnames. For example, a change that moves <tt>arch/i386/Makefile</tt> to\r
-<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p>\r
+<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>arch/{i386 => x86}/Makefile | 4 +--</tt></pre>\r
</div></div>\r
-<p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed\r
+<div class="para"><p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed\r
for easier machine consumption. An entry in <tt>--numstat</tt> output looks\r
-like this:</p>\r
+like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>1 2 README\r
3 1 arch/{i386 => x86}/Makefile</tt></pre>\r
</div></div>\r
-<p>That is, from left to right:</p>\r
-<ol>\r
+<div class="para"><p>That is, from left to right:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
the number of added lines;\r
a newline.\r
</p>\r
</li>\r
-</ol>\r
-<p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p>\r
+</ol></div>\r
+<div class="para"><p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>1 2 README NUL\r
3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</tt></pre>\r
</div></div>\r
-<p>That is:</p>\r
-<ol>\r
+<div class="para"><p>That is:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
the number of added lines;\r
a NUL.\r
</p>\r
</li>\r
-</ol>\r
-<p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow\r
+</ol></div>\r
+<div class="para"><p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow\r
scripts that read the output to tell if the current record being read is\r
a single-path record or a rename/copy record without reading ahead.\r
After reading added and deleted lines, reading up to <tt>NUL</tt> would yield\r
-the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p>\r
+the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:40 UTC\r
+Last updated 2008-07-06 05:16:43 UTC\r
</div>\r
</div>\r
</body>\r
Compares the files in the working tree and the index. When paths
are specified, compares only those named paths. Otherwise all
entries in the index are compared. The output format is the
-same as for `git-diff-index` and `git-diff-tree`.
+same as for 'git-diff-index' and 'git-diff-tree'.
OPTIONS
-------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-diff-index(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git diff-index</em> [-m] [--cached] [<common diff options>] <tree-ish> [<path>…]</p>\r
+<div class="para"><p><em>git diff-index</em> [-m] [--cached] [<common diff options>] <tree-ish> [<path>…]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Compares the content and mode of the blobs found via a tree\r
+<div class="para"><p>Compares the content and mode of the blobs found via a tree\r
object with the content of the current index and, optionally\r
ignoring the stat state of the file on disk. When paths are\r
specified, compares only those named paths. Otherwise all\r
-entries in the index are compared.</p>\r
+entries in the index are compared.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-p\r
</dt>\r
Do not show any source or destination prefix.\r
</p>\r
</dd>\r
-</dl>\r
-<p>For more detailed explanation on these common options, see also\r
-<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>For more detailed explanation on these common options, see also\r
+<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<tree-ish>\r
</dt>\r
<p>\r
By default, files recorded in the index but not checked\r
out are reported as deleted. This flag makes\r
- <tt>git-diff-index</tt> say that all non-checked-out files are up\r
+ <em>git-diff-index</em> say that all non-checked-out files are up\r
to date.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Output format</h2>\r
+<h2 id="_output_format">Output format</h2>\r
<div class="sectionbody">\r
-<p>The output format from "git-diff-index", "git-diff-tree",\r
-"git-diff-files" and "git diff --raw" are very similar.</p>\r
-<p>These commands all compare two sets of things; what is\r
-compared differs:</p>\r
-<dl>\r
+<div class="para"><p>The output format from "git-diff-index", "git-diff-tree",\r
+"git-diff-files" and "git diff --raw" are very similar.</p></div>\r
+<div class="para"><p>These commands all compare two sets of things; what is\r
+compared differs:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
git-diff-index <tree-ish>\r
</dt>\r
compares the index and the files on the filesystem.\r
</p>\r
</dd>\r
-</dl>\r
-<p>An output line is formatted this way:</p>\r
+</dl></div>\r
+<div class="para"><p>An output line is formatted this way:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0\r
delete :100644 000000 1234567... 0000000... D file5\r
unmerged :000000 000000 0000000... 0000000... U file6</tt></pre>\r
</div></div>\r
-<p>That is, from the left to the right:</p>\r
-<ol>\r
+<div class="para"><p>That is, from the left to the right:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
a colon.\r
an LF or a NUL when <em>-z</em> option is used, to terminate the record.\r
</p>\r
</li>\r
-</ol>\r
-<p><sha1> is shown as all 0's if a file is new on the filesystem\r
-and it is out of sync with the index.</p>\r
-<p>Example:</p>\r
+</ol></div>\r
+<div class="para"><p><sha1> is shown as all 0's if a file is new on the filesystem\r
+and it is out of sync with the index.</p></div>\r
+<div class="para"><p>Example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 5be4a4...... 000000...... M file.c</tt></pre>\r
</div></div>\r
-<p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
+<div class="para"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>,\r
-respectively.</p>\r
+respectively.</p></div>\r
</div>\r
-<h2>diff format for merges</h2>\r
+<h2 id="_diff_format_for_merges">diff format for merges</h2>\r
<div class="sectionbody">\r
-<p>"git-diff-tree", "git-diff-files" and "git-diff --raw"\r
+<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff --raw"\r
can take <em>-c</em> or <em>--cc</em> option\r
to generate diff output also for merge commits. The output differs\r
-from the format described above in the following way:</p>\r
-<ol>\r
+from the format described above in the following way:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
there is a colon for each parent\r
single path, only for "dst"\r
</p>\r
</li>\r
-</ol>\r
-<p>Example:</p>\r
+</ol></div>\r
+<div class="para"><p>Example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</tt></pre>\r
</div></div>\r
-<p>Note that <em>combined diff</em> lists only files which were modified from\r
-all parents.</p>\r
+<div class="para"><p>Note that <em>combined diff</em> lists only files which were modified from\r
+all parents.</p></div>\r
</div>\r
-<h2>Generating patches with -p</h2>\r
+<h2 id="_generating_patches_with_p">Generating patches with -p</h2>\r
<div class="sectionbody">\r
-<p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
+<div class="para"><p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
with a <em>-p</em> option, "git diff" without the <em>--raw</em> option, or\r
"git log" with the "-p" option, they\r
do not produce the output described above; instead they produce a\r
patch file. You can customize the creation of such patches via the\r
-GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p>\r
-<p>What the -p option produces is slightly different from the traditional\r
-diff format.</p>\r
-<ol>\r
+GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p></div>\r
+<div class="para"><p>What the -p option produces is slightly different from the traditional\r
+diff format.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --git a/file1 b/file2</tt></pre>\r
</div></div>\r
-<p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
+<div class="para"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
involved. Especially, even for a creation or a deletion,\r
-<tt>/dev/null</tt> is _not_ used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p>\r
-<p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
+<tt>/dev/null</tt> is <em>not</em> used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p></div>\r
+<div class="para"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
name of the source file of the rename/copy and the name of\r
-the file that rename/copy produces, respectively.</p>\r
+the file that rename/copy produces, respectively.</p></div>\r
</li>\r
<li>\r
<p>\r
pathname is put in double quotes.\r
</p>\r
</li>\r
-</ol>\r
-<p>The similarity index is the percentage of unchanged lines, and\r
+</ol></div>\r
+<div class="para"><p>The similarity index is the percentage of unchanged lines, and\r
the dissimilarity index is the percentage of changed lines. It\r
is a rounded down integer, followed by a percent sign. The\r
similarity index value of 100% is thus reserved for two equal\r
files, while 100% dissimilarity means that no line from the old\r
-file made it into the new one.</p>\r
+file made it into the new one.</p></div>\r
</div>\r
-<h2>combined diff format</h2>\r
+<h2 id="_combined_diff_format">combined diff format</h2>\r
<div class="sectionbody">\r
-<p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
+<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
<em>--cc</em> option to produce <em>combined diff</em>. For showing a merge commit\r
with "git log -p", this is the default format.\r
-A <em>combined diff</em> format looks like this:</p>\r
+A <em>combined diff</em> format looks like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>diff --combined describe.c\r
initialized = 1;\r
for_each_ref(get_name);</tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --combined file</tt></pre>\r
</div></div>\r
-<p>or like this (when <em>--cc</em> option is used):</p>\r
+<div class="para"><p>or like this (when <em>--cc</em> option is used):</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>diff --c file</tt></pre>\r
new file mode <mode>\r
deleted file mode <mode>,<mode></tt></pre>\r
</div></div>\r
-<p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
+<div class="para"><p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
the <mode> is different from the rest. Extended headers with\r
information about detected contents movement (renames and\r
copying detection) are designed to work with diff of two\r
-<tree-ish> and are not used by combined diff format.</p>\r
+<tree-ish> and are not used by combined diff format.</p></div>\r
</li>\r
<li>\r
<p>\r
<pre><tt>--- a/file\r
+++ b/file</tt></pre>\r
</div></div>\r
-<p>Similar to two-line header for traditional <em>unified</em> diff\r
+<div class="para"><p>Similar to two-line header for traditional <em>unified</em> diff\r
format, <tt>/dev/null</tt> is used to signal created or deleted\r
-files.</p>\r
+files.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</tt></pre>\r
</div></div>\r
-<p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
-header for combined diff format.</p>\r
+<div class="para"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
+header for combined diff format.</p></div>\r
</li>\r
-</ol>\r
-<p>Unlike the traditional <em>unified</em> diff format, which shows two\r
+</ol></div>\r
+<div class="para"><p>Unlike the traditional <em>unified</em> diff format, which shows two\r
files A and B with a single column that has <tt>-</tt> (minus —\r
appears in A but removed in B), <tt>+</tt> (plus — missing in A but\r
added to B), or <tt>" "</tt> (space — unchanged) prefix, this format\r
compares two or more files file1, file2,… with one file X, and\r
shows how X differs from each of fileN. One column for each of\r
fileN is prepended to the output line to note how X's line is\r
-different from it.</p>\r
-<p>A <tt>-</tt> character in the column N means that the line appears in\r
+different from it.</p></div>\r
+<div class="para"><p>A <tt>-</tt> character in the column N means that the line appears in\r
fileN but it does not appear in the result. A <tt>+</tt> character\r
in the column N means that the line appears in the last file,\r
and fileN does not have that line (in other words, the line was\r
-added, from the point of view of that parent).</p>\r
-<p>In the above example output, the function signature was changed\r
+added, from the point of view of that parent).</p></div>\r
+<div class="para"><p>In the above example output, the function signature was changed\r
from both files (hence two <tt>-</tt> removals from both file1 and\r
-file2, plus <tt>++</tt> to mean one line that was added does not appear\r
+file2, plus <tt><tt>+</tt> to mean one line that was added does not appear\r
in either file1 nor file2). Also two other lines are the same\r
-from file1 but do not appear in file2 (hence prefixed with <tt> +</tt>).</p>\r
-<p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
+from file1 but do not appear in file2 (hence prefixed with <tt> </tt></tt>).</p></div>\r
+<div class="para"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
merge commit with the merge result (i.e. file1..fileN are the\r
parents). When shown by <tt>git diff-files -c</tt>, it compares the\r
two unresolved merge parents with the working tree file\r
(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka\r
-"their version").</p>\r
+"their version").</p></div>\r
</div>\r
-<h2>other diff formats</h2>\r
+<h2 id="_other_diff_formats">other diff formats</h2>\r
<div class="sectionbody">\r
-<p>The <tt>--summary</tt> option describes newly added, deleted, renamed and\r
+<div class="para"><p>The <tt>--summary</tt> option describes newly added, deleted, renamed and\r
copied files. The <tt>--stat</tt> option adds diffstat(1) graph to the\r
output. These options can be combined with other options, such as\r
-<tt>-p</tt>, and are meant for human consumption.</p>\r
-<p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output\r
+<tt>-p</tt>, and are meant for human consumption.</p></div>\r
+<div class="para"><p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output\r
formats the pathnames compactly by combining common prefix and suffix of\r
the pathnames. For example, a change that moves <tt>arch/i386/Makefile</tt> to\r
-<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p>\r
+<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>arch/{i386 => x86}/Makefile | 4 +--</tt></pre>\r
</div></div>\r
-<p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed\r
+<div class="para"><p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed\r
for easier machine consumption. An entry in <tt>--numstat</tt> output looks\r
-like this:</p>\r
+like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>1 2 README\r
3 1 arch/{i386 => x86}/Makefile</tt></pre>\r
</div></div>\r
-<p>That is, from left to right:</p>\r
-<ol>\r
+<div class="para"><p>That is, from left to right:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
the number of added lines;\r
a newline.\r
</p>\r
</li>\r
-</ol>\r
-<p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p>\r
+</ol></div>\r
+<div class="para"><p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>1 2 README NUL\r
3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</tt></pre>\r
</div></div>\r
-<p>That is:</p>\r
-<ol>\r
+<div class="para"><p>That is:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
the number of added lines;\r
a NUL.\r
</p>\r
</li>\r
-</ol>\r
-<p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow\r
+</ol></div>\r
+<div class="para"><p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow\r
scripts that read the output to tell if the current record being read is\r
a single-path record or a rename/copy record without reading ahead.\r
After reading added and deleted lines, reading up to <tt>NUL</tt> would yield\r
-the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p>\r
+the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></div>\r
</div>\r
-<h2>Operating Modes</h2>\r
+<h2 id="_operating_modes">Operating Modes</h2>\r
<div class="sectionbody">\r
-<p>You can choose whether you want to trust the index file entirely\r
+<div class="para"><p>You can choose whether you want to trust the index file entirely\r
(using the <em>--cached</em> flag) or ask the diff logic to show any files\r
that don't match the stat state as being "tentatively changed". Both\r
-of these operations are very useful indeed.</p>\r
+of these operations are very useful indeed.</p></div>\r
</div>\r
-<h2>Cached Mode</h2>\r
+<h2 id="_cached_mode">Cached Mode</h2>\r
<div class="sectionbody">\r
-<p>If <em>--cached</em> is specified, it allows you to ask:</p>\r
+<div class="para"><p>If <em>--cached</em> is specified, it allows you to ask:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>show me the differences between HEAD and the current index\r
-contents (the ones I'd write using `git-write-tree`)</tt></pre>\r
+contents (the ones I'd write using 'git-write-tree')</tt></pre>\r
</div></div>\r
-<p>For example, let's say that you have worked on your working directory, updated\r
+<div class="para"><p>For example, let's say that you have worked on your working directory, updated\r
some files in the index and are ready to commit. You want to see exactly\r
<strong>what</strong> you are going to commit, without having to write a new tree\r
-object and compare it that way, and to do that, you just do</p>\r
+object and compare it that way, and to do that, you just do</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git diff-index --cached HEAD</tt></pre>\r
</div></div>\r
-<p>Example: let's say I had renamed <tt>commit.c</tt> to <tt>git-commit.c</tt>, and I had\r
+<div class="para"><p>Example: let's say I had renamed <tt>commit.c</tt> to <tt>git-commit.c</tt>, and I had\r
done an <tt>update-index</tt> to make that effective in the index file.\r
<tt>git diff-files</tt> wouldn't show anything at all, since the index file\r
-matches my working directory. But doing a <tt>git-diff-index</tt> does:</p>\r
+matches my working directory. But doing a <em>git-diff-index</em> does:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>torvalds@ppc970:~/git> git diff-index --cached HEAD\r
-100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c\r
+100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c</tt></pre>\r
</div></div>\r
-<p>You can see easily that the above is a rename.</p>\r
-<p>In fact, <tt>git diff-index --cached</tt> <strong>should</strong> always be entirely equivalent to\r
-actually doing a <tt>git-write-tree</tt> and comparing that. Except this one is much\r
-nicer for the case where you just want to check where you are.</p>\r
-<p>So doing a <tt>git-diff-index --cached</tt> is basically very useful when you are\r
+<div class="para"><p>You can see easily that the above is a rename.</p></div>\r
+<div class="para"><p>In fact, <tt>git diff-index --cached</tt> <strong>should</strong> always be entirely equivalent to\r
+actually doing a <em>git-write-tree</em> and comparing that. Except this one is much\r
+nicer for the case where you just want to check where you are.</p></div>\r
+<div class="para"><p>So doing a <em>git-diff-index --cached</em> is basically very useful when you are\r
asking yourself "what have I already marked for being committed, and\r
-what's the difference to a previous tree".</p>\r
+what's the difference to a previous tree".</p></div>\r
</div>\r
-<h2>Non-cached Mode</h2>\r
+<h2 id="_non_cached_mode">Non-cached Mode</h2>\r
<div class="sectionbody">\r
-<p>The "non-cached" mode takes a different approach, and is potentially\r
+<div class="para"><p>The "non-cached" mode takes a different approach, and is potentially\r
the more useful of the two in that what it does can't be emulated with\r
-a <tt>git-write-tree</tt> + <tt>git-diff-tree</tt>. Thus that's the default mode.\r
-The non-cached version asks the question:</p>\r
+a <em>git-write-tree</em> + <em>git-diff-tree</em>. Thus that's the default mode.\r
+The non-cached version asks the question:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>show me the differences between HEAD and the currently checked out\r
tree - index contents _and_ files that aren't up-to-date</tt></pre>\r
</div></div>\r
-<p>which is obviously a very useful question too, since that tells you what\r
-you <strong>could</strong> commit. Again, the output matches the <tt>git-diff-tree -r</tt>\r
-output to a tee, but with a twist.</p>\r
-<p>The twist is that if some file doesn't match the index, we don't have\r
+<div class="para"><p>which is obviously a very useful question too, since that tells you what\r
+you <strong>could</strong> commit. Again, the output matches the <em>git-diff-tree -r</em>\r
+output to a tee, but with a twist.</p></div>\r
+<div class="para"><p>The twist is that if some file doesn't match the index, we don't have\r
a backing store thing for it, and we use the magic "all-zero" sha1 to\r
show that. So let's say that you have edited <tt>kernel/sched.c</tt>, but\r
-have not actually done a <tt>git-update-index</tt> on it yet - there is no\r
-"object" associated with the new state, and you get:</p>\r
+have not actually done a <em>git-update-index</em> on it yet - there is no\r
+"object" associated with the new state, and you get:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>torvalds@ppc970:~/v2.6/linux> git diff-index HEAD\r
*100644->100664 blob 7476bb......->000000...... kernel/sched.c</tt></pre>\r
</div></div>\r
-<p>i.e., it shows that the tree has changed, and that <tt>kernel/sched.c</tt> has is\r
+<div class="para"><p>i.e., it shows that the tree has changed, and that <tt>kernel/sched.c</tt> has is\r
not up-to-date and may contain new stuff. The all-zero sha1 means that to\r
get the real diff, you need to look at the object in the working directory\r
-directly rather than do an object-to-object diff.</p>\r
+directly rather than do an object-to-object diff.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
-<td class="content">As with other commands of this type, <tt>git-diff-index</tt> does not\r
+<td class="content">As with other commands of this type, <em>git-diff-index</em> does not\r
actually look at the contents of the file at all. So maybe\r
<tt>kernel/sched.c</tt> hasn't actually changed, and it's just that you\r
touched it. In either case, it's a note that you need to\r
-<tt>git-update-index</tt> it to make the index be in sync.</td>\r
+<em>git-update-index</em> it to make the index be in sync.</td>\r
</tr></table>\r
</div>\r
<div class="admonitionblock">\r
</tr></table>\r
</div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:40 UTC\r
+Last updated 2008-07-06 05:16:43 UTC\r
</div>\r
</div>\r
</body>\r
-m::
By default, files recorded in the index but not checked
out are reported as deleted. This flag makes
- `git-diff-index` say that all non-checked-out files are up
+ 'git-diff-index' say that all non-checked-out files are up
to date.
Output format
If '--cached' is specified, it allows you to ask:
show me the differences between HEAD and the current index
- contents (the ones I'd write using `git-write-tree`)
+ contents (the ones I'd write using 'git-write-tree')
For example, let's say that you have worked on your working directory, updated
some files in the index and are ready to commit. You want to see exactly
Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had
done an `update-index` to make that effective in the index file.
`git diff-files` wouldn't show anything at all, since the index file
-matches my working directory. But doing a `git-diff-index` does:
+matches my working directory. But doing a 'git-diff-index' does:
torvalds@ppc970:~/git> git diff-index --cached HEAD
-100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c
You can see easily that the above is a rename.
In fact, `git diff-index --cached` *should* always be entirely equivalent to
-actually doing a `git-write-tree` and comparing that. Except this one is much
+actually doing a 'git-write-tree' and comparing that. Except this one is much
nicer for the case where you just want to check where you are.
-So doing a `git-diff-index --cached` is basically very useful when you are
+So doing a 'git-diff-index --cached' is basically very useful when you are
asking yourself "what have I already marked for being committed, and
what's the difference to a previous tree".
---------------
The "non-cached" mode takes a different approach, and is potentially
the more useful of the two in that what it does can't be emulated with
-a `git-write-tree` + `git-diff-tree`. Thus that's the default mode.
+a 'git-write-tree' + 'git-diff-tree'. Thus that's the default mode.
The non-cached version asks the question:
show me the differences between HEAD and the currently checked out
tree - index contents _and_ files that aren't up-to-date
which is obviously a very useful question too, since that tells you what
-you *could* commit. Again, the output matches the `git-diff-tree -r`
+you *could* commit. Again, the output matches the 'git-diff-tree -r'
output to a tee, but with a twist.
The twist is that if some file doesn't match the index, we don't have
a backing store thing for it, and we use the magic "all-zero" sha1 to
show that. So let's say that you have edited `kernel/sched.c`, but
-have not actually done a `git-update-index` on it yet - there is no
+have not actually done a 'git-update-index' on it yet - there is no
"object" associated with the new state, and you get:
torvalds@ppc970:~/v2.6/linux> git diff-index HEAD
get the real diff, you need to look at the object in the working directory
directly rather than do an object-to-object diff.
-NOTE: As with other commands of this type, `git-diff-index` does not
+NOTE: As with other commands of this type, 'git-diff-index' does not
actually look at the contents of the file at all. So maybe
`kernel/sched.c` hasn't actually changed, and it's just that you
touched it. In either case, it's a note that you need to
-`git-update-index` it to make the index be in sync.
+'git-update-index' it to make the index be in sync.
NOTE: You can have a mixture of files show up as "has been updated"
and "is still dirty in the working directory" together. You can always
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-diff-tree(1)</title>\r
</head>\r
[-t] [-r] [-c | --cc] [--root] [<common diff options>]\r
<tree-ish> [<tree-ish>] [<path>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Compares the content and mode of the blobs found via two tree objects.</p>\r
-<p>If there is only one <tree-ish> given, the commit is compared with its parents\r
-(see --stdin below).</p>\r
-<p>Note that <tt>git-diff-tree</tt> can use the tree encapsulated in a commit object.</p>\r
+<div class="para"><p>Compares the content and mode of the blobs found via two tree objects.</p></div>\r
+<div class="para"><p>If there is only one <tree-ish> given, the commit is compared with its parents\r
+(see --stdin below).</p></div>\r
+<div class="para"><p>Note that <em>git-diff-tree</em> can use the tree encapsulated in a commit object.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-p\r
</dt>\r
Do not show any source or destination prefix.\r
</p>\r
</dd>\r
-</dl>\r
-<p>For more detailed explanation on these common options, see also\r
-<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>For more detailed explanation on these common options, see also\r
+<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<tree-ish>\r
</dt>\r
reads either one <commit> or a pair of <tree-ish>\r
separated with a single space from its standard input.\r
</p>\r
-<p>When a single commit is given on one line of such input, it compares\r
+<div class="para"><p>When a single commit is given on one line of such input, it compares\r
the commit with its parents. The following flags further affects its\r
behavior. This does not apply to the case where two <tree-ish>\r
-separated with a single space are given.</p>\r
+separated with a single space are given.</p></div>\r
</dd>\r
<dt>\r
-m\r
</dt>\r
<dd>\r
<p>\r
- By default, <tt>git-diff-tree --stdin</tt> does not show\r
+ By default, <em>git-diff-tree --stdin</em> does not show\r
differences for merge commits. With this flag, it shows\r
differences to that commit from all of its parents. See\r
also <em>-c</em>.\r
</dt>\r
<dd>\r
<p>\r
- By default, <tt>git-diff-tree --stdin</tt> shows differences,\r
+ By default, <em>git-diff-tree --stdin</em> shows differences,\r
either in machine-readable form (without <em>-p</em>) or in patch\r
form (with <em>-p</em>). This output can be suppressed. It is\r
only useful with <em>-v</em> flag.\r
</dt>\r
<dd>\r
<p>\r
- This flag causes <tt>git-diff-tree --stdin</tt> to also show\r
+ This flag causes <em>git-diff-tree --stdin</em> to also show\r
the commit message before the differences.\r
</p>\r
</dd>\r
<em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
When omitted, the format defaults to <em>medium</em>.\r
</p>\r
-<p>Note: you can specify the default pretty format in the repository\r
-configuration (see <a href="git-config.html">git-config(1)</a>).</p>\r
+<div class="para"><p>Note: you can specify the default pretty format in the repository\r
+configuration (see <a href="git-config.html">git-config(1)</a>).</p></div>\r
</dd>\r
<dt>\r
--abbrev-commit\r
digits can be specified with "--abbrev=<n>" (which also modifies\r
diff output, if it is displayed).\r
</p>\r
-<p>This should make "--pretty=oneline" a whole lot more readable for\r
-people using 80-column terminals.</p>\r
+<div class="para"><p>This should make "--pretty=oneline" a whole lot more readable for\r
+people using 80-column terminals.</p></div>\r
</dd>\r
<dt>\r
--encoding[=<encoding>]\r
</dt>\r
<dd>\r
<p>\r
- <tt>git-diff-tree</tt> outputs a line with the commit ID when\r
+ <em>git-diff-tree</em> outputs a line with the commit ID when\r
applicable. This flag suppressed the commit ID output.\r
</p>\r
</dd>\r
if the diff itself is empty.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>PRETTY FORMATS</h2>\r
+<h2 id="_pretty_formats">PRETTY FORMATS</h2>\r
<div class="sectionbody">\r
-<p>If the commit is a merge, and if the pretty-format\r
+<div class="para"><p>If the commit is a merge, and if the pretty-format\r
is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
inserted before the <em>Author:</em> line. This line begins with\r
"Merge: " and the sha1s of ancestral commits are printed,\r
necessarily be the list of the <strong>direct</strong> parent commits if you\r
have limited your view of history: for example, if you are\r
only interested in changes related to a certain directory or\r
-file.</p>\r
-<p>Here are some additional details for each format:</p>\r
-<ul>\r
+file.</p></div>\r
+<div class="para"><p>Here are some additional details for each format:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>oneline</em>\r
<div class="content">\r
<pre><tt><sha1> <title line></tt></pre>\r
</div></div>\r
-<p>This is designed to be as compact as possible.</p>\r
+<div class="para"><p>This is designed to be as compact as possible.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-Date: <date></tt></pre>\r
+Date: <author date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-AuthorDate: <date & time>\r
+AuthorDate: <author date>\r
Commit: <committer>\r
-CommitDate: <date & time></tt></pre>\r
+CommitDate: <committer date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>From <sha1> <date>\r
From: <author>\r
-Date: <date & time>\r
+Date: <author date>\r
Subject: [PATCH] <title line></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<p>\r
<em>raw</em>\r
</p>\r
-<p>The <em>raw</em> format shows the entire commit exactly as\r
+<div class="para"><p>The <em>raw</em> format shows the entire commit exactly as\r
stored in the commit object. Notably, the SHA1s are\r
displayed in full, regardless of whether --abbrev or\r
--no-abbrev are used, and <em>parents</em> information show the\r
true parent commits, without taking grafts nor history\r
-simplification into account.</p>\r
+simplification into account.</p></div>\r
</li>\r
<li>\r
<p>\r
<em>format:</em>\r
</p>\r
-<p>The <em>format:</em> format allows you to specify which information\r
+<div class="para"><p>The <em>format:</em> format allows you to specify which information\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
-instead of <em>\n</em>.</p>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
-would show something like this:</p>\r
+instead of <em>\n</em>.</p></div>\r
+<div class="para"><p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
+would show something like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
</tt></pre>\r
</div></div>\r
-<p>The placeholders are:</p>\r
-<ul>\r
+<div class="para"><p>The placeholders are:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>%H</em>: commit hash\r
<em>%x00</em>: print a byte from a hex code\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</li>\r
<li>\r
<p>\r
<em>tformat:</em>\r
</p>\r
-<p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
+<div class="para"><p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
provides "terminator" semantics instead of "separator" semantics. In\r
other words, each commit has the message terminator character (usually a\r
newline) appended, rather than a separator placed between entries.\r
This means that the final entry of a single-line format will be properly\r
terminated with a new line, just as the "oneline" format does.\r
-For example:</p>\r
+For example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -2 --pretty=format:%h 4da45bef \\r
7134973</tt></pre>\r
</div></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Limiting Output</h2>\r
+<h2 id="_limiting_output">Limiting Output</h2>\r
<div class="sectionbody">\r
-<p>If you're only interested in differences in a subset of files, for\r
-example some architecture-specific files, you might do:</p>\r
+<div class="para"><p>If you're only interested in differences in a subset of files, for\r
+example some architecture-specific files, you might do:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git diff-tree -r <tree-ish> <tree-ish> arch/ia64 include/asm-ia64</tt></pre>\r
</div></div>\r
-<p>and it will only show you what changed in those two directories.</p>\r
-<p>Or if you are searching for what changed in just <tt>kernel/sched.c</tt>, just do</p>\r
+<div class="para"><p>and it will only show you what changed in those two directories.</p></div>\r
+<div class="para"><p>Or if you are searching for what changed in just <tt>kernel/sched.c</tt>, just do</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git diff-tree -r <tree-ish> <tree-ish> kernel/sched.c</tt></pre>\r
</div></div>\r
-<p>and it will ignore all differences to other files.</p>\r
-<p>The pattern is always the prefix, and is matched exactly. There are no\r
+<div class="para"><p>and it will ignore all differences to other files.</p></div>\r
+<div class="para"><p>The pattern is always the prefix, and is matched exactly. There are no\r
wildcards. Even stricter, it has to match a complete path component.\r
I.e. "foo" does not pick up <tt>foobar.h</tt>. "foo" does match <tt>foo/bar.h</tt>\r
-so it can be used to name subdirectories.</p>\r
-<p>An example of normal usage is:</p>\r
+so it can be used to name subdirectories.</p></div>\r
+<div class="para"><p>An example of normal usage is:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>torvalds@ppc970:~/git> git diff-tree 5319e4......\r
*100664->100664 blob ac348b.......->a01513....... git-fsck-objects.c</tt></pre>\r
</div></div>\r
-<p>which tells you that the last commit changed just one file (it's from\r
-this one:</p>\r
+<div class="para"><p>which tells you that the last commit changed just one file (it's from\r
+this one:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>commit 3c6f7ca19ad4043e9e72fa94106f352897e651a8\r
Once I do the reference tracking, I'll also make it print out all the\r
HEAD commits it finds, which is even more interesting.</tt></pre>\r
</div></div>\r
-<p>in case you care).</p>\r
+<div class="para"><p>in case you care).</p></div>\r
</div>\r
-<h2>Output format</h2>\r
+<h2 id="_output_format">Output format</h2>\r
<div class="sectionbody">\r
-<p>The output format from "git-diff-index", "git-diff-tree",\r
-"git-diff-files" and "git diff --raw" are very similar.</p>\r
-<p>These commands all compare two sets of things; what is\r
-compared differs:</p>\r
-<dl>\r
+<div class="para"><p>The output format from "git-diff-index", "git-diff-tree",\r
+"git-diff-files" and "git diff --raw" are very similar.</p></div>\r
+<div class="para"><p>These commands all compare two sets of things; what is\r
+compared differs:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
git-diff-index <tree-ish>\r
</dt>\r
compares the index and the files on the filesystem.\r
</p>\r
</dd>\r
-</dl>\r
-<p>An output line is formatted this way:</p>\r
+</dl></div>\r
+<div class="para"><p>An output line is formatted this way:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0\r
delete :100644 000000 1234567... 0000000... D file5\r
unmerged :000000 000000 0000000... 0000000... U file6</tt></pre>\r
</div></div>\r
-<p>That is, from the left to the right:</p>\r
-<ol>\r
+<div class="para"><p>That is, from the left to the right:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
a colon.\r
an LF or a NUL when <em>-z</em> option is used, to terminate the record.\r
</p>\r
</li>\r
-</ol>\r
-<p><sha1> is shown as all 0's if a file is new on the filesystem\r
-and it is out of sync with the index.</p>\r
-<p>Example:</p>\r
+</ol></div>\r
+<div class="para"><p><sha1> is shown as all 0's if a file is new on the filesystem\r
+and it is out of sync with the index.</p></div>\r
+<div class="para"><p>Example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 5be4a4...... 000000...... M file.c</tt></pre>\r
</div></div>\r
-<p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
+<div class="para"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>,\r
-respectively.</p>\r
+respectively.</p></div>\r
</div>\r
-<h2>diff format for merges</h2>\r
+<h2 id="_diff_format_for_merges">diff format for merges</h2>\r
<div class="sectionbody">\r
-<p>"git-diff-tree", "git-diff-files" and "git-diff --raw"\r
+<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff --raw"\r
can take <em>-c</em> or <em>--cc</em> option\r
to generate diff output also for merge commits. The output differs\r
-from the format described above in the following way:</p>\r
-<ol>\r
+from the format described above in the following way:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
there is a colon for each parent\r
single path, only for "dst"\r
</p>\r
</li>\r
-</ol>\r
-<p>Example:</p>\r
+</ol></div>\r
+<div class="para"><p>Example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</tt></pre>\r
</div></div>\r
-<p>Note that <em>combined diff</em> lists only files which were modified from\r
-all parents.</p>\r
+<div class="para"><p>Note that <em>combined diff</em> lists only files which were modified from\r
+all parents.</p></div>\r
</div>\r
-<h2>Generating patches with -p</h2>\r
+<h2 id="_generating_patches_with_p">Generating patches with -p</h2>\r
<div class="sectionbody">\r
-<p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
+<div class="para"><p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
with a <em>-p</em> option, "git diff" without the <em>--raw</em> option, or\r
"git log" with the "-p" option, they\r
do not produce the output described above; instead they produce a\r
patch file. You can customize the creation of such patches via the\r
-GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p>\r
-<p>What the -p option produces is slightly different from the traditional\r
-diff format.</p>\r
-<ol>\r
+GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p></div>\r
+<div class="para"><p>What the -p option produces is slightly different from the traditional\r
+diff format.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --git a/file1 b/file2</tt></pre>\r
</div></div>\r
-<p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
+<div class="para"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
involved. Especially, even for a creation or a deletion,\r
-<tt>/dev/null</tt> is _not_ used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p>\r
-<p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
+<tt>/dev/null</tt> is <em>not</em> used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p></div>\r
+<div class="para"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
name of the source file of the rename/copy and the name of\r
-the file that rename/copy produces, respectively.</p>\r
+the file that rename/copy produces, respectively.</p></div>\r
</li>\r
<li>\r
<p>\r
pathname is put in double quotes.\r
</p>\r
</li>\r
-</ol>\r
-<p>The similarity index is the percentage of unchanged lines, and\r
+</ol></div>\r
+<div class="para"><p>The similarity index is the percentage of unchanged lines, and\r
the dissimilarity index is the percentage of changed lines. It\r
is a rounded down integer, followed by a percent sign. The\r
similarity index value of 100% is thus reserved for two equal\r
files, while 100% dissimilarity means that no line from the old\r
-file made it into the new one.</p>\r
+file made it into the new one.</p></div>\r
</div>\r
-<h2>combined diff format</h2>\r
+<h2 id="_combined_diff_format">combined diff format</h2>\r
<div class="sectionbody">\r
-<p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
+<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
<em>--cc</em> option to produce <em>combined diff</em>. For showing a merge commit\r
with "git log -p", this is the default format.\r
-A <em>combined diff</em> format looks like this:</p>\r
+A <em>combined diff</em> format looks like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>diff --combined describe.c\r
initialized = 1;\r
for_each_ref(get_name);</tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --combined file</tt></pre>\r
</div></div>\r
-<p>or like this (when <em>--cc</em> option is used):</p>\r
+<div class="para"><p>or like this (when <em>--cc</em> option is used):</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>diff --c file</tt></pre>\r
new file mode <mode>\r
deleted file mode <mode>,<mode></tt></pre>\r
</div></div>\r
-<p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
+<div class="para"><p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
the <mode> is different from the rest. Extended headers with\r
information about detected contents movement (renames and\r
copying detection) are designed to work with diff of two\r
-<tree-ish> and are not used by combined diff format.</p>\r
+<tree-ish> and are not used by combined diff format.</p></div>\r
</li>\r
<li>\r
<p>\r
<pre><tt>--- a/file\r
+++ b/file</tt></pre>\r
</div></div>\r
-<p>Similar to two-line header for traditional <em>unified</em> diff\r
+<div class="para"><p>Similar to two-line header for traditional <em>unified</em> diff\r
format, <tt>/dev/null</tt> is used to signal created or deleted\r
-files.</p>\r
+files.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</tt></pre>\r
</div></div>\r
-<p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
-header for combined diff format.</p>\r
+<div class="para"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
+header for combined diff format.</p></div>\r
</li>\r
-</ol>\r
-<p>Unlike the traditional <em>unified</em> diff format, which shows two\r
+</ol></div>\r
+<div class="para"><p>Unlike the traditional <em>unified</em> diff format, which shows two\r
files A and B with a single column that has <tt>-</tt> (minus —\r
appears in A but removed in B), <tt>+</tt> (plus — missing in A but\r
added to B), or <tt>" "</tt> (space — unchanged) prefix, this format\r
compares two or more files file1, file2,… with one file X, and\r
shows how X differs from each of fileN. One column for each of\r
fileN is prepended to the output line to note how X's line is\r
-different from it.</p>\r
-<p>A <tt>-</tt> character in the column N means that the line appears in\r
+different from it.</p></div>\r
+<div class="para"><p>A <tt>-</tt> character in the column N means that the line appears in\r
fileN but it does not appear in the result. A <tt>+</tt> character\r
in the column N means that the line appears in the last file,\r
and fileN does not have that line (in other words, the line was\r
-added, from the point of view of that parent).</p>\r
-<p>In the above example output, the function signature was changed\r
+added, from the point of view of that parent).</p></div>\r
+<div class="para"><p>In the above example output, the function signature was changed\r
from both files (hence two <tt>-</tt> removals from both file1 and\r
-file2, plus <tt>++</tt> to mean one line that was added does not appear\r
+file2, plus <tt><tt>+</tt> to mean one line that was added does not appear\r
in either file1 nor file2). Also two other lines are the same\r
-from file1 but do not appear in file2 (hence prefixed with <tt> +</tt>).</p>\r
-<p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
+from file1 but do not appear in file2 (hence prefixed with <tt> </tt></tt>).</p></div>\r
+<div class="para"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
merge commit with the merge result (i.e. file1..fileN are the\r
parents). When shown by <tt>git diff-files -c</tt>, it compares the\r
two unresolved merge parents with the working tree file\r
(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka\r
-"their version").</p>\r
+"their version").</p></div>\r
</div>\r
-<h2>other diff formats</h2>\r
+<h2 id="_other_diff_formats">other diff formats</h2>\r
<div class="sectionbody">\r
-<p>The <tt>--summary</tt> option describes newly added, deleted, renamed and\r
+<div class="para"><p>The <tt>--summary</tt> option describes newly added, deleted, renamed and\r
copied files. The <tt>--stat</tt> option adds diffstat(1) graph to the\r
output. These options can be combined with other options, such as\r
-<tt>-p</tt>, and are meant for human consumption.</p>\r
-<p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output\r
+<tt>-p</tt>, and are meant for human consumption.</p></div>\r
+<div class="para"><p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output\r
formats the pathnames compactly by combining common prefix and suffix of\r
the pathnames. For example, a change that moves <tt>arch/i386/Makefile</tt> to\r
-<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p>\r
+<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>arch/{i386 => x86}/Makefile | 4 +--</tt></pre>\r
</div></div>\r
-<p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed\r
+<div class="para"><p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed\r
for easier machine consumption. An entry in <tt>--numstat</tt> output looks\r
-like this:</p>\r
+like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>1 2 README\r
3 1 arch/{i386 => x86}/Makefile</tt></pre>\r
</div></div>\r
-<p>That is, from left to right:</p>\r
-<ol>\r
+<div class="para"><p>That is, from left to right:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
the number of added lines;\r
a newline.\r
</p>\r
</li>\r
-</ol>\r
-<p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p>\r
+</ol></div>\r
+<div class="para"><p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>1 2 README NUL\r
3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</tt></pre>\r
</div></div>\r
-<p>That is:</p>\r
-<ol>\r
+<div class="para"><p>That is:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
the number of added lines;\r
a NUL.\r
</p>\r
</li>\r
-</ol>\r
-<p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow\r
+</ol></div>\r
+<div class="para"><p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow\r
scripts that read the output to tell if the current record being read is\r
a single-path record or a rename/copy record without reading ahead.\r
After reading added and deleted lines, reading up to <tt>NUL</tt> would yield\r
-the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p>\r
+the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:41 UTC\r
+Last updated 2008-07-06 05:16:44 UTC\r
</div>\r
</div>\r
</body>\r
If there is only one <tree-ish> given, the commit is compared with its parents
(see --stdin below).
-Note that `git-diff-tree` can use the tree encapsulated in a commit object.
+Note that 'git-diff-tree' can use the tree encapsulated in a commit object.
OPTIONS
-------
separated with a single space are given.
-m::
- By default, `git-diff-tree --stdin` does not show
+ By default, 'git-diff-tree --stdin' does not show
differences for merge commits. With this flag, it shows
differences to that commit from all of its parents. See
also '-c'.
-s::
- By default, `git-diff-tree --stdin` shows differences,
+ By default, 'git-diff-tree --stdin' shows differences,
either in machine-readable form (without '-p') or in patch
form (with '-p'). This output can be suppressed. It is
only useful with '-v' flag.
-v::
- This flag causes `git-diff-tree --stdin` to also show
+ This flag causes 'git-diff-tree --stdin' to also show
the commit message before the differences.
include::pretty-options.txt[]
--no-commit-id::
- `git-diff-tree` outputs a line with the commit ID when
+ 'git-diff-tree' outputs a line with the commit ID when
applicable. This flag suppressed the commit ID output.
-c::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-fast-export(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git fast-export [options]</em> | <em>git fast-import</em></p>\r
+<div class="para"><p><em>git fast-export [options]</em> | <em>git fast-import</em></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This program dumps the given revisions in a form suitable to be piped\r
-into <tt>git-fast-import</tt>.</p>\r
-<p>You can use it as a human readable bundle replacement (see\r
+<div class="para"><p>This program dumps the given revisions in a form suitable to be piped\r
+into <em>git-fast-import</em>.</p></div>\r
+<div class="para"><p>You can use it as a human readable bundle replacement (see\r
<a href="git-bundle.html">git-bundle(1)</a>), or as a kind of an interactive\r
-<tt>git-filter-branch</tt>.</p>\r
+<em>git-filter-branch</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--progress=<n>\r
</dt>\r
<dd>\r
<p>\r
Insert <em>progress</em> statements every <n> objects, to be shown by\r
- <tt>git-fast-import</tt> during import.\r
+ <em>git-fast-import</em> during import.\r
</p>\r
</dd>\r
<dt>\r
after the export can change the tag names (which can also happen\r
when excluding revisions) the signatures will not match.\r
</p>\r
-<p>When asking to <em>abort</em> (which is the default), this program will die\r
+<div class="para"><p>When asking to <em>abort</em> (which is the default), this program will die\r
when encountering a signed tag. With <em>strip</em>, the tags will be made\r
unsigned, with <em>verbatim</em>, they will be silently exported\r
-and with <em>warn</em>, they will be exported, but you will see a warning.</p>\r
+and with <em>warn</em>, they will be exported, but you will see a warning.</p></div>\r
</dd>\r
<dt>\r
--export-marks=<file>\r
<file>. The input file must exist, must be readable, and\r
must use the same format as produced by --export-marks.\r
</p>\r
-<p>Any commits that have already been marked will not be exported again.\r
+<div class="para"><p>Any commits that have already been marked will not be exported again.\r
If the backend uses a similar --import-marks file, this allows for\r
incremental bidirectional exporting of the repository by keeping the\r
-marks the same across runs.</p>\r
+marks the same across runs.</p></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git fast-export --all | (cd /empty/repository && git fast-import)</tt></pre>\r
</div></div>\r
-<p>This will export the whole repository and import it into the existing\r
+<div class="para"><p>This will export the whole repository and import it into the existing\r
empty repository. Except for reencoding commits that are not in\r
-UTF-8, it would be a one-to-one mirror.</p>\r
+UTF-8, it would be a one-to-one mirror.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git fast-export master~5..master |\r
sed "s|refs/heads/master|refs/heads/other|" |\r
git fast-import</tt></pre>\r
</div></div>\r
-<p>This makes a new branch called <em>other</em> from <em>master~5..master</em>\r
-(i.e. if <em>master</em> has linear history, it will take the last 5 commits).</p>\r
-<p>Note that this assumes that none of the blobs and commit messages\r
+<div class="para"><p>This makes a new branch called <em>other</em> from <em>master~5..master</em>\r
+(i.e. if <em>master</em> has linear history, it will take the last 5 commits).</p></div>\r
+<div class="para"><p>Note that this assumes that none of the blobs and commit messages\r
referenced by that revision range contains the string\r
-<em>refs/heads/master</em>.</p>\r
+<em>refs/heads/master</em>.</p></div>\r
</div>\r
-<h2>Limitations</h2>\r
+<h2 id="_limitations">Limitations</h2>\r
<div class="sectionbody">\r
-<p>Since <tt>git-fast-import</tt> cannot tag trees, you will not be\r
+<div class="para"><p>Since <em>git-fast-import</em> cannot tag trees, you will not be\r
able to export the linux-2.6.git repository completely, as it contains\r
-a tag referencing a tree instead of a commit.</p>\r
+a tag referencing a tree instead of a commit.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Johannes E. Schindelin <johannes.schindelin@gmx.de>.</p>\r
+<div class="para"><p>Written by Johannes E. Schindelin <johannes.schindelin@gmx.de>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Johannes E. Schindelin <johannes.schindelin@gmx.de>.</p>\r
+<div class="para"><p>Documentation by Johannes E. Schindelin <johannes.schindelin@gmx.de>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:42 UTC\r
+Last updated 2008-07-06 05:16:44 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
This program dumps the given revisions in a form suitable to be piped
-into `git-fast-import`.
+into 'git-fast-import'.
You can use it as a human readable bundle replacement (see
linkgit:git-bundle[1]), or as a kind of an interactive
-`git-filter-branch`.
+'git-filter-branch'.
OPTIONS
-------
--progress=<n>::
Insert 'progress' statements every <n> objects, to be shown by
- `git-fast-import` during import.
+ 'git-fast-import' during import.
--signed-tags=(verbatim|warn|strip|abort)::
Specify how to handle signed tags. Since any transformation
Limitations
-----------
-Since `git-fast-import` cannot tag trees, you will not be
+Since 'git-fast-import' cannot tag trees, you will not be
able to export the linux-2.6.git repository completely, as it contains
a tag referencing a tree instead of a commit.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-fast-import(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>frontend | <em>git fast-import</em> [options]</p>\r
+<div class="para"><p>frontend | <em>git fast-import</em> [options]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This program is usually not what the end user wants to run directly.\r
+<div class="para"><p>This program is usually not what the end user wants to run directly.\r
Most end users want to use one of the existing frontend programs,\r
which parses a specific type of foreign source and feeds the contents\r
-stored there to <tt>git-fast-import</tt>.</p>\r
-<p>fast-import reads a mixed command/data stream from standard input and\r
+stored there to <em>git-fast-import</em>.</p></div>\r
+<div class="para"><p>fast-import reads a mixed command/data stream from standard input and\r
writes one or more packfiles directly into the current repository.\r
When EOF is received on standard input, fast import writes out\r
updated branch and tag refs, fully updating the current repository\r
-with the newly imported data.</p>\r
-<p>The fast-import backend itself can import into an empty repository (one that\r
-has already been initialized by <tt>git-init</tt>) or incrementally\r
+with the newly imported data.</p></div>\r
+<div class="para"><p>The fast-import backend itself can import into an empty repository (one that\r
+has already been initialized by <em>git-init</em>) or incrementally\r
update an existing populated repository. Whether or not incremental\r
imports are supported from a particular foreign source depends on\r
-the frontend program in use.</p>\r
+the frontend program in use.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--date-format=<fmt>\r
</dt>\r
This information may be useful after importing projects\r
whose total object set exceeds the 4 GiB packfile limit,\r
as these commits can be used as edge points during calls\r
- to <tt>git-pack-objects</tt>.\r
+ to <em>git-pack-objects</em>.\r
</p>\r
</dd>\r
<dt>\r
is currently the default, but can be disabled with --quiet.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Performance</h2>\r
+<h2 id="_performance">Performance</h2>\r
<div class="sectionbody">\r
-<p>The design of fast-import allows it to import large projects in a minimum\r
+<div class="para"><p>The design of fast-import allows it to import large projects in a minimum\r
amount of memory usage and processing time. Assuming the frontend\r
is able to keep up with fast-import and feed it a constant stream of data,\r
import times for projects holding 10+ years of history and containing\r
100,000+ individual commits are generally completed in just 1-2\r
-hours on quite modest (~$2,000 USD) hardware.</p>\r
-<p>Most bottlenecks appear to be in foreign source data access (the\r
+hours on quite modest (~$2,000 USD) hardware.</p></div>\r
+<div class="para"><p>Most bottlenecks appear to be in foreign source data access (the\r
source just cannot extract revisions fast enough) or disk IO (fast-import\r
writes as fast as the disk will take the data). Imports will run\r
faster if the source data is stored on a different drive than the\r
-destination Git repository (due to less IO contention).</p>\r
+destination Git repository (due to less IO contention).</p></div>\r
</div>\r
-<h2>Development Cost</h2>\r
+<h2 id="_development_cost">Development Cost</h2>\r
<div class="sectionbody">\r
-<p>A typical frontend for fast-import tends to weigh in at approximately 200\r
+<div class="para"><p>A typical frontend for fast-import tends to weigh in at approximately 200\r
lines of Perl/Python/Ruby code. Most developers have been able to\r
create working importers in just a couple of hours, even though it\r
is their first exposure to fast-import, and sometimes even to Git. This is\r
an ideal situation, given that most conversion tools are throw-away\r
-(use once, and never look back).</p>\r
+(use once, and never look back).</p></div>\r
</div>\r
-<h2>Parallel Operation</h2>\r
+<h2 id="_parallel_operation">Parallel Operation</h2>\r
<div class="sectionbody">\r
-<p>Like <tt>git-push</tt> or <tt>git-fetch</tt>, imports handled by fast-import are safe to\r
+<div class="para"><p>Like <em>git-push</em> or <em>git-fetch</em>, imports handled by fast-import are safe to\r
run alongside parallel <tt>git repack -a -d</tt> or <tt>git gc</tt> invocations,\r
-or any other Git operation (including <tt>git-prune</tt>, as loose objects\r
-are never used by fast-import).</p>\r
-<p>fast-import does not lock the branch or tag refs it is actively importing.\r
+or any other Git operation (including <em>git-prune</em>, as loose objects\r
+are never used by fast-import).</p></div>\r
+<div class="para"><p>fast-import does not lock the branch or tag refs it is actively importing.\r
After the import, during its ref update phase, fast-import tests each\r
existing branch ref to verify the update will be a fast-forward\r
update (the commit stored in the ref is contained in the new\r
history of the commit to be written). If the update is not a\r
fast-forward update, fast-import will skip updating that ref and instead\r
prints a warning message. fast-import will always attempt to update all\r
-branch refs, and does not stop on the first failure.</p>\r
-<p>Branch updates can be forced with --force, but its recommended that\r
+branch refs, and does not stop on the first failure.</p></div>\r
+<div class="para"><p>Branch updates can be forced with --force, but its recommended that\r
this only be used on an otherwise quiet repository. Using --force\r
-is not necessary for an initial import into an empty repository.</p>\r
+is not necessary for an initial import into an empty repository.</p></div>\r
</div>\r
-<h2>Technical Discussion</h2>\r
+<h2 id="_technical_discussion">Technical Discussion</h2>\r
<div class="sectionbody">\r
-<p>fast-import tracks a set of branches in memory. Any branch can be created\r
+<div class="para"><p>fast-import tracks a set of branches in memory. Any branch can be created\r
or modified at any point during the import process by sending a\r
<tt>commit</tt> command on the input stream. This design allows a frontend\r
program to process an unlimited number of branches simultaneously,\r
generating commits in the order they are available from the source\r
-data. It also simplifies the frontend programs considerably.</p>\r
-<p>fast-import does not use or alter the current working directory, or any\r
+data. It also simplifies the frontend programs considerably.</p></div>\r
+<div class="para"><p>fast-import does not use or alter the current working directory, or any\r
file within it. (It does however update the current Git repository,\r
as referenced by <tt>GIT_DIR</tt>.) Therefore an import frontend may use\r
the working directory for its own purposes, such as extracting file\r
revisions from the foreign source. This ignorance of the working\r
directory also allows fast-import to run very quickly, as it does not\r
need to perform any costly file update operations when switching\r
-between branches.</p>\r
+between branches.</p></div>\r
</div>\r
-<h2>Input Format</h2>\r
+<h2 id="_input_format">Input Format</h2>\r
<div class="sectionbody">\r
-<p>With the exception of raw file data (which Git does not interpret)\r
+<div class="para"><p>With the exception of raw file data (which Git does not interpret)\r
the fast-import input format is text (ASCII) based. This text based\r
format simplifies development and debugging of frontend programs,\r
especially when a higher level language such as Perl, Python or\r
-Ruby is being used.</p>\r
-<p>fast-import is very strict about its input. Where we say SP below we mean\r
+Ruby is being used.</p></div>\r
+<div class="para"><p>fast-import is very strict about its input. Where we say SP below we mean\r
<strong>exactly</strong> one space. Likewise LF means one (and only one) linefeed.\r
Supplying additional whitespace characters will cause unexpected\r
results, such as branch names or file names with leading or trailing\r
spaces in their name, or early termination of fast-import when it encounters\r
-unexpected input.</p>\r
-<h3>Stream Comments</h3>\r
-<p>To aid in debugging frontends fast-import ignores any line that\r
+unexpected input.</p></div>\r
+<h3 id="_stream_comments">Stream Comments</h3><div style="clear:left"></div>\r
+<div class="para"><p>To aid in debugging frontends fast-import ignores any line that\r
begins with <tt>#</tt> (ASCII pound/hash) up to and including the line\r
ending <tt>LF</tt>. A comment line may contain any sequence of bytes\r
that does not contain an LF and therefore may be used to include\r
any detailed debugging information that might be specific to the\r
-frontend and useful when inspecting a fast-import data stream.</p>\r
-<h3>Date Formats</h3>\r
-<p>The following date formats are supported. A frontend should select\r
+frontend and useful when inspecting a fast-import data stream.</p></div>\r
+<h3 id="_date_formats">Date Formats</h3><div style="clear:left"></div>\r
+<div class="para"><p>The following date formats are supported. A frontend should select\r
the format it will use for this import by passing the format name\r
-in the --date-format=<fmt> command line option.</p>\r
-<dl>\r
+in the --date-format=<fmt> command line option.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<tt>raw</tt>\r
</dt>\r
It is also fast-import's default format, if --date-format was\r
not specified.\r
</p>\r
-<p>The time of the event is specified by <tt><time></tt> as the number of\r
+<div class="para"><p>The time of the event is specified by <tt><time></tt> as the number of\r
seconds since the UNIX epoch (midnight, Jan 1, 1970, UTC) and is\r
-written as an ASCII decimal integer.</p>\r
-<p>The local offset is specified by <tt><offutc></tt> as a positive or negative\r
+written as an ASCII decimal integer.</p></div>\r
+<div class="para"><p>The local offset is specified by <tt><offutc></tt> as a positive or negative\r
offset from UTC. For example EST (which is 5 hours behind UTC)\r
would be expressed in <tt><tz></tt> by “-0500” while UTC is “+0000”.\r
The local offset does not affect <tt><time></tt>; it is used only as an\r
-advisement to help formatting routines display the timestamp.</p>\r
-<p>If the local offset is not available in the source material, use\r
+advisement to help formatting routines display the timestamp.</p></div>\r
+<div class="para"><p>If the local offset is not available in the source material, use\r
“+0000”, or the most common local offset. For example many\r
organizations have a CVS repository which has only ever been accessed\r
by users who are located in the same location and timezone. In this\r
-case a reasonable offset from UTC could be assumed.</p>\r
-<p>Unlike the <tt>rfc2822</tt> format, this format is very strict. Any\r
-variation in formatting will cause fast-import to reject the value.</p>\r
+case a reasonable offset from UTC could be assumed.</p></div>\r
+<div class="para"><p>Unlike the <tt>rfc2822</tt> format, this format is very strict. Any\r
+variation in formatting will cause fast-import to reject the value.</p></div>\r
</dd>\r
<dt>\r
<tt>rfc2822</tt>\r
<p>\r
This is the standard email format as described by RFC 2822.\r
</p>\r
-<p>An example value is “Tue Feb 6 11:22:18 2007 -0500”. The Git\r
+<div class="para"><p>An example value is “Tue Feb 6 11:22:18 2007 -0500”. The Git\r
parser is accurate, but a little on the lenient side. It is the\r
-same parser used by <tt>git-am</tt> when applying patches\r
-received from email.</p>\r
-<p>Some malformed strings may be accepted as valid dates. In some of\r
+same parser used by <em>git-am</em> when applying patches\r
+received from email.</p></div>\r
+<div class="para"><p>Some malformed strings may be accepted as valid dates. In some of\r
these cases Git will still be able to obtain the correct date from\r
the malformed string. There are also some types of malformed\r
strings which Git will parse wrong, and yet consider valid.\r
-Seriously malformed strings will be rejected.</p>\r
-<p>Unlike the <tt>raw</tt> format above, the timezone/UTC offset information\r
+Seriously malformed strings will be rejected.</p></div>\r
+<div class="para"><p>Unlike the <tt>raw</tt> format above, the timezone/UTC offset information\r
contained in an RFC 2822 date string is used to adjust the date\r
value to UTC prior to storage. Therefore it is important that\r
-this information be as accurate as possible.</p>\r
-<p>If the source material uses RFC 2822 style dates,\r
+this information be as accurate as possible.</p></div>\r
+<div class="para"><p>If the source material uses RFC 2822 style dates,\r
the frontend should let fast-import handle the parsing and conversion\r
(rather than attempting to do it itself) as the Git parser has\r
-been well tested in the wild.</p>\r
-<p>Frontends should prefer the <tt>raw</tt> format if the source material\r
+been well tested in the wild.</p></div>\r
+<div class="para"><p>Frontends should prefer the <tt>raw</tt> format if the source material\r
already uses UNIX-epoch format, can be coaxed to give dates in that\r
format, or its format is easily convertible to it, as there is no\r
-ambiguity in parsing.</p>\r
+ambiguity in parsing.</p></div>\r
</dd>\r
<dt>\r
<tt>now</tt>\r
Always use the current time and timezone. The literal\r
<tt>now</tt> must always be supplied for <tt><when></tt>.\r
</p>\r
-<p>This is a toy format. The current time and timezone of this system\r
+<div class="para"><p>This is a toy format. The current time and timezone of this system\r
is always copied into the identity string at the time it is being\r
created by fast-import. There is no way to specify a different time or\r
-timezone.</p>\r
-<p>This particular format is supplied as its short to implement and\r
+timezone.</p></div>\r
+<div class="para"><p>This particular format is supplied as its short to implement and\r
may be useful to a process that wants to create a new commit\r
right now, without needing to use a working directory or\r
-<tt>git-update-index</tt>.</p>\r
-<p>If separate <tt>author</tt> and <tt>committer</tt> commands are used in a <tt>commit</tt>\r
+<em>git-update-index</em>.</p></div>\r
+<div class="para"><p>If separate <tt>author</tt> and <tt>committer</tt> commands are used in a <tt>commit</tt>\r
the timestamps may not match, as the system clock will be polled\r
twice (once for each command). The only way to ensure that both\r
author and committer identity information has the same timestamp\r
is to omit <tt>author</tt> (thus copying from <tt>committer</tt>) or to use a\r
-date format other than <tt>now</tt>.</p>\r
+date format other than <tt>now</tt>.</p></div>\r
</dd>\r
-</dl>\r
-<h3>Commands</h3>\r
-<p>fast-import accepts several commands to update the current repository\r
+</dl></div>\r
+<h3 id="_commands">Commands</h3><div style="clear:left"></div>\r
+<div class="para"><p>fast-import accepts several commands to update the current repository\r
and control the current import process. More detailed discussion\r
-(with examples) of each command follows later.</p>\r
-<dl>\r
+(with examples) of each command follows later.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<tt>commit</tt>\r
</dt>\r
to perform an import.\r
</p>\r
</dd>\r
-</dl>\r
-<h3><tt>commit</tt></h3>\r
-<p>Create or update a branch with a new commit, recording one logical\r
-change to the project.</p>\r
+</dl></div>\r
+<h3 id="_tt_commit_tt"><tt>commit</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Create or update a branch with a new commit, recording one logical\r
+change to the project.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'commit' SP <ref> LF\r
(filemodify | filedelete | filecopy | filerename | filedeleteall)*\r
LF?</tt></pre>\r
</div></div>\r
-<p>where <tt><ref></tt> is the name of the branch to make the commit on.\r
+<div class="para"><p>where <tt><ref></tt> is the name of the branch to make the commit on.\r
Typically branch names are prefixed with <tt>refs/heads/</tt> in\r
Git, so importing the CVS branch symbol <tt>RELENG-1_0</tt> would use\r
<tt>refs/heads/RELENG-1_0</tt> for the value of <tt><ref></tt>. The value of\r
<tt><ref></tt> must be a valid refname in Git. As <tt>LF</tt> is not valid in\r
-a Git refname, no quoting or escaping syntax is supported here.</p>\r
-<p>A <tt>mark</tt> command may optionally appear, requesting fast-import to save a\r
+a Git refname, no quoting or escaping syntax is supported here.</p></div>\r
+<div class="para"><p>A <tt>mark</tt> command may optionally appear, requesting fast-import to save a\r
reference to the newly created commit for future use by the frontend\r
(see below for format). It is very common for frontends to mark\r
every commit they create, thereby allowing future branch creation\r
-from any imported commit.</p>\r
-<p>The <tt>data</tt> command following <tt>committer</tt> must supply the commit\r
+from any imported commit.</p></div>\r
+<div class="para"><p>The <tt>data</tt> command following <tt>committer</tt> must supply the commit\r
message (see below for <tt>data</tt> command syntax). To import an empty\r
commit message use a 0 length data. Commit messages are free-form\r
and are not interpreted by Git. Currently they must be encoded in\r
-UTF-8, as fast-import does not permit other encodings to be specified.</p>\r
-<p>Zero or more <tt>filemodify</tt>, <tt>filedelete</tt>, <tt>filecopy</tt>, <tt>filerename</tt>\r
+UTF-8, as fast-import does not permit other encodings to be specified.</p></div>\r
+<div class="para"><p>Zero or more <tt>filemodify</tt>, <tt>filedelete</tt>, <tt>filecopy</tt>, <tt>filerename</tt>\r
and <tt>filedeleteall</tt> commands\r
may be included to update the contents of the branch prior to\r
creating the commit. These commands may be supplied in any order.\r
However it is recommended that a <tt>filedeleteall</tt> command precede\r
all <tt>filemodify</tt>, <tt>filecopy</tt> and <tt>filerename</tt> commands in the same\r
commit, as <tt>filedeleteall</tt>\r
-wipes the branch clean (see below).</p>\r
-<p>The <tt>LF</tt> after the command is optional (it used to be required).</p>\r
-<h4><tt>author</tt></h4>\r
-<p>An <tt>author</tt> command may optionally appear, if the author information\r
+wipes the branch clean (see below).</p></div>\r
+<div class="para"><p>The <tt>LF</tt> after the command is optional (it used to be required).</p></div>\r
+<h4 id="_tt_author_tt"><tt>author</tt></h4>\r
+<div class="para"><p>An <tt>author</tt> command may optionally appear, if the author information\r
might differ from the committer information. If <tt>author</tt> is omitted\r
then fast-import will automatically use the committer's information for\r
the author portion of the commit. See below for a description of\r
-the fields in <tt>author</tt>, as they are identical to <tt>committer</tt>.</p>\r
-<h4><tt>committer</tt></h4>\r
-<p>The <tt>committer</tt> command indicates who made this commit, and when\r
-they made it.</p>\r
-<p>Here <tt><name></tt> is the person's display name (for example\r
+the fields in <tt>author</tt>, as they are identical to <tt>committer</tt>.</p></div>\r
+<h4 id="_tt_committer_tt"><tt>committer</tt></h4>\r
+<div class="para"><p>The <tt>committer</tt> command indicates who made this commit, and when\r
+they made it.</p></div>\r
+<div class="para"><p>Here <tt><name></tt> is the person's display name (for example\r
“Com M Itter”) and <tt><email></tt> is the person's email address\r
(“cm@example.com”). <tt>LT</tt> and <tt>GT</tt> are the literal less-than (\x3c)\r
and greater-than (\x3e) symbols. These are required to delimit\r
the email address from the other fields in the line. Note that\r
<tt><name></tt> is free-form and may contain any sequence of bytes, except\r
-<tt>LT</tt> and <tt>LF</tt>. It is typically UTF-8 encoded.</p>\r
-<p>The time of the change is specified by <tt><when></tt> using the date format\r
+<tt>LT</tt> and <tt>LF</tt>. It is typically UTF-8 encoded.</p></div>\r
+<div class="para"><p>The time of the change is specified by <tt><when></tt> using the date format\r
that was selected by the --date-format=<fmt> command line option.\r
See “Date Formats” above for the set of supported formats, and\r
-their syntax.</p>\r
-<h4><tt>from</tt></h4>\r
-<p>The <tt>from</tt> command is used to specify the commit to initialize\r
+their syntax.</p></div>\r
+<h4 id="_tt_from_tt"><tt>from</tt></h4>\r
+<div class="para"><p>The <tt>from</tt> command is used to specify the commit to initialize\r
this branch from. This revision will be the first ancestor of the\r
-new commit.</p>\r
-<p>Omitting the <tt>from</tt> command in the first commit of a new branch\r
+new commit.</p></div>\r
+<div class="para"><p>Omitting the <tt>from</tt> command in the first commit of a new branch\r
will cause fast-import to create that commit with no ancestor. This\r
tends to be desired only for the initial commit of a project.\r
If the frontend creates all files from scratch when making a new\r
the commit with an empty tree.\r
Omitting the <tt>from</tt> command on existing branches is usually desired,\r
as the current commit on that branch is automatically assumed to\r
-be the first ancestor of the new commit.</p>\r
-<p>As <tt>LF</tt> is not valid in a Git refname or SHA-1 expression, no\r
-quoting or escaping syntax is supported within <tt><committish></tt>.</p>\r
-<p>Here <tt><committish></tt> is any of the following:</p>\r
-<ul>\r
+be the first ancestor of the new commit.</p></div>\r
+<div class="para"><p>As <tt>LF</tt> is not valid in a Git refname or SHA-1 expression, no\r
+quoting or escaping syntax is supported within <tt><committish></tt>.</p></div>\r
+<div class="para"><p>Here <tt><committish></tt> is any of the following:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
The name of an existing branch already in fast-import's internal branch\r
<p>\r
A mark reference, <tt>:<idnum></tt>, where <tt><idnum></tt> is the mark number.\r
</p>\r
-<p>The reason fast-import uses <tt>:</tt> to denote a mark reference is this character\r
+<div class="para"><p>The reason fast-import uses <tt>:</tt> to denote a mark reference is this character\r
is not legal in a Git branch name. The leading <tt>:</tt> makes it easy\r
to distinguish between the mark 42 (<tt>:42</tt>) and the branch 42 (<tt>42</tt>\r
or <tt>refs/heads/42</tt>), or an abbreviated SHA-1 which happened to\r
-consist only of base-10 digits.</p>\r
-<p>Marks must be declared (via <tt>mark</tt>) before they can be used.</p>\r
+consist only of base-10 digits.</p></div>\r
+<div class="para"><p>Marks must be declared (via <tt>mark</tt>) before they can be used.</p></div>\r
</li>\r
<li>\r
<p>\r
“SPECIFYING REVISIONS” in <a href="git-rev-parse.html">git-rev-parse(1)</a> for details.\r
</p>\r
</li>\r
-</ul>\r
-<p>The special case of restarting an incremental import from the\r
-current branch value should be written as:</p>\r
+</ul></div>\r
+<div class="para"><p>The special case of restarting an incremental import from the\r
+current branch value should be written as:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> from refs/heads/branch^0</tt></pre>\r
</div></div>\r
-<p>The <tt>^0</tt> suffix is necessary as fast-import does not permit a branch to\r
+<div class="para"><p>The <tt>^0</tt> suffix is necessary as fast-import does not permit a branch to\r
start from itself, and the branch is created in memory before the\r
<tt>from</tt> command is even read from the input. Adding <tt>^0</tt> will force\r
fast-import to resolve the commit through Git's revision parsing library,\r
rather than its internal branch table, thereby loading in the\r
-existing value of the branch.</p>\r
-<h4><tt>merge</tt></h4>\r
-<p>Includes one additional ancestor commit. If the <tt>from</tt> command is\r
+existing value of the branch.</p></div>\r
+<h4 id="_tt_merge_tt"><tt>merge</tt></h4>\r
+<div class="para"><p>Includes one additional ancestor commit. If the <tt>from</tt> command is\r
omitted when creating a new branch, the first <tt>merge</tt> commit will be\r
the first ancestor of the current commit, and the branch will start\r
out with no files. An unlimited number of <tt>merge</tt> commands per\r
However Git's other tools never create commits with more than 15\r
additional ancestors (forming a 16-way merge). For this reason\r
it is suggested that frontends do not use more than 15 <tt>merge</tt>\r
-commands per commit; 16, if starting a new, empty branch.</p>\r
-<p>Here <tt><committish></tt> is any of the commit specification expressions\r
-also accepted by <tt>from</tt> (see above).</p>\r
-<h4><tt>filemodify</tt></h4>\r
-<p>Included in a <tt>commit</tt> command to add a new file or change the\r
+commands per commit; 16, if starting a new, empty branch.</p></div>\r
+<div class="para"><p>Here <tt><committish></tt> is any of the commit specification expressions\r
+also accepted by <tt>from</tt> (see above).</p></div>\r
+<h4 id="_tt_filemodify_tt"><tt>filemodify</tt></h4>\r
+<div class="para"><p>Included in a <tt>commit</tt> command to add a new file or change the\r
content of an existing file. This command has two different means\r
-of specifying the content of the file.</p>\r
-<dl>\r
+of specifying the content of the file.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
External data format\r
</dt>\r
<div class="content">\r
<pre><tt> 'M' SP <mode> SP <dataref> SP <path> LF</tt></pre>\r
</div></div>\r
-<p>Here <tt><dataref></tt> can be either a mark reference (<tt>:<idnum></tt>)\r
+<div class="para"><p>Here <tt><dataref></tt> can be either a mark reference (<tt>:<idnum></tt>)\r
set by a prior <tt>blob</tt> command, or a full 40-byte SHA-1 of an\r
-existing Git blob object.</p>\r
+existing Git blob object.</p></div>\r
</dd>\r
<dt>\r
Inline data format\r
<pre><tt> 'M' SP <mode> SP 'inline' SP <path> LF\r
data</tt></pre>\r
</div></div>\r
-<p>See below for a detailed description of the <tt>data</tt> command.</p>\r
+<div class="para"><p>See below for a detailed description of the <tt>data</tt> command.</p></div>\r
</dd>\r
-</dl>\r
-<p>In both formats <tt><mode></tt> is the type of file entry, specified\r
-in octal. Git only supports the following modes:</p>\r
-<ul>\r
+</dl></div>\r
+<div class="para"><p>In both formats <tt><mode></tt> is the type of file entry, specified\r
+in octal. Git only supports the following modes:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<tt>100644</tt> or <tt>644</tt>: A normal (not-executable) file. The majority\r
<tt>120000</tt>: A symlink, the content of the file will be the link target.\r
</p>\r
</li>\r
-</ul>\r
-<p>In both formats <tt><path></tt> is the complete path of the file to be added\r
-(if not already existing) or modified (if already existing).</p>\r
-<p>A <tt><path></tt> string must use UNIX-style directory separators (forward\r
+</ul></div>\r
+<div class="para"><p>In both formats <tt><path></tt> is the complete path of the file to be added\r
+(if not already existing) or modified (if already existing).</p></div>\r
+<div class="para"><p>A <tt><path></tt> string must use UNIX-style directory separators (forward\r
slash <tt>/</tt>), may contain any byte other than <tt>LF</tt>, and must not\r
-start with double quote (<tt>"</tt>).</p>\r
-<p>If an <tt>LF</tt> or double quote must be encoded into <tt><path></tt> shell-style\r
-quoting should be used, e.g. <tt>"path/with\n and \" in it"</tt>.</p>\r
-<p>The value of <tt><path></tt> must be in canonical form. That is it must not:</p>\r
-<ul>\r
+start with double quote (<tt>"</tt>).</p></div>\r
+<div class="para"><p>If an <tt>LF</tt> or double quote must be encoded into <tt><path></tt> shell-style\r
+quoting should be used, e.g. <tt>"path/with\n and \" in it"</tt>.</p></div>\r
+<div class="para"><p>The value of <tt><path></tt> must be in canonical form. That is it must not:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
contain an empty directory component (e.g. <tt>foo//bar</tt> is invalid),\r
<tt>foo/../bar</tt> are invalid).\r
</p>\r
</li>\r
-</ul>\r
-<p>It is recommended that <tt><path></tt> always be encoded using UTF-8.</p>\r
-<h4><tt>filedelete</tt></h4>\r
-<p>Included in a <tt>commit</tt> command to remove a file or recursively\r
+</ul></div>\r
+<div class="para"><p>It is recommended that <tt><path></tt> always be encoded using UTF-8.</p></div>\r
+<h4 id="_tt_filedelete_tt"><tt>filedelete</tt></h4>\r
+<div class="para"><p>Included in a <tt>commit</tt> command to remove a file or recursively\r
delete an entire directory from the branch. If the file or directory\r
removal makes its parent directory empty, the parent directory will\r
be automatically removed too. This cascades up the tree until the\r
-first non-empty directory or the root is reached.</p>\r
+first non-empty directory or the root is reached.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'D' SP <path> LF</tt></pre>\r
</div></div>\r
-<p>here <tt><path></tt> is the complete path of the file or subdirectory to\r
+<div class="para"><p>here <tt><path></tt> is the complete path of the file or subdirectory to\r
be removed from the branch.\r
-See <tt>filemodify</tt> above for a detailed description of <tt><path></tt>.</p>\r
-<h4><tt>filecopy</tt></h4>\r
-<p>Recursively copies an existing file or subdirectory to a different\r
+See <tt>filemodify</tt> above for a detailed description of <tt><path></tt>.</p></div>\r
+<h4 id="_tt_filecopy_tt"><tt>filecopy</tt></h4>\r
+<div class="para"><p>Recursively copies an existing file or subdirectory to a different\r
location within the branch. The existing file or directory must\r
exist. If the destination exists it will be completely replaced\r
-by the content copied from the source.</p>\r
+by the content copied from the source.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'C' SP <path> SP <path> LF</tt></pre>\r
</div></div>\r
-<p>here the first <tt><path></tt> is the source location and the second\r
+<div class="para"><p>here the first <tt><path></tt> is the source location and the second\r
<tt><path></tt> is the destination. See <tt>filemodify</tt> above for a detailed\r
description of what <tt><path></tt> may look like. To use a source path\r
-that contains SP the path must be quoted.</p>\r
-<p>A <tt>filecopy</tt> command takes effect immediately. Once the source\r
+that contains SP the path must be quoted.</p></div>\r
+<div class="para"><p>A <tt>filecopy</tt> command takes effect immediately. Once the source\r
location has been copied to the destination any future commands\r
applied to the source location will not impact the destination of\r
-the copy.</p>\r
-<h4><tt>filerename</tt></h4>\r
-<p>Renames an existing file or subdirectory to a different location\r
+the copy.</p></div>\r
+<h4 id="_tt_filerename_tt"><tt>filerename</tt></h4>\r
+<div class="para"><p>Renames an existing file or subdirectory to a different location\r
within the branch. The existing file or directory must exist. If\r
-the destination exists it will be replaced by the source directory.</p>\r
+the destination exists it will be replaced by the source directory.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'R' SP <path> SP <path> LF</tt></pre>\r
</div></div>\r
-<p>here the first <tt><path></tt> is the source location and the second\r
+<div class="para"><p>here the first <tt><path></tt> is the source location and the second\r
<tt><path></tt> is the destination. See <tt>filemodify</tt> above for a detailed\r
description of what <tt><path></tt> may look like. To use a source path\r
-that contains SP the path must be quoted.</p>\r
-<p>A <tt>filerename</tt> command takes effect immediately. Once the source\r
+that contains SP the path must be quoted.</p></div>\r
+<div class="para"><p>A <tt>filerename</tt> command takes effect immediately. Once the source\r
location has been renamed to the destination any future commands\r
applied to the source location will create new files there and not\r
-impact the destination of the rename.</p>\r
-<p>Note that a <tt>filerename</tt> is the same as a <tt>filecopy</tt> followed by a\r
+impact the destination of the rename.</p></div>\r
+<div class="para"><p>Note that a <tt>filerename</tt> is the same as a <tt>filecopy</tt> followed by a\r
<tt>filedelete</tt> of the source location. There is a slight performance\r
advantage to using <tt>filerename</tt>, but the advantage is so small\r
that it is never worth trying to convert a delete/add pair in\r
source material into a rename for fast-import. This <tt>filerename</tt>\r
command is provided just to simplify frontends that already have\r
rename information and don't want bother with decomposing it into a\r
-<tt>filecopy</tt> followed by a <tt>filedelete</tt>.</p>\r
-<h4><tt>filedeleteall</tt></h4>\r
-<p>Included in a <tt>commit</tt> command to remove all files (and also all\r
+<tt>filecopy</tt> followed by a <tt>filedelete</tt>.</p></div>\r
+<h4 id="_tt_filedeleteall_tt"><tt>filedeleteall</tt></h4>\r
+<div class="para"><p>Included in a <tt>commit</tt> command to remove all files (and also all\r
directories) from the branch. This command resets the internal\r
branch structure to have no files in it, allowing the frontend\r
-to subsequently add all interesting files from scratch.</p>\r
+to subsequently add all interesting files from scratch.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'deleteall' LF</tt></pre>\r
</div></div>\r
-<p>This command is extremely useful if the frontend does not know\r
+<div class="para"><p>This command is extremely useful if the frontend does not know\r
(or does not care to know) what files are currently on the branch,\r
and therefore cannot generate the proper <tt>filedelete</tt> commands to\r
-update the content.</p>\r
-<p>Issuing a <tt>filedeleteall</tt> followed by the needed <tt>filemodify</tt>\r
+update the content.</p></div>\r
+<div class="para"><p>Issuing a <tt>filedeleteall</tt> followed by the needed <tt>filemodify</tt>\r
commands to set the correct content will produce the same results\r
as sending only the needed <tt>filemodify</tt> and <tt>filedelete</tt> commands.\r
The <tt>filedeleteall</tt> approach may however require fast-import to use slightly\r
more memory per active branch (less than 1 MiB for even most large\r
projects); so frontends that can easily obtain only the affected\r
-paths for a commit are encouraged to do so.</p>\r
-<h3><tt>mark</tt></h3>\r
-<p>Arranges for fast-import to save a reference to the current object, allowing\r
+paths for a commit are encouraged to do so.</p></div>\r
+<h3 id="_tt_mark_tt"><tt>mark</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Arranges for fast-import to save a reference to the current object, allowing\r
the frontend to recall this object at a future point in time, without\r
knowing its SHA-1. Here the current object is the object creation\r
command the <tt>mark</tt> command appears within. This can be <tt>commit</tt>,\r
-<tt>tag</tt>, and <tt>blob</tt>, but <tt>commit</tt> is the most common usage.</p>\r
+<tt>tag</tt>, and <tt>blob</tt>, but <tt>commit</tt> is the most common usage.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'mark' SP ':' <idnum> LF</tt></pre>\r
</div></div>\r
-<p>where <tt><idnum></tt> is the number assigned by the frontend to this mark.\r
+<div class="para"><p>where <tt><idnum></tt> is the number assigned by the frontend to this mark.\r
The value of <tt><idnum></tt> is expressed as an ASCII decimal integer.\r
The value 0 is reserved and cannot be used as\r
-a mark. Only values greater than or equal to 1 may be used as marks.</p>\r
-<p>New marks are created automatically. Existing marks can be moved\r
+a mark. Only values greater than or equal to 1 may be used as marks.</p></div>\r
+<div class="para"><p>New marks are created automatically. Existing marks can be moved\r
to another object simply by reusing the same <tt><idnum></tt> in another\r
-<tt>mark</tt> command.</p>\r
-<h3><tt>tag</tt></h3>\r
-<p>Creates an annotated tag referring to a specific commit. To create\r
-lightweight (non-annotated) tags see the <tt>reset</tt> command below.</p>\r
+<tt>mark</tt> command.</p></div>\r
+<h3 id="_tt_tag_tt"><tt>tag</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Creates an annotated tag referring to a specific commit. To create\r
+lightweight (non-annotated) tags see the <tt>reset</tt> command below.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'tag' SP <name> LF\r
'tagger' SP <name> SP LT <email> GT SP <when> LF\r
data</tt></pre>\r
</div></div>\r
-<p>where <tt><name></tt> is the name of the tag to create.</p>\r
-<p>Tag names are automatically prefixed with <tt>refs/tags/</tt> when stored\r
+<div class="para"><p>where <tt><name></tt> is the name of the tag to create.</p></div>\r
+<div class="para"><p>Tag names are automatically prefixed with <tt>refs/tags/</tt> when stored\r
in Git, so importing the CVS branch symbol <tt>RELENG-1_0-FINAL</tt> would\r
use just <tt>RELENG-1_0-FINAL</tt> for <tt><name></tt>, and fast-import will write the\r
-corresponding ref as <tt>refs/tags/RELENG-1_0-FINAL</tt>.</p>\r
-<p>The value of <tt><name></tt> must be a valid refname in Git and therefore\r
+corresponding ref as <tt>refs/tags/RELENG-1_0-FINAL</tt>.</p></div>\r
+<div class="para"><p>The value of <tt><name></tt> must be a valid refname in Git and therefore\r
may contain forward slashes. As <tt>LF</tt> is not valid in a Git refname,\r
-no quoting or escaping syntax is supported here.</p>\r
-<p>The <tt>from</tt> command is the same as in the <tt>commit</tt> command; see\r
-above for details.</p>\r
-<p>The <tt>tagger</tt> command uses the same format as <tt>committer</tt> within\r
-<tt>commit</tt>; again see above for details.</p>\r
-<p>The <tt>data</tt> command following <tt>tagger</tt> must supply the annotated tag\r
+no quoting or escaping syntax is supported here.</p></div>\r
+<div class="para"><p>The <tt>from</tt> command is the same as in the <tt>commit</tt> command; see\r
+above for details.</p></div>\r
+<div class="para"><p>The <tt>tagger</tt> command uses the same format as <tt>committer</tt> within\r
+<tt>commit</tt>; again see above for details.</p></div>\r
+<div class="para"><p>The <tt>data</tt> command following <tt>tagger</tt> must supply the annotated tag\r
message (see below for <tt>data</tt> command syntax). To import an empty\r
tag message use a 0 length data. Tag messages are free-form and are\r
not interpreted by Git. Currently they must be encoded in UTF-8,\r
-as fast-import does not permit other encodings to be specified.</p>\r
-<p>Signing annotated tags during import from within fast-import is not\r
+as fast-import does not permit other encodings to be specified.</p></div>\r
+<div class="para"><p>Signing annotated tags during import from within fast-import is not\r
supported. Trying to include your own PGP/GPG signature is not\r
recommended, as the frontend does not (easily) have access to the\r
complete set of bytes which normally goes into such a signature.\r
If signing is required, create lightweight tags from within fast-import with\r
<tt>reset</tt>, then create the annotated versions of those tags offline\r
-with the standard <tt>git-tag</tt> process.</p>\r
-<h3><tt>reset</tt></h3>\r
-<p>Creates (or recreates) the named branch, optionally starting from\r
+with the standard <em>git-tag</em> process.</p></div>\r
+<h3 id="_tt_reset_tt"><tt>reset</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Creates (or recreates) the named branch, optionally starting from\r
a specific revision. The reset command allows a frontend to issue\r
a new <tt>from</tt> command for an existing branch, or to create a new\r
-branch from an existing commit without creating a new commit.</p>\r
+branch from an existing commit without creating a new commit.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'reset' SP <ref> LF\r
('from' SP <committish> LF)?\r
LF?</tt></pre>\r
</div></div>\r
-<p>For a detailed description of <tt><ref></tt> and <tt><committish></tt> see above\r
-under <tt>commit</tt> and <tt>from</tt>.</p>\r
-<p>The <tt>LF</tt> after the command is optional (it used to be required).</p>\r
-<p>The <tt>reset</tt> command can also be used to create lightweight\r
-(non-annotated) tags. For example:</p>\r
+<div class="para"><p>For a detailed description of <tt><ref></tt> and <tt><committish></tt> see above\r
+under <tt>commit</tt> and <tt>from</tt>.</p></div>\r
+<div class="para"><p>The <tt>LF</tt> after the command is optional (it used to be required).</p></div>\r
+<div class="para"><p>The <tt>reset</tt> command can also be used to create lightweight\r
+(non-annotated) tags. For example:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
<div class="literalblock">\r
from :938</tt></pre>\r
</div></div>\r
</div></div>\r
-<p>would create the lightweight tag <tt>refs/tags/938</tt> referring to\r
-whatever commit mark <tt>:938</tt> references.</p>\r
-<h3><tt>blob</tt></h3>\r
-<p>Requests writing one file revision to the packfile. The revision\r
+<div class="para"><p>would create the lightweight tag <tt>refs/tags/938</tt> referring to\r
+whatever commit mark <tt>:938</tt> references.</p></div>\r
+<h3 id="_tt_blob_tt"><tt>blob</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Requests writing one file revision to the packfile. The revision\r
is not connected to any commit; this connection must be formed in\r
a subsequent <tt>commit</tt> command by referencing the blob through an\r
-assigned mark.</p>\r
+assigned mark.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'blob' LF\r
mark?\r
data</tt></pre>\r
</div></div>\r
-<p>The mark command is optional here as some frontends have chosen\r
+<div class="para"><p>The mark command is optional here as some frontends have chosen\r
to generate the Git SHA-1 for the blob on their own, and feed that\r
directly to <tt>commit</tt>. This is typically more work than its worth\r
-however, as marks are inexpensive to store and easy to use.</p>\r
-<h3><tt>data</tt></h3>\r
-<p>Supplies raw data (for use as blob/file content, commit messages, or\r
+however, as marks are inexpensive to store and easy to use.</p></div>\r
+<h3 id="_tt_data_tt"><tt>data</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Supplies raw data (for use as blob/file content, commit messages, or\r
annotated tag messages) to fast-import. Data can be supplied using an exact\r
byte count or delimited with a terminating line. Real frontends\r
intended for production-quality conversions should always use the\r
exact byte count format, as it is more robust and performs better.\r
-The delimited format is intended primarily for testing fast-import.</p>\r
-<p>Comment lines appearing within the <tt><raw></tt> part of <tt>data</tt> commands\r
+The delimited format is intended primarily for testing fast-import.</p></div>\r
+<div class="para"><p>Comment lines appearing within the <tt><raw></tt> part of <tt>data</tt> commands\r
are always taken to be part of the body of the data and are therefore\r
never ignored by fast-import. This makes it safe to import any\r
-file/message content whose lines might start with <tt>#</tt>.</p>\r
-<dl>\r
+file/message content whose lines might start with <tt>#</tt>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
Exact byte count format\r
</dt>\r
<pre><tt> 'data' SP <count> LF\r
<raw> LF?</tt></pre>\r
</div></div>\r
-<p>where <tt><count></tt> is the exact number of bytes appearing within\r
+<div class="para"><p>where <tt><count></tt> is the exact number of bytes appearing within\r
<tt><raw></tt>. The value of <tt><count></tt> is expressed as an ASCII decimal\r
integer. The <tt>LF</tt> on either side of <tt><raw></tt> is not\r
-included in <tt><count></tt> and will not be included in the imported data.</p>\r
-<p>The <tt>LF</tt> after <tt><raw></tt> is optional (it used to be required) but\r
+included in <tt><count></tt> and will not be included in the imported data.</p></div>\r
+<div class="para"><p>The <tt>LF</tt> after <tt><raw></tt> is optional (it used to be required) but\r
recommended. Always including it makes debugging a fast-import\r
stream easier as the next command always starts in column 0\r
-of the next line, even if <tt><raw></tt> did not end with an <tt>LF</tt>.</p>\r
+of the next line, even if <tt><raw></tt> did not end with an <tt>LF</tt>.</p></div>\r
</dd>\r
<dt>\r
Delimited format\r
<delim> LF\r
LF?</tt></pre>\r
</div></div>\r
-<p>where <tt><delim></tt> is the chosen delimiter string. The string <tt><delim></tt>\r
+<div class="para"><p>where <tt><delim></tt> is the chosen delimiter string. The string <tt><delim></tt>\r
must not appear on a line by itself within <tt><raw></tt>, as otherwise\r
fast-import will think the data ends earlier than it really does. The <tt>LF</tt>\r
immediately trailing <tt><raw></tt> is part of <tt><raw></tt>. This is one of\r
the limitations of the delimited format, it is impossible to supply\r
-a data chunk which does not have an LF as its last byte.</p>\r
-<p>The <tt>LF</tt> after <tt><delim> LF</tt> is optional (it used to be required).</p>\r
+a data chunk which does not have an LF as its last byte.</p></div>\r
+<div class="para"><p>The <tt>LF</tt> after <tt><delim> LF</tt> is optional (it used to be required).</p></div>\r
</dd>\r
-</dl>\r
-<h3><tt>checkpoint</tt></h3>\r
-<p>Forces fast-import to close the current packfile, start a new one, and to\r
-save out all current branch refs, tags and marks.</p>\r
+</dl></div>\r
+<h3 id="_tt_checkpoint_tt"><tt>checkpoint</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Forces fast-import to close the current packfile, start a new one, and to\r
+save out all current branch refs, tags and marks.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'checkpoint' LF\r
LF?</tt></pre>\r
</div></div>\r
-<p>Note that fast-import automatically switches packfiles when the current\r
+<div class="para"><p>Note that fast-import automatically switches packfiles when the current\r
packfile reaches --max-pack-size, or 4 GiB, whichever limit is\r
smaller. During an automatic packfile switch fast-import does not update\r
-the branch refs, tags or marks.</p>\r
-<p>As a <tt>checkpoint</tt> can require a significant amount of CPU time and\r
+the branch refs, tags or marks.</p></div>\r
+<div class="para"><p>As a <tt>checkpoint</tt> can require a significant amount of CPU time and\r
disk IO (to compute the overall pack SHA-1 checksum, generate the\r
corresponding index file, and update the refs) it can easily take\r
-several minutes for a single <tt>checkpoint</tt> command to complete.</p>\r
-<p>Frontends may choose to issue checkpoints during extremely large\r
+several minutes for a single <tt>checkpoint</tt> command to complete.</p></div>\r
+<div class="para"><p>Frontends may choose to issue checkpoints during extremely large\r
and long running imports, or when they need to allow another Git\r
process access to a branch. However given that a 30 GiB Subversion\r
repository can be loaded into Git through fast-import in about 3 hours,\r
-explicit checkpointing may not be necessary.</p>\r
-<p>The <tt>LF</tt> after the command is optional (it used to be required).</p>\r
-<h3><tt>progress</tt></h3>\r
-<p>Causes fast-import to print the entire <tt>progress</tt> line unmodified to\r
+explicit checkpointing may not be necessary.</p></div>\r
+<div class="para"><p>The <tt>LF</tt> after the command is optional (it used to be required).</p></div>\r
+<h3 id="_tt_progress_tt"><tt>progress</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>Causes fast-import to print the entire <tt>progress</tt> line unmodified to\r
its standard output channel (file descriptor 1) when the command is\r
processed from the input stream. The command otherwise has no impact\r
-on the current import, or on any of fast-import's internal state.</p>\r
+on the current import, or on any of fast-import's internal state.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> 'progress' SP <any> LF\r
LF?</tt></pre>\r
</div></div>\r
-<p>The <tt><any></tt> part of the command may contain any sequence of bytes\r
+<div class="para"><p>The <tt><any></tt> part of the command may contain any sequence of bytes\r
that does not contain <tt>LF</tt>. The <tt>LF</tt> after the command is optional.\r
Callers may wish to process the output through a tool such as sed to\r
-remove the leading part of the line, for example:</p>\r
+remove the leading part of the line, for example:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
<div class="literalblock">\r
<pre><tt>frontend | git fast-import | sed 's/^progress //'</tt></pre>\r
</div></div>\r
</div></div>\r
-<p>Placing a <tt>progress</tt> command immediately after a <tt>checkpoint</tt> will\r
+<div class="para"><p>Placing a <tt>progress</tt> command immediately after a <tt>checkpoint</tt> will\r
inform the reader when the <tt>checkpoint</tt> has been completed and it\r
-can safely access the refs that fast-import updated.</p>\r
+can safely access the refs that fast-import updated.</p></div>\r
</div>\r
-<h2>Crash Reports</h2>\r
+<h2 id="_crash_reports">Crash Reports</h2>\r
<div class="sectionbody">\r
-<p>If fast-import is supplied invalid input it will terminate with a\r
+<div class="para"><p>If fast-import is supplied invalid input it will terminate with a\r
non-zero exit status and create a crash report in the top level of\r
the Git repository it was importing into. Crash reports contain\r
a snapshot of the internal fast-import state as well as the most\r
-recent commands that lead up to the crash.</p>\r
-<p>All recent commands (including stream comments, file changes and\r
+recent commands that lead up to the crash.</p></div>\r
+<div class="para"><p>All recent commands (including stream comments, file changes and\r
progress commands) are shown in the command history within the crash\r
report, but raw file data and commit messages are excluded from the\r
crash report. This exclusion saves space within the report file\r
and reduces the amount of buffering that fast-import must perform\r
-during execution.</p>\r
-<p>After writing a crash report fast-import will close the current\r
+during execution.</p></div>\r
+<div class="para"><p>After writing a crash report fast-import will close the current\r
packfile and export the marks table. This allows the frontend\r
developer to inspect the repository state and resume the import from\r
the point where it crashed. The modified branches and tags are not\r
updated during a crash, as the import did not complete successfully.\r
Branch and tag information can be found in the crash report and\r
-must be applied manually if the update is needed.</p>\r
-<p>An example crash:</p>\r
+must be applied manually if the update is needed.</p></div>\r
+<div class="para"><p>An example crash:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
<div class="literalblock">\r
</div></div>\r
</div></div>\r
</div>\r
-<h2>Tips and Tricks</h2>\r
+<h2 id="_tips_and_tricks">Tips and Tricks</h2>\r
<div class="sectionbody">\r
-<p>The following tips and tricks have been collected from various\r
-users of fast-import, and are offered here as suggestions.</p>\r
-<h3>Use One Mark Per Commit</h3>\r
-<p>When doing a repository conversion, use a unique mark per commit\r
+<div class="para"><p>The following tips and tricks have been collected from various\r
+users of fast-import, and are offered here as suggestions.</p></div>\r
+<h3 id="_use_one_mark_per_commit">Use One Mark Per Commit</h3><div style="clear:left"></div>\r
+<div class="para"><p>When doing a repository conversion, use a unique mark per commit\r
(<tt>mark :<n></tt>) and supply the --export-marks option on the command\r
line. fast-import will dump a file which lists every mark and the Git\r
object SHA-1 that corresponds to it. If the frontend can tie\r
the marks back to the source repository, it is easy to verify the\r
accuracy and completeness of the import by comparing each Git\r
-commit to the corresponding source revision.</p>\r
-<p>Coming from a system such as Perforce or Subversion this should be\r
+commit to the corresponding source revision.</p></div>\r
+<div class="para"><p>Coming from a system such as Perforce or Subversion this should be\r
quite simple, as the fast-import mark can also be the Perforce changeset\r
-number or the Subversion revision number.</p>\r
-<h3>Freely Skip Around Branches</h3>\r
-<p>Don't bother trying to optimize the frontend to stick to one branch\r
+number or the Subversion revision number.</p></div>\r
+<h3 id="_freely_skip_around_branches">Freely Skip Around Branches</h3><div style="clear:left"></div>\r
+<div class="para"><p>Don't bother trying to optimize the frontend to stick to one branch\r
at a time during an import. Although doing so might be slightly\r
faster for fast-import, it tends to increase the complexity of the frontend\r
-code considerably.</p>\r
-<p>The branch LRU builtin to fast-import tends to behave very well, and the\r
+code considerably.</p></div>\r
+<div class="para"><p>The branch LRU builtin to fast-import tends to behave very well, and the\r
cost of activating an inactive branch is so low that bouncing around\r
-between branches has virtually no impact on import performance.</p>\r
-<h3>Handling Renames</h3>\r
-<p>When importing a renamed file or directory, simply delete the old\r
+between branches has virtually no impact on import performance.</p></div>\r
+<h3 id="_handling_renames">Handling Renames</h3><div style="clear:left"></div>\r
+<div class="para"><p>When importing a renamed file or directory, simply delete the old\r
name(s) and modify the new name(s) during the corresponding commit.\r
Git performs rename detection after-the-fact, rather than explicitly\r
-during a commit.</p>\r
-<h3>Use Tag Fixup Branches</h3>\r
-<p>Some other SCM systems let the user create a tag from multiple\r
+during a commit.</p></div>\r
+<h3 id="_use_tag_fixup_branches">Use Tag Fixup Branches</h3><div style="clear:left"></div>\r
+<div class="para"><p>Some other SCM systems let the user create a tag from multiple\r
files which are not from the same commit/changeset. Or to create\r
-tags which are a subset of the files available in the repository.</p>\r
-<p>Importing these tags as-is in Git is impossible without making at\r
+tags which are a subset of the files available in the repository.</p></div>\r
+<div class="para"><p>Importing these tags as-is in Git is impossible without making at\r
least one commit which “fixes up” the files to match the content\r
of the tag. Use fast-import's <tt>reset</tt> command to reset a dummy branch\r
outside of your normal branch space to the base commit for the tag,\r
then commit one or more file fixup commits, and finally tag the\r
-dummy branch.</p>\r
-<p>For example since all normal branches are stored under <tt>refs/heads/</tt>\r
+dummy branch.</p></div>\r
+<div class="para"><p>For example since all normal branches are stored under <tt>refs/heads/</tt>\r
name the tag fixup branch <tt>TAG_FIXUP</tt>. This way it is impossible for\r
the fixup branch used by the importer to have namespace conflicts\r
with real branches imported from the source (the name <tt>TAG_FIXUP</tt>\r
-is not <tt>refs/heads/TAG_FIXUP</tt>).</p>\r
-<p>When committing fixups, consider using <tt>merge</tt> to connect the\r
+is not <tt>refs/heads/TAG_FIXUP</tt>).</p></div>\r
+<div class="para"><p>When committing fixups, consider using <tt>merge</tt> to connect the\r
commit(s) which are supplying file revisions to the fixup branch.\r
-Doing so will allow tools such as <tt>git-blame</tt> to track\r
+Doing so will allow tools such as <em>git-blame</em> to track\r
through the real commit history and properly annotate the source\r
-files.</p>\r
-<p>After fast-import terminates the frontend will need to do <tt>rm .git/TAG_FIXUP</tt>\r
-to remove the dummy branch.</p>\r
-<h3>Import Now, Repack Later</h3>\r
-<p>As soon as fast-import completes the Git repository is completely valid\r
+files.</p></div>\r
+<div class="para"><p>After fast-import terminates the frontend will need to do <tt>rm .git/TAG_FIXUP</tt>\r
+to remove the dummy branch.</p></div>\r
+<h3 id="_import_now_repack_later">Import Now, Repack Later</h3><div style="clear:left"></div>\r
+<div class="para"><p>As soon as fast-import completes the Git repository is completely valid\r
and ready for use. Typically this takes only a very short time,\r
-even for considerably large projects (100,000+ commits).</p>\r
-<p>However repacking the repository is necessary to improve data\r
+even for considerably large projects (100,000+ commits).</p></div>\r
+<div class="para"><p>However repacking the repository is necessary to improve data\r
locality and access performance. It can also take hours on extremely\r
large projects (especially if -f and a large --window parameter is\r
used). Since repacking is safe to run alongside readers and writers,\r
run the repack in the background and let it finish when it finishes.\r
-There is no reason to wait to explore your new Git project!</p>\r
-<p>If you choose to wait for the repack, don't try to run benchmarks\r
+There is no reason to wait to explore your new Git project!</p></div>\r
+<div class="para"><p>If you choose to wait for the repack, don't try to run benchmarks\r
or performance tests until repacking is completed. fast-import outputs\r
suboptimal packfiles that are simply never seen in real use\r
-situations.</p>\r
-<h3>Repacking Historical Data</h3>\r
-<p>If you are repacking very old imported data (e.g. older than the\r
+situations.</p></div>\r
+<h3 id="_repacking_historical_data">Repacking Historical Data</h3><div style="clear:left"></div>\r
+<div class="para"><p>If you are repacking very old imported data (e.g. older than the\r
last year), consider expending some extra CPU time and supplying\r
---window=50 (or higher) when you run <tt>git-repack</tt>.\r
+--window=50 (or higher) when you run <em>git-repack</em>.\r
This will take longer, but will also produce a smaller packfile.\r
You only need to expend the effort once, and everyone using your\r
-project will benefit from the smaller repository.</p>\r
-<h3>Include Some Progress Messages</h3>\r
-<p>Every once in a while have your frontend emit a <tt>progress</tt> message\r
+project will benefit from the smaller repository.</p></div>\r
+<h3 id="_include_some_progress_messages">Include Some Progress Messages</h3><div style="clear:left"></div>\r
+<div class="para"><p>Every once in a while have your frontend emit a <tt>progress</tt> message\r
to fast-import. The contents of the messages are entirely free-form,\r
so one suggestion would be to output the current month and year\r
each time the current commit date moves into the next month.\r
Your users will feel better knowing how much of the data stream\r
-has been processed.</p>\r
+has been processed.</p></div>\r
</div>\r
-<h2>Packfile Optimization</h2>\r
+<h2 id="_packfile_optimization">Packfile Optimization</h2>\r
<div class="sectionbody">\r
-<p>When packing a blob fast-import always attempts to deltify against the last\r
+<div class="para"><p>When packing a blob fast-import always attempts to deltify against the last\r
blob written. Unless specifically arranged for by the frontend,\r
this will probably not be a prior version of the same file, so the\r
generated delta will not be the smallest possible. The resulting\r
-packfile will be compressed, but will not be optimal.</p>\r
-<p>Frontends which have efficient access to all revisions of a\r
+packfile will be compressed, but will not be optimal.</p></div>\r
+<div class="para"><p>Frontends which have efficient access to all revisions of a\r
single file (for example reading an RCS/CVS ,v file) can choose\r
to supply all revisions of that file as a sequence of consecutive\r
<tt>blob</tt> commands. This allows fast-import to deltify the different file\r
revisions against each other, saving space in the final packfile.\r
Marks can be used to later identify individual file revisions during\r
-a sequence of <tt>commit</tt> commands.</p>\r
-<p>The packfile(s) created by fast-import do not encourage good disk access\r
+a sequence of <tt>commit</tt> commands.</p></div>\r
+<div class="para"><p>The packfile(s) created by fast-import do not encourage good disk access\r
patterns. This is caused by fast-import writing the data in the order\r
it is received on standard input, while Git typically organizes\r
data within packfiles to make the most recent (current tip) data\r
appear before historical data. Git also clusters commits together,\r
-speeding up revision traversal through better cache locality.</p>\r
-<p>For this reason it is strongly recommended that users repack the\r
+speeding up revision traversal through better cache locality.</p></div>\r
+<div class="para"><p>For this reason it is strongly recommended that users repack the\r
repository with <tt>git repack -a -d</tt> after fast-import completes, allowing\r
Git to reorganize the packfiles for faster data access. If blob\r
deltas are suboptimal (see above) then also adding the <tt>-f</tt> option\r
to force recomputation of all deltas can significantly reduce the\r
-final packfile size (30-50% smaller can be quite typical).</p>\r
+final packfile size (30-50% smaller can be quite typical).</p></div>\r
</div>\r
-<h2>Memory Utilization</h2>\r
+<h2 id="_memory_utilization">Memory Utilization</h2>\r
<div class="sectionbody">\r
-<p>There are a number of factors which affect how much memory fast-import\r
+<div class="para"><p>There are a number of factors which affect how much memory fast-import\r
requires to perform an import. Like critical sections of core\r
Git, fast-import uses its own memory allocators to amortize any overheads\r
associated with malloc. In practice fast-import tends to amortize any\r
-malloc overheads to 0, due to its use of large block allocations.</p>\r
-<h3>per object</h3>\r
-<p>fast-import maintains an in-memory structure for every object written in\r
+malloc overheads to 0, due to its use of large block allocations.</p></div>\r
+<h3 id="_per_object">per object</h3><div style="clear:left"></div>\r
+<div class="para"><p>fast-import maintains an in-memory structure for every object written in\r
this execution. On a 32 bit system the structure is 32 bytes,\r
on a 64 bit system the structure is 40 bytes (due to the larger\r
pointer sizes). Objects in the table are not deallocated until\r
fast-import terminates. Importing 2 million objects on a 32 bit system\r
-will require approximately 64 MiB of memory.</p>\r
-<p>The object table is actually a hashtable keyed on the object name\r
+will require approximately 64 MiB of memory.</p></div>\r
+<div class="para"><p>The object table is actually a hashtable keyed on the object name\r
(the unique SHA-1). This storage configuration allows fast-import to reuse\r
an existing or already written object and avoid writing duplicates\r
to the output packfile. Duplicate blobs are surprisingly common\r
-in an import, typically due to branch merges in the source.</p>\r
-<h3>per mark</h3>\r
-<p>Marks are stored in a sparse array, using 1 pointer (4 bytes or 8\r
+in an import, typically due to branch merges in the source.</p></div>\r
+<h3 id="_per_mark">per mark</h3><div style="clear:left"></div>\r
+<div class="para"><p>Marks are stored in a sparse array, using 1 pointer (4 bytes or 8\r
bytes, depending on pointer size) per mark. Although the array\r
is sparse, frontends are still strongly encouraged to use marks\r
between 1 and n, where n is the total number of marks required for\r
-this import.</p>\r
-<h3>per branch</h3>\r
-<p>Branches are classified as active and inactive. The memory usage\r
-of the two classes is significantly different.</p>\r
-<p>Inactive branches are stored in a structure which uses 96 or 120\r
+this import.</p></div>\r
+<h3 id="_per_branch">per branch</h3><div style="clear:left"></div>\r
+<div class="para"><p>Branches are classified as active and inactive. The memory usage\r
+of the two classes is significantly different.</p></div>\r
+<div class="para"><p>Inactive branches are stored in a structure which uses 96 or 120\r
bytes (32 bit or 64 bit systems, respectively), plus the length of\r
the branch name (typically under 200 bytes), per branch. fast-import will\r
easily handle as many as 10,000 inactive branches in under 2 MiB\r
-of memory.</p>\r
-<p>Active branches have the same overhead as inactive branches, but\r
+of memory.</p></div>\r
+<div class="para"><p>Active branches have the same overhead as inactive branches, but\r
also contain copies of every tree that has been recently modified on\r
that branch. If subtree <tt>include</tt> has not been modified since the\r
branch became active, its contents will not be loaded into memory,\r
but if subtree <tt>src</tt> has been modified by a commit since the branch\r
-became active, then its contents will be loaded in memory.</p>\r
-<p>As active branches store metadata about the files contained on that\r
+became active, then its contents will be loaded in memory.</p></div>\r
+<div class="para"><p>As active branches store metadata about the files contained on that\r
branch, their in-memory storage size can grow to a considerable size\r
-(see below).</p>\r
-<p>fast-import automatically moves active branches to inactive status based on\r
+(see below).</p></div>\r
+<div class="para"><p>fast-import automatically moves active branches to inactive status based on\r
a simple least-recently-used algorithm. The LRU chain is updated on\r
each <tt>commit</tt> command. The maximum number of active branches can be\r
-increased or decreased on the command line with --active-branches=.</p>\r
-<h3>per active tree</h3>\r
-<p>Trees (aka directories) use just 12 bytes of memory on top of the\r
+increased or decreased on the command line with --active-branches=.</p></div>\r
+<h3 id="_per_active_tree">per active tree</h3><div style="clear:left"></div>\r
+<div class="para"><p>Trees (aka directories) use just 12 bytes of memory on top of the\r
memory required for their entries (see “per active file” below).\r
The cost of a tree is virtually 0, as its overhead amortizes out\r
-over the individual file entries.</p>\r
-<h3>per active file entry</h3>\r
-<p>Files (and pointers to subtrees) within active trees require 52 or 64\r
+over the individual file entries.</p></div>\r
+<h3 id="_per_active_file_entry">per active file entry</h3><div style="clear:left"></div>\r
+<div class="para"><p>Files (and pointers to subtrees) within active trees require 52 or 64\r
bytes (32/64 bit platforms) per entry. To conserve space, file and\r
tree names are pooled in a common string table, allowing the filename\r
“Makefile” to use just 16 bytes (after including the string header\r
-overhead) no matter how many times it occurs within the project.</p>\r
-<p>The active branch LRU, when coupled with the filename string pool\r
+overhead) no matter how many times it occurs within the project.</p></div>\r
+<div class="para"><p>The active branch LRU, when coupled with the filename string pool\r
and lazy loading of subtrees, allows fast-import to efficiently import\r
projects with 2,000+ branches and 45,114+ files in a very limited\r
-memory footprint (less than 2.7 MiB per active branch).</p>\r
+memory footprint (less than 2.7 MiB per active branch).</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Shawn O. Pearce <spearce@spearce.org>.</p>\r
+<div class="para"><p>Written by Shawn O. Pearce <spearce@spearce.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Shawn O. Pearce <spearce@spearce.org>.</p>\r
+<div class="para"><p>Documentation by Shawn O. Pearce <spearce@spearce.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:43 UTC\r
+Last updated 2008-07-06 05:16:45 UTC\r
</div>\r
</div>\r
</body>\r
This program is usually not what the end user wants to run directly.
Most end users want to use one of the existing frontend programs,
which parses a specific type of foreign source and feeds the contents
-stored there to `git-fast-import`.
+stored there to 'git-fast-import'.
fast-import reads a mixed command/data stream from standard input and
writes one or more packfiles directly into the current repository.
with the newly imported data.
The fast-import backend itself can import into an empty repository (one that
-has already been initialized by `git-init`) or incrementally
+has already been initialized by 'git-init') or incrementally
update an existing populated repository. Whether or not incremental
imports are supported from a particular foreign source depends on
the frontend program in use.
This information may be useful after importing projects
whose total object set exceeds the 4 GiB packfile limit,
as these commits can be used as edge points during calls
- to `git-pack-objects`.
+ to 'git-pack-objects'.
--quiet::
Disable all non-fatal output, making fast-import silent when it
- is successful. This option disables the output shown by
+ is successful. This option disables the output shown by
\--stats.
--stats::
Parallel Operation
------------------
-Like `git-push` or `git-fetch`, imports handled by fast-import are safe to
+Like 'git-push' or 'git-fetch', imports handled by fast-import are safe to
run alongside parallel `git repack -a -d` or `git gc` invocations,
-or any other Git operation (including `git-prune`, as loose objects
+or any other Git operation (including 'git-prune', as loose objects
are never used by fast-import).
fast-import does not lock the branch or tag refs it is actively importing.
+
An example value is ``Tue Feb 6 11:22:18 2007 -0500''. The Git
parser is accurate, but a little on the lenient side. It is the
-same parser used by `git-am` when applying patches
+same parser used by 'git-am' when applying patches
received from email.
+
Some malformed strings may be accepted as valid dates. In some of
This particular format is supplied as its short to implement and
may be useful to a process that wants to create a new commit
right now, without needing to use a working directory or
-`git-update-index`.
+'git-update-index'.
+
If separate `author` and `committer` commands are used in a `commit`
the timestamps may not match, as the system clock will be polled
complete set of bytes which normally goes into such a signature.
If signing is required, create lightweight tags from within fast-import with
`reset`, then create the annotated versions of those tags offline
-with the standard `git-tag` process.
+with the standard 'git-tag' process.
`reset`
~~~~~~~
When committing fixups, consider using `merge` to connect the
commit(s) which are supplying file revisions to the fixup branch.
-Doing so will allow tools such as `git-blame` to track
+Doing so will allow tools such as 'git-blame' to track
through the real commit history and properly annotate the source
files.
~~~~~~~~~~~~~~~~~~~~~~~~~
If you are repacking very old imported data (e.g. older than the
last year), consider expending some extra CPU time and supplying
-\--window=50 (or higher) when you run `git-repack`.
+\--window=50 (or higher) when you run 'git-repack'.
This will take longer, but will also produce a smaller packfile.
You only need to expend the effort once, and everyone using your
project will benefit from the smaller repository.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-fetch-pack(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git fetch-pack</em> [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>…]</p>\r
+<div class="para"><p><em>git fetch-pack</em> [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>…]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Usually you would want to use <tt>git-fetch</tt>, which is a\r
-higher level wrapper of this command, instead.</p>\r
-<p>Invokes <tt>git-upload-pack</tt> on a possibly remote repository\r
+<div class="para"><p>Usually you would want to use <em>git-fetch</em>, which is a\r
+higher level wrapper of this command, instead.</p></div>\r
+<div class="para"><p>Invokes <em>git-upload-pack</em> on a possibly remote repository\r
and asks it to send objects missing from this repository, to\r
update the named heads. The list of commits available locally\r
is found out by scanning local $GIT_DIR/refs/ and sent to\r
-<tt>git-upload-pack</tt> running on the other end.</p>\r
-<p>This command degenerates to download everything to complete the\r
+<em>git-upload-pack</em> running on the other end.</p></div>\r
+<div class="para"><p>This command degenerates to download everything to complete the\r
asked refs from the remote side when the local side does not\r
-have a common ancestor commit.</p>\r
+have a common ancestor commit.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--all\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Pass <em>-q</em> flag to <tt>git-unpack-objects</tt>; this makes the\r
+ Pass <em>-q</em> flag to <em>git-unpack-objects</em>; this makes the\r
cloning process less verbose.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Do not invoke <tt>git-unpack-objects</tt> on received data, but\r
+ Do not invoke <em>git-unpack-objects</em> on received data, but\r
create a single packfile out of it instead, and store it\r
in the object database. If provided twice then the pack is\r
locked against repacking.\r
</dt>\r
<dd>\r
<p>\r
- Use this to specify the path to <tt>git-upload-pack</tt> on the\r
+ Use this to specify the path to <em>git-upload-pack</em> on the\r
remote side, if is not found on your $PATH.\r
Installations of sshd ignores the user's environment\r
setup scripts for login shells (e.g. .bash_profile) and\r
<dd>\r
<p>\r
A remote host that houses the repository. When this\r
- part is specified, <tt>git-upload-pack</tt> is invoked via\r
+ part is specified, <em>git-upload-pack</em> is invoked via\r
ssh.\r
</p>\r
</dd>\r
unspecified, update from all heads the remote side has.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:43 UTC\r
+Last updated 2008-07-06 05:16:46 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Usually you would want to use `git-fetch`, which is a
+Usually you would want to use 'git-fetch', which is a
higher level wrapper of this command, instead.
-Invokes `git-upload-pack` on a possibly remote repository
+Invokes 'git-upload-pack' on a possibly remote repository
and asks it to send objects missing from this repository, to
update the named heads. The list of commits available locally
is found out by scanning local $GIT_DIR/refs/ and sent to
-`git-upload-pack` running on the other end.
+'git-upload-pack' running on the other end.
This command degenerates to download everything to complete the
asked refs from the remote side when the local side does not
-q::
--quiet::
- Pass '-q' flag to `git-unpack-objects`; this makes the
+ Pass '-q' flag to 'git-unpack-objects'; this makes the
cloning process less verbose.
-k::
--keep::
- Do not invoke `git-unpack-objects` on received data, but
+ Do not invoke 'git-unpack-objects' on received data, but
create a single packfile out of it instead, and store it
in the object database. If provided twice then the pack is
locked against repacking.
otherwise determine the tags this option made available.
--upload-pack=<git-upload-pack>::
- Use this to specify the path to `git-upload-pack` on the
+ Use this to specify the path to 'git-upload-pack' on the
remote side, if is not found on your $PATH.
Installations of sshd ignores the user's environment
setup scripts for login shells (e.g. .bash_profile) and
<host>::
A remote host that houses the repository. When this
- part is specified, `git-upload-pack` is invoked via
+ part is specified, 'git-upload-pack' is invoked via
ssh.
<directory>::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-fetch(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git fetch</em> <options> <repository> <refspec>…</p>\r
+<div class="para"><p><em>git fetch</em> <options> <repository> <refspec>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Fetches named heads or tags from another repository, along with\r
-the objects necessary to complete them.</p>\r
-<p>The ref names and their object names of fetched refs are stored\r
+<div class="para"><p>Fetches named heads or tags from another repository, along with\r
+the objects necessary to complete them.</p></div>\r
+<div class="para"><p>The ref names and their object names of fetched refs are stored\r
in <tt>.git/FETCH_HEAD</tt>. This information is left for a later merge\r
-operation done by <tt>git-merge</tt>.</p>\r
-<p>When <refspec> stores the fetched result in tracking branches,\r
+operation done by <em>git-merge</em>.</p></div>\r
+<div class="para"><p>When <refspec> stores the fetched result in tracking branches,\r
the tags that point at these branches are automatically\r
followed. This is done by first fetching from the remote using\r
the given <refspec>s, and if the repository has objects that are\r
pointed by remote tags that it does not yet have, then fetch\r
those missing tags. If the other end has tags that point at\r
-branches you are not interested in, you will not get them.</p>\r
+branches you are not interested in, you will not get them.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-q\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- When <tt>git-fetch</tt> is used with <tt><rbranch>:<lbranch></tt>\r
+ When <em>git-fetch</em> is used with <tt><rbranch>:<lbranch></tt>\r
refspec, it refuses to update the local branch\r
<tt><lbranch></tt> unless the remote branch <tt><rbranch></tt> it\r
fetches is a descendant of <tt><lbranch></tt>. This option\r
</dt>\r
<dd>\r
<p>\r
- By default <tt>git-fetch</tt> refuses to update the head which\r
+ By default <em>git-fetch</em> refuses to update the head which\r
corresponds to the current branch. This flag disables the\r
- check. This is purely for the internal use for <tt>git-pull</tt>\r
- to communicate with <tt>git-fetch</tt>, and unless you are\r
+ check. This is purely for the internal use for <em>git-pull</em>\r
+ to communicate with <em>git-fetch</em>, and unless you are\r
implementing your own Porcelain you are not supposed to\r
use it.\r
</p>\r
<dd>\r
<p>\r
The canonical format of a <refspec> parameter is\r
- <tt>+?<src>:<dst></tt>; that is, an optional plus <tt>+</tt>, followed\r
+ <tt><tt>?<src>:<dst></tt>; that is, an optional plus <tt></tt></tt>, followed\r
by the source ref, followed by a colon <tt>:</tt>, followed by\r
the destination ref.\r
</p>\r
-<p>The remote ref that matches <src>\r
+<div class="para"><p>The remote ref that matches <src>\r
is fetched, and if <dst> is not empty string, the local\r
ref that matches it is fast forwarded using <src>.\r
Again, if the optional plus <tt>+</tt> is used, the local ref\r
is updated even if it does not result in a fast forward\r
-update.</p>\r
+update.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
</td>\r
<td class="content">You never do your own development on branches that appear\r
on the right hand side of a <refspec> colon on <tt>Pull:</tt> lines;\r
-they are to be updated by <tt>git-fetch</tt>. If you intend to do\r
+they are to be updated by <em>git-fetch</em>. If you intend to do\r
development derived from a remote branch <tt>B</tt>, have a <tt>Pull:</tt>\r
line to track it (i.e. <tt>Pull: B:remote-B</tt>), and have a separate\r
branch <tt>my-B</tt> to do your development on top of it. The latter\r
<div class="title">Note</div>\r
</td>\r
<td class="content">There is a difference between listing multiple <refspec>\r
-directly on <tt>git-pull</tt> command line and having multiple\r
+directly on <em>git-pull</em> command line and having multiple\r
<tt>Pull:</tt> <refspec> lines for a <repository> and running\r
-<tt>git-pull</tt> command without any explicit <refspec> parameters.\r
+<em>git-pull</em> command without any explicit <refspec> parameters.\r
<refspec> listed explicitly on the command line are always\r
merged into the current branch after fetching. In other words,\r
if you list more than one remote refs, you would be making\r
-an Octopus. While <tt>git-pull</tt> run without any explicit <refspec>\r
+an Octopus. While <em>git-pull</em> run without any explicit <refspec>\r
parameter takes default <refspec>s from <tt>Pull:</tt> lines, it\r
merges only the first <refspec> found into the current branch,\r
after fetching all the remote refs. This is because making an\r
is often useful.</td>\r
</tr></table>\r
</div>\r
-<p>Some short-cut notations are also supported.</p>\r
-<ul>\r
+<div class="para"><p>Some short-cut notations are also supported.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<tt>tag <tag></tt> means the same as <tt>refs/tags/<tag>:refs/tags/<tag></tt>;\r
branch without storing the remote branch anywhere locally\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>GIT URLS<a id="URLS"></a></h2>\r
+<h2 id="_git_urls_a_id_urls_a">GIT URLS<a id="URLS"></a></h2>\r
<div class="sectionbody">\r
-<p>One of the following notations can be used\r
-to name the remote repository:</p>\r
+<div class="para"><p>One of the following notations can be used\r
+to name the remote repository:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
rsync://host.xz/path/to/repo.git/\r
ssh://[user@]host.xz/~/path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>SSH is the default transport protocol over the network. You can\r
+<div class="para"><p>SSH is the default transport protocol over the network. You can\r
optionally specify which user to log-in as, and an alternate,\r
scp-like syntax is also supported. Both syntaxes support\r
username expansion, as does the native git protocol, but\r
only the former supports port specification. The following\r
-three are identical to the last three above, respectively:</p>\r
+three are identical to the last three above, respectively:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
[user@]host.xz:/path/to/repo.git/\r
[user@]host.xz:path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>To sync with a local directory, you can use:</p>\r
+<div class="para"><p>To sync with a local directory, you can use:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
/path/to/repo.git/\r
file:///path/to/repo.git/\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>They are mostly equivalent, except when cloning. See\r
-<a href="git-clone.html">git-clone(1)</a> for details.</p>\r
-<p>If there are a large number of similarly-named remote repositories and\r
+<div class="para"><p>They are mostly equivalent, except when cloning. See\r
+<a href="git-clone.html">git-clone(1)</a> for details.</p></div>\r
+<div class="para"><p>If there are a large number of similarly-named remote repositories and\r
you want to use a different format for them (such that the URLs you\r
use will be rewritten into URLs that work), you can create a\r
-configuration section of the form:</p>\r
+configuration section of the form:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "<actual url base>"]\r
insteadOf = <other url base></tt></pre>\r
</div></div>\r
-<p>For example, with this:</p>\r
+<div class="para"><p>For example, with this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "git://git.host.xz/"]\r
insteadOf = host.xz:/path/to/\r
insteadOf = work:</tt></pre>\r
</div></div>\r
-<p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
-rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p>\r
+<div class="para"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
+rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div>\r
</div>\r
-<h2>REMOTES<a id="REMOTES"></a></h2>\r
+<h2 id="_remotes_a_id_remotes_a">REMOTES<a id="REMOTES"></a></h2>\r
<div class="sectionbody">\r
-<p>The name of one of the following can be used instead\r
-of a URL as <tt><repository></tt> argument:</p>\r
-<ul>\r
+<div class="para"><p>The name of one of the following can be used instead\r
+of a URL as <tt><repository></tt> argument:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
a remote in the git configuration file: <tt>$GIT_DIR/config</tt>,\r
a file in the <tt>$GIT_DIR/branches</tt> directory.\r
</p>\r
</li>\r
-</ul>\r
-<p>All of these also allow you to omit the refspec from the command line\r
-because they each contain a refspec which git will use by default.</p>\r
-<h3>Named remote in configuration file</h3>\r
-<p>You can choose to provide the name of a remote which you had previously\r
+</ul></div>\r
+<div class="para"><p>All of these also allow you to omit the refspec from the command line\r
+because they each contain a refspec which git will use by default.</p></div>\r
+<h3 id="_named_remote_in_configuration_file">Named remote in configuration file</h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a remote which you had previously\r
configured using <a href="git-remote.html">git-remote(1)</a>, <a href="git-config.html">git-config(1)</a>\r
or even by a manual edit to the <tt>$GIT_DIR/config</tt> file. The URL of\r
this remote will be used to access the repository. The refspec\r
of this remote will be used by default when you do\r
not provide a refspec on the command line. The entry in the\r
-config file would appear like this:</p>\r
+config file would appear like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [remote "<name>"]\r
push = <refspec>\r
fetch = <refspec></tt></pre>\r
</div></div>\r
-<h3>Named file in <tt>$GIT_DIR/remotes</tt></h3>\r
-<p>You can choose to provide the name of a\r
+<h3 id="_named_file_in_tt_git_dir_remotes_tt">Named file in <tt>$GIT_DIR/remotes</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a\r
file in <tt>$GIT_DIR/remotes</tt>. The URL\r
in this file will be used to access the repository. The refspec\r
in this file will be used as default when you do not\r
provide a refspec on the command line. This file should have the\r
-following format:</p>\r
+following format:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> URL: one of the above URL format\r
Pull: <refspec>\r
</tt></pre>\r
</div></div>\r
-<p><tt>Push:</tt> lines are used by <tt>git-push</tt> and\r
-<tt>Pull:</tt> lines are used by <tt>git-pull</tt> and <tt>git-fetch</tt>.\r
+<div class="para"><p><tt>Push:</tt> lines are used by <em>git-push</em> and\r
+<tt>Pull:</tt> lines are used by <em>git-pull</em> and <em>git-fetch</em>.\r
Multiple <tt>Push:</tt> and <tt>Pull:</tt> lines may\r
-be specified for additional branch mappings.</p>\r
-<h3>Named file in <tt>$GIT_DIR/branches</tt></h3>\r
-<p>You can choose to provide the name of a\r
+be specified for additional branch mappings.</p></div>\r
+<h3 id="_named_file_in_tt_git_dir_branches_tt">Named file in <tt>$GIT_DIR/branches</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a\r
file in <tt>$GIT_DIR/branches</tt>.\r
The URL in this file will be used to access the repository.\r
-This file should have the following format:</p>\r
+This file should have the following format:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> <url>#<head></tt></pre>\r
</div></div>\r
-<p><tt><url></tt> is required; <tt>#<head></tt> is optional.\r
+<div class="para"><p><tt><url></tt> is required; <tt>#<head></tt> is optional.\r
When you do not provide a refspec on the command line,\r
git will use the following refspec, where <tt><head></tt> defaults to <tt>master</tt>,\r
and <tt><repository></tt> is the name of this file\r
-you provided in the command line.</p>\r
+you provided in the command line.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> refs/heads/<head>:<repository></tt></pre>\r
</div></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-pull.html">git-pull(1)</a></p>\r
+<div class="para"><p><a href="git-pull.html">git-pull(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and\r
-Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> and\r
+Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:44 UTC\r
+Last updated 2008-07-06 05:16:46 UTC\r
</div>\r
</div>\r
</body>\r
The ref names and their object names of fetched refs are stored
in `.git/FETCH_HEAD`. This information is left for a later merge
-operation done by `git-merge`.
+operation done by 'git-merge'.
When <refspec> stores the fetched result in tracking branches,
the tags that point at these branches are automatically
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-filter-branch(1)</title>\r
</head>\r
[--original <namespace>] [-d <directory>] [-f | --force]\r
[<rev-list options>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Lets you rewrite git revision history by rewriting the branches mentioned\r
+<div class="para"><p>Lets you rewrite git revision history by rewriting the branches mentioned\r
in the <rev-list options>, applying custom filters on each revision.\r
Those filters can modify each tree (e.g. removing a file or running\r
a perl rewrite on all files) or information about each commit.\r
Otherwise, all information (including original commit times or merge\r
-information) will be preserved.</p>\r
-<p>The command will only rewrite the _positive_ refs mentioned in the\r
+information) will be preserved.</p></div>\r
+<div class="para"><p>The command will only rewrite the <em>positive</em> refs mentioned in the\r
command line (e.g. if you pass <em>a..b</em>, only <em>b</em> will be rewritten).\r
If you specify no filters, the commits will be recommitted without any\r
changes, which would normally have no effect. Nevertheless, this may be\r
useful in the future for compensating for some git bugs or such,\r
-therefore such a usage is permitted.</p>\r
-<p><strong>WARNING</strong>! The rewritten history will have different object names for all\r
+therefore such a usage is permitted.</p></div>\r
+<div class="para"><p><strong>WARNING</strong>! The rewritten history will have different object names for all\r
the objects and will not converge with the original branch. You will not\r
be able to easily push and distribute the rewritten branch on top of the\r
original branch. Please do not use this command if you do not know the\r
full implications, and avoid using it anyway, if a simple single commit\r
-would suffice to fix your problem.</p>\r
-<p>Always verify that the rewritten version is correct: The original refs,\r
+would suffice to fix your problem.</p></div>\r
+<div class="para"><p>Always verify that the rewritten version is correct: The original refs,\r
if different from the rewritten ones, will be stored in the namespace\r
-<em>refs/original/</em>.</p>\r
-<p>Note that since this operation is very I/O expensive, it might\r
+<em>refs/original/</em>.</p></div>\r
+<div class="para"><p>Note that since this operation is very I/O expensive, it might\r
be a good idea to redirect the temporary directory off-disk with the\r
-<em>-d</em> option, e.g. on tmpfs. Reportedly the speedup is very noticeable.</p>\r
-<h3>Filters</h3>\r
-<p>The filters are applied in the order as listed below. The <command>\r
+<em>-d</em> option, e.g. on tmpfs. Reportedly the speedup is very noticeable.</p></div>\r
+<h3 id="_filters">Filters</h3><div style="clear:left"></div>\r
+<div class="para"><p>The filters are applied in the order as listed below. The <command>\r
argument is always evaluated in the shell context using the <em>eval</em> command\r
(with the notable exception of the commit filter, for technical reasons).\r
Prior to that, the $GIT_COMMIT environment variable will be set to contain\r
and GIT_COMMITTER_DATE are set according to the current commit. The values\r
of these variables after the filters have run, are used for the new commit.\r
If any evaluation of <command> returns a non-zero exit status, the whole\r
-operation will be aborted.</p>\r
-<p>A <em>map</em> function is available that takes an "original sha1 id" argument\r
+operation will be aborted.</p></div>\r
+<div class="para"><p>A <em>map</em> function is available that takes an "original sha1 id" argument\r
and outputs a "rewritten sha1 id" if the commit has been already\r
rewritten, and "original sha1 id" otherwise; the <em>map</em> function can\r
return several ids on separate lines if your commit filter emitted\r
-multiple commits.</p>\r
+multiple commits.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--env-filter <command>\r
</dt>\r
<p>\r
This is the filter for performing the commit.\r
If this filter is specified, it will be called instead of the\r
- <tt>git-commit-tree</tt> command, with arguments of the form\r
+ <em>git-commit-tree</em> command, with arguments of the form\r
"<TREE_ID> [-p <PARENT_COMMIT_ID>]…" and the log message on\r
stdin. The commit id is expected on stdout.\r
</p>\r
-<p>As a special extension, the commit filter may emit multiple\r
+<div class="para"><p>As a special extension, the commit filter may emit multiple\r
commit ids; in that case, the rewritten children of the original commit will\r
-have all of them as parents.</p>\r
-<p>You can use the <em>map</em> convenience function in this filter, and other\r
+have all of them as parents.</p></div>\r
+<div class="para"><p>You can use the <em>map</em> convenience function in this filter, and other\r
convenience functions, too. For example, calling <em>skip_commit "$@"</em>\r
will leave out the current commit (but not its changes! If you want\r
-that, use <tt>git-rebase</tt> instead).</p>\r
+that, use <em>git-rebase</em> instead).</p></div>\r
</dd>\r
<dt>\r
--tag-name-filter <command>\r
The original tag name is passed via standard input, and the new\r
tag name is expected on standard output.\r
</p>\r
-<p>The original tags are not deleted, but can be overwritten;\r
+<div class="para"><p>The original tags are not deleted, but can be overwritten;\r
use "--tag-name-filter cat" to simply update the tags. In this\r
case, be very careful and make sure you have the old tags\r
-backed up in case the conversion has run afoul.</p>\r
-<p>Nearly proper rewriting of tag objects is supported. If the tag has\r
+backed up in case the conversion has run afoul.</p></div>\r
+<div class="para"><p>Nearly proper rewriting of tag objects is supported. If the tag has\r
a message attached, a new tag object will be created with the same message,\r
author, and timestamp. If the tag has a signature attached, the\r
signature will be stripped. It is by definition impossible to preserve\r
it should retain any signature. That is not the case, signatures will always\r
be removed, buyer beware. There is also no support for changing the\r
author or timestamp (or the tag message for that matter). Tags which point\r
-to other tags will be rewritten to point to the underlying commit.</p>\r
+to other tags will be rewritten to point to the underlying commit.</p></div>\r
</dd>\r
<dt>\r
--subdirectory-filter <directory>\r
</dt>\r
<dd>\r
<p>\r
- <tt>git filter-branch</tt> refuses to start with an existing temporary\r
+ <em>git-filter-branch</em> refuses to start with an existing temporary\r
directory or when there are already refs starting with\r
<em>refs/original/</em>, unless forced.\r
</p>\r
<dd>\r
<p>\r
When options are given after the new branch name, they will\r
- be passed to <tt>git-rev-list</tt>. Only commits in the resulting\r
+ be passed to <em>git-rev-list</em>. Only commits in the resulting\r
output will be filtered, although the filtered commits can still\r
reference parents which are outside of that set.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<p>Suppose you want to remove a file (containing confidential information\r
-or copyright violation) from all commits:</p>\r
+<div class="para"><p>Suppose you want to remove a file (containing confidential information\r
+or copyright violation) from all commits:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch --tree-filter 'rm filename' HEAD</tt></pre>\r
</div></div>\r
-<p>However, if the file is absent from the tree of some commit,\r
+<div class="para"><p>However, if the file is absent from the tree of some commit,\r
a simple <tt>rm filename</tt> will fail for that tree and commit.\r
-Thus you may instead want to use <tt>rm -f filename</tt> as the script.</p>\r
-<p>A significantly faster version:</p>\r
+Thus you may instead want to use <tt>rm -f filename</tt> as the script.</p></div>\r
+<div class="para"><p>A significantly faster version:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch --index-filter 'git update-index --remove filename' HEAD</tt></pre>\r
</div></div>\r
-<p>Now, you will get the rewritten history saved in HEAD.</p>\r
-<p>To set a commit (which typically is at the tip of another\r
+<div class="para"><p>Now, you will get the rewritten history saved in HEAD.</p></div>\r
+<div class="para"><p>To set a commit (which typically is at the tip of another\r
history) to be the parent of the current initial commit, in\r
-order to paste the other history behind the current history:</p>\r
+order to paste the other history behind the current history:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch --parent-filter 'sed "s/^\$/-p <graft-id>/"' HEAD</tt></pre>\r
</div></div>\r
-<p>(if the parent string is empty - which happens when we are dealing with\r
+<div class="para"><p>(if the parent string is empty - which happens when we are dealing with\r
the initial commit - add graftcommit as a parent). Note that this assumes\r
history with a single root (that is, no merge without common ancestors\r
-happened). If this is not the case, use:</p>\r
+happened). If this is not the case, use:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch --parent-filter \\r
'test $GIT_COMMIT = <commit-id> && echo "-p <graft-id>" || cat' HEAD</tt></pre>\r
</div></div>\r
-<p>or even simpler:</p>\r
+<div class="para"><p>or even simpler:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>echo "$commit-id $graft-id" >> .git/info/grafts\r
git filter-branch $graft-id..HEAD</tt></pre>\r
</div></div>\r
-<p>To remove commits authored by "Darl McBribe" from the history:</p>\r
+<div class="para"><p>To remove commits authored by "Darl McBribe" from the history:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch --commit-filter '\r
git commit-tree "$@";\r
fi' HEAD</tt></pre>\r
</div></div>\r
-<p>The function <em>skip_commit</em> is defined as follows:</p>\r
+<div class="para"><p>The function <em>skip_commit</em> is defined as follows:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>skip_commit()\r
done;\r
}</tt></pre>\r
</div></div>\r
-<p>The shift magic first throws away the tree id and then the -p\r
+<div class="para"><p>The shift magic first throws away the tree id and then the -p\r
parameters. Note that this handles merges properly! In case Darl\r
committed a merge between P1 and P2, it will be propagated properly\r
and all children of the merge will become merge commits with P1,P2\r
-as their parents instead of the merge commit.</p>\r
-<p>You can rewrite the commit log messages using <tt>--msg-filter</tt>. For\r
-example, <tt>git-svn-id</tt> strings in a repository created by <tt>git-svn</tt> can\r
-be removed this way:</p>\r
+as their parents instead of the merge commit.</p></div>\r
+<div class="para"><p>You can rewrite the commit log messages using <tt>--msg-filter</tt>. For\r
+example, <em>git-svn-id</em> strings in a repository created by <em>git-svn</em> can\r
+be removed this way:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch --msg-filter '\r
sed -e "/^git-svn-id:/d"\r
'</tt></pre>\r
</div></div>\r
-<p>To restrict rewriting to only part of the history, specify a revision\r
+<div class="para"><p>To restrict rewriting to only part of the history, specify a revision\r
range in addition to the new branch name. The new branch name will\r
-point to the top-most revision that a <tt>git-rev-list</tt> of this range\r
-will print.</p>\r
-<p><strong>NOTE</strong> the changes introduced by the commits, and which are not reverted\r
+point to the top-most revision that a <em>git-rev-list</em> of this range\r
+will print.</p></div>\r
+<div class="para"><p><strong>NOTE</strong> the changes introduced by the commits, and which are not reverted\r
by subsequent commits, will still be in the rewritten branch. If you want\r
-to throw out _changes_ together with the commits, you should use the\r
-interactive mode of <tt>git-rebase</tt>.</p>\r
-<p>Consider this history:</p>\r
+to throw out <em>changes</em> together with the commits, you should use the\r
+interactive mode of <em>git-rebase</em>.</p></div>\r
+<div class="para"><p>Consider this history:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> D--E--F--G--H\r
/ /\r
A--B-----C</tt></pre>\r
</div></div>\r
-<p>To rewrite only commits D,E,F,G,H, but leave A, B and C alone, use:</p>\r
+<div class="para"><p>To rewrite only commits D,E,F,G,H, but leave A, B and C alone, use:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch ... C..H</tt></pre>\r
</div></div>\r
-<p>To rewrite commits E,F,G,H, use one of these:</p>\r
+<div class="para"><p>To rewrite commits E,F,G,H, use one of these:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch ... C..H --not D\r
git filter-branch ... D..H --not C</tt></pre>\r
</div></div>\r
-<p>To move the whole tree into a subdirectory, or remove it from there:</p>\r
+<div class="para"><p>To move the whole tree into a subdirectory, or remove it from there:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>git filter-branch --index-filter \\r
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Petr "Pasky" Baudis <pasky@suse.cz>,\r
-and the git list <git@vger.kernel.org></p>\r
+<div class="para"><p>Written by Petr "Pasky" Baudis <pasky@suse.cz>,\r
+and the git list <git@vger.kernel.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Petr Baudis and the git list.</p>\r
+<div class="para"><p>Documentation by Petr Baudis and the git list.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:45 UTC\r
+Last updated 2008-07-06 05:16:46 UTC\r
</div>\r
</div>\r
</body>\r
--commit-filter <command>::
This is the filter for performing the commit.
If this filter is specified, it will be called instead of the
- `git-commit-tree` command, with arguments of the form
+ 'git-commit-tree' command, with arguments of the form
"<TREE_ID> [-p <PARENT_COMMIT_ID>]..." and the log message on
stdin. The commit id is expected on stdout.
+
You can use the 'map' convenience function in this filter, and other
convenience functions, too. For example, calling 'skip_commit "$@"'
will leave out the current commit (but not its changes! If you want
-that, use `git-rebase` instead).
+that, use 'git-rebase' instead).
--tag-name-filter <command>::
This is the filter for rewriting tag names. When passed,
-f::
--force::
- `git filter-branch` refuses to start with an existing temporary
+ 'git-filter-branch' refuses to start with an existing temporary
directory or when there are already refs starting with
'refs/original/', unless forced.
<rev-list-options>::
When options are given after the new branch name, they will
- be passed to `git-rev-list`. Only commits in the resulting
+ be passed to 'git-rev-list'. Only commits in the resulting
output will be filtered, although the filtered commits can still
reference parents which are outside of that set.
as their parents instead of the merge commit.
You can rewrite the commit log messages using `--msg-filter`. For
-example, `git-svn-id` strings in a repository created by `git-svn` can
+example, 'git-svn-id' strings in a repository created by 'git-svn' can
be removed this way:
-------------------------------------------------------
To restrict rewriting to only part of the history, specify a revision
range in addition to the new branch name. The new branch name will
-point to the top-most revision that a `git-rev-list` of this range
+point to the top-most revision that a 'git-rev-list' of this range
will print.
*NOTE* the changes introduced by the commits, and which are not reverted
by subsequent commits, will still be in the rewritten branch. If you want
to throw out _changes_ together with the commits, you should use the
-interactive mode of `git-rebase`.
+interactive mode of 'git-rebase'.
Consider this history:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-fmt-merge-msg(1)</title>\r
</head>\r
<div class="content"><em>git fmt-merge-msg</em> [--log | --no-log] <$GIT_DIR/FETCH_HEAD\r
<em>git fmt-merge-msg</em> [--log | --no-log] -F <file></div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Takes the list of merged objects on stdin and produces a suitable\r
+<div class="para"><p>Takes the list of merged objects on stdin and produces a suitable\r
commit message to be used for the merge commit, usually to be\r
-passed as the <em><merge-message></em> argument of <tt>git-merge</tt>.</p>\r
-<p>This script is intended mostly for internal use by scripts\r
-automatically invoking <tt>git-merge</tt>.</p>\r
+passed as the <em><merge-message></em> argument of <em>git-merge</em>.</p></div>\r
+<div class="para"><p>This script is intended mostly for internal use by scripts\r
+automatically invoking <em>git-merge</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--log\r
</dt>\r
stdin.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
merge.log\r
</dt>\r
the future.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-merge.html">git-merge(1)</a></p>\r
+<div class="para"><p><a href="git-merge.html">git-merge(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:46 UTC\r
+Last updated 2008-07-06 05:16:47 UTC\r
</div>\r
</div>\r
</body>\r
-----------
Takes the list of merged objects on stdin and produces a suitable
commit message to be used for the merge commit, usually to be
-passed as the '<merge-message>' argument of `git-merge`.
+passed as the '<merge-message>' argument of 'git-merge'.
This script is intended mostly for internal use by scripts
-automatically invoking `git-merge`.
+automatically invoking 'git-merge'.
OPTIONS
-------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-for-each-ref(1)</title>\r
</head>\r
<div class="content"><em>git for-each-ref</em> [--count=<count>] [--shell|--perl|--python|--tcl]\r
[--sort=<key>]* [--format=<format>] [<pattern>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Iterate over all refs that match <tt><pattern></tt> and show them\r
+<div class="para"><p>Iterate over all refs that match <tt><pattern></tt> and show them\r
according to the given <tt><format></tt>, after sorting them according\r
to the given set of <tt><key></tt>. If <tt><max></tt> is given, stop after\r
showing that many refs. The interpolated values in <tt><format></tt>\r
can optionally be quoted as string literals in the specified\r
-host language allowing their direct evaluation in that language.</p>\r
+host language allowing their direct evaluation in that language.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<count>\r
</dt>\r
a scriptlet that can directly be `eval`ed.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>FIELD NAMES</h2>\r
+<h2 id="_field_names">FIELD NAMES</h2>\r
<div class="sectionbody">\r
-<p>Various values from structured fields in referenced objects can\r
+<div class="para"><p>Various values from structured fields in referenced objects can\r
be used to interpolate into the resulting output, or as sort\r
-keys.</p>\r
-<p>For all objects, the following names can be used:</p>\r
-<dl>\r
+keys.</p></div>\r
+<div class="para"><p>For all objects, the following names can be used:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
refname\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- The size of the object (the same as <tt>git-cat-file -s</tt> reports).\r
+ The size of the object (the same as <em>git-cat-file -s</em> reports).\r
</p>\r
</dd>\r
<dt>\r
The object name (aka SHA-1).\r
</p>\r
</dd>\r
-</dl>\r
-<p>In addition to the above, for commit and tag objects, the header\r
+</dl></div>\r
+<div class="para"><p>In addition to the above, for commit and tag objects, the header\r
field names (<tt>tree</tt>, <tt>parent</tt>, <tt>object</tt>, <tt>type</tt>, and <tt>tag</tt>) can\r
-be used to specify the value in the header field.</p>\r
-<p>Fields that have name-email-date tuple as its value (<tt>author</tt>,\r
+be used to specify the value in the header field.</p></div>\r
+<div class="para"><p>Fields that have name-email-date tuple as its value (<tt>author</tt>,\r
<tt>committer</tt>, and <tt>tagger</tt>) can be suffixed with <tt>name</tt>, <tt>email</tt>,\r
-and <tt>date</tt> to extract the named component.</p>\r
-<p>The first line of the message in a commit and tag object is\r
+and <tt>date</tt> to extract the named component.</p></div>\r
+<div class="para"><p>The first line of the message in a commit and tag object is\r
<tt>subject</tt>, the remaining lines are <tt>body</tt>. The whole message\r
-is <tt>contents</tt>.</p>\r
-<p>For sorting purposes, fields with numeric values sort in numeric\r
+is <tt>contents</tt>.</p></div>\r
+<div class="para"><p>For sorting purposes, fields with numeric values sort in numeric\r
order (<tt>objectsize</tt>, <tt>authordate</tt>, <tt>committerdate</tt>, <tt>taggerdate</tt>).\r
-All other fields are used to sort in their byte-value order.</p>\r
-<p>In any case, a field name that refers to a field inapplicable to\r
+All other fields are used to sort in their byte-value order.</p></div>\r
+<div class="para"><p>In any case, a field name that refers to a field inapplicable to\r
the object referred by the ref does not cause an error. It\r
-returns an empty string instead.</p>\r
-<p>As a special case for the date-type fields, you may specify a format for\r
+returns an empty string instead.</p></div>\r
+<div class="para"><p>As a special case for the date-type fields, you may specify a format for\r
the date by adding one of <tt>:default</tt>, <tt>:relative</tt>, <tt>:short</tt>, <tt>:local</tt>,\r
<tt>:iso8601</tt> or <tt>:rfc2822</tt> to the end of the fieldname; e.g.\r
-<tt>%(taggerdate:relative)</tt>.</p>\r
+<tt>%(taggerdate:relative)</tt>.</p></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<p>An example directly producing formatted text. Show the most recent\r
-3 tagged commits::</p>\r
+<div class="para"><p>An example directly producing formatted text. Show the most recent\r
+3 tagged commits::</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>#!/bin/sh\r
%(*body)\r
' 'refs/tags'</tt></pre>\r
</div></div>\r
-<p>A simple example showing the use of shell eval on the output,\r
-demonstrating the use of --shell. List the prefixes of all heads::</p>\r
+<div class="para"><p>A simple example showing the use of shell eval on the output,\r
+demonstrating the use of --shell. List the prefixes of all heads::</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>#!/bin/sh\r
echo `dirname $ref`\r
done</tt></pre>\r
</div></div>\r
-<p>A bit more elaborate report on tags, demonstrating that the format\r
-may be an entire script::</p>\r
+<div class="para"><p>A bit more elaborate report on tags, demonstrating that the format\r
+may be an entire script::</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>#!/bin/sh\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:46 UTC\r
+Last updated 2008-07-06 05:16:47 UTC\r
</div>\r
</div>\r
</body>\r
The type of the object (`blob`, `tree`, `commit`, `tag`).
objectsize::
- The size of the object (the same as `git-cat-file -s` reports).
+ The size of the object (the same as 'git-cat-file -s' reports).
objectname::
The object name (aka SHA-1).
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-format-patch(1)</title>\r
</head>\r
[--cover-letter]\r
[ <since> | <revision range> ]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Prepare each commit with its patch in\r
+<div class="para"><p>Prepare each commit with its patch in\r
one file per commit, formatted to resemble UNIX mailbox format.\r
The output of this command is convenient for e-mail submission or\r
-for use with <tt>git-am</tt>.</p>\r
-<p>There are two ways to specify which commits to operate on.</p>\r
-<ol>\r
+for use with <em>git-am</em>.</p></div>\r
+<div class="para"><p>There are two ways to specify which commits to operate on.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
A single commit, <since>, specifies that the commits leading\r
commits in the specified range.\r
</p>\r
</li>\r
-</ol>\r
-<p>A single commit, when interpreted as a <revision range>\r
+</ol></div>\r
+<div class="para"><p>A single commit, when interpreted as a <revision range>\r
expression, means "everything that leads to that commit", but\r
if you write <em>git format-patch <commit></em>, the previous rule\r
applies to that command line and you do not get "everything\r
since the beginning of the time". If you want to format\r
everything since project inception to one commit, say "git\r
format-patch --root <commit>" to make it clear that it is the\r
-latter case.</p>\r
-<p>By default, each output file is numbered sequentially from 1, and uses the\r
+latter case.</p></div>\r
+<div class="para"><p>By default, each output file is numbered sequentially from 1, and uses the\r
first line of the commit message (massaged for pathname safety) as\r
the filename. With the --numbered-files option, the output file names\r
will only be numbers, without the first line of the commit appended.\r
The names of the output files are printed to standard\r
-output, unless the --stdout option is specified.</p>\r
-<p>If -o is specified, output files are created in <dir>. Otherwise\r
-they are created in the current working directory.</p>\r
-<p>If -n is specified, instead of "[PATCH] Subject", the first line\r
-is formatted as "[PATCH n/m] Subject".</p>\r
-<p>If given --thread, <tt>git-format-patch</tt> will generate In-Reply-To and\r
+output, unless the --stdout option is specified.</p></div>\r
+<div class="para"><p>If -o is specified, output files are created in <dir>. Otherwise\r
+they are created in the current working directory.</p></div>\r
+<div class="para"><p>If -n is specified, instead of "[PATCH] Subject", the first line\r
+is formatted as "[PATCH n/m] Subject".</p></div>\r
+<div class="para"><p>If given --thread, <em>git-format-patch</em> will generate In-Reply-To and\r
References headers to make the second and subsequent patch mails appear\r
as replies to the first mail; this also generates a Message-Id header to\r
-reference.</p>\r
+reference.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-p\r
</dt>\r
Do not show any source or destination prefix.\r
</p>\r
</dd>\r
-</dl>\r
-<p>For more detailed explanation on these common options, see also\r
-<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>For more detailed explanation on these common options, see also\r
+<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-<n>\r
</dt>\r
filenames, use specified suffix. A common alternative is\r
<tt>--suffix=.txt</tt>.\r
</p>\r
-<p>Note that you would need to include the leading dot <tt>.</tt> if you\r
+<div class="para"><p>Note that you would need to include the leading dot <tt>.</tt> if you\r
want a filename like <tt>0001-description-of-my-change.patch</tt>, and\r
the first letter does not have to be a dot. Leaving it empty would\r
-not add any suffix.</p>\r
+not add any suffix.</p></div>\r
</dd>\r
<dt>\r
--no-binary\r
encoded in the patch.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<p>You can specify extra mail header lines to be added to each message\r
+<div class="para"><p>You can specify extra mail header lines to be added to each message\r
in the repository configuration, new defaults for the subject prefix\r
-and file suffix, and number patches when outputting more than one.</p>\r
+and file suffix, and number patches when outputting more than one.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[format]\r
cc = <email></tt></pre>\r
</div></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Extract commits between revisions R1 and R2, and apply them on top of\r
-the current branch using <tt>git-am</tt> to cherry-pick them:\r
+the current branch using <em>git-am</em> to cherry-pick them:\r
</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>$ git format-patch -k --stdout R1..R2 | git-am -3 -k</tt></pre>\r
+<pre><tt>$ git format-patch -k --stdout R1..R2 | git am -3 -k</tt></pre>\r
</div></div>\r
</li>\r
<li>\r
<div class="content">\r
<pre><tt>$ git format-patch origin</tt></pre>\r
</div></div>\r
-<p>For each commit a separate file is created in the current directory.</p>\r
+<div class="para"><p>For each commit a separate file is created in the current directory.</p></div>\r
</li>\r
<li>\r
<p>\r
</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>$ git format-patch \--root origin</tt></pre>\r
+<pre><tt>$ git format-patch --root origin</tt></pre>\r
</div></div>\r
</li>\r
<li>\r
<div class="content">\r
<pre><tt>$ git format-patch -M -B origin</tt></pre>\r
</div></div>\r
-<p>Additionally, it detects and handles renames and complete rewrites\r
+<div class="para"><p>Additionally, it detects and handles renames and complete rewrites\r
intelligently to produce a renaming patch. A renaming patch reduces\r
the amount of text output, and generally makes it easier to review it.\r
Note that the "patch" program does not understand renaming patches, so\r
-use it only when you know the recipient uses git to apply your patch.</p>\r
+use it only when you know the recipient uses git to apply your patch.</p></div>\r
</li>\r
<li>\r
<p>\r
<pre><tt>$ git format-patch -3</tt></pre>\r
</div></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-am.html">git-am(1)</a>, <a href="git-send-email.html">git-send-email(1)</a></p>\r
+<div class="para"><p><a href="git-am.html">git-am(1)</a>, <a href="git-send-email.html">git-send-email(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:46 UTC\r
+Last updated 2008-07-06 05:16:48 UTC\r
</div>\r
</div>\r
</body>\r
Prepare each commit with its patch in
one file per commit, formatted to resemble UNIX mailbox format.
The output of this command is convenient for e-mail submission or
-for use with `git-am`.
+for use with 'git-am'.
There are two ways to specify which commits to operate on.
If -n is specified, instead of "[PATCH] Subject", the first line
is formatted as "[PATCH n/m] Subject".
-If given --thread, `git-format-patch` will generate In-Reply-To and
+If given --thread, 'git-format-patch' will generate In-Reply-To and
References headers to make the second and subsequent patch mails appear
as replies to the first mail; this also generates a Message-Id header to
reference.
------------
[format]
- headers = "Organization: git-foo\n"
- subjectprefix = CHANGE
- suffix = .txt
- numbered = auto
+ headers = "Organization: git-foo\n"
+ subjectprefix = CHANGE
+ suffix = .txt
+ numbered = auto
cc = <email>
------------
--------
* Extract commits between revisions R1 and R2, and apply them on top of
-the current branch using `git-am` to cherry-pick them:
+the current branch using 'git-am' to cherry-pick them:
+
------------
-$ git format-patch -k --stdout R1..R2 | git-am -3 -k
+$ git format-patch -k --stdout R1..R2 | git am -3 -k
------------
* Extract all commits which are in the current branch but not in the
project:
+
------------
-$ git format-patch \--root origin
+$ git format-patch --root origin
------------
* The same as the previous one:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-fsck(1)</title>\r
</head>\r
<div class="content"><em>git fsck</em> [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]\r
[--full] [--strict] [--verbose] [--lost-found] [<object>*]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Verifies the connectivity and validity of the objects in the database.</p>\r
+<div class="para"><p>Verifies the connectivity and validity of the objects in the database.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<object>\r
</dt>\r
<p>\r
An object to treat as the head of an unreachability trace.\r
</p>\r
-<p>If no objects are given, <tt>git-fsck</tt> defaults to using the\r
+<div class="para"><p>If no objects are given, <em>git-fsck</em> defaults to using the\r
index file, all SHA1 references in .git/refs/*, and all reflogs (unless\r
---no-reflogs is given) as heads.</p>\r
+--no-reflogs is given) as heads.</p></div>\r
</dd>\r
<dt>\r
--unreachable\r
its object name.\r
</p>\r
</dd>\r
-</dl>\r
-<p>It tests SHA1 and general object sanity, and it does full tracking of\r
+</dl></div>\r
+<div class="para"><p>It tests SHA1 and general object sanity, and it does full tracking of\r
the resulting reachability and everything else. It prints out any\r
corruption it finds (missing or bad objects), and if you use the\r
<em>--unreachable</em> flag it will also print out objects that exist but\r
-that aren't readable from any of the specified head nodes.</p>\r
-<p>So for example</p>\r
+that aren't readable from any of the specified head nodes.</p></div>\r
+<div class="para"><p>So for example</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git fsck --unreachable HEAD $(cat .git/refs/heads/*)</tt></pre>\r
</div></div>\r
-<p>will do quite a _lot_ of verification on the tree. There are a few\r
+<div class="para"><p>will do quite a <em>lot</em> of verification on the tree. There are a few\r
extra validity tests to be added (make sure that tree objects are\r
-sorted properly etc), but on the whole if <tt>git-fsck</tt> is happy, you\r
-do have a valid tree.</p>\r
-<p>Any corrupt objects you will have to find in backups or other archives\r
-(i.e., you can just remove them and do an <tt>rsync</tt> with some other site in\r
-the hopes that somebody else has the object you have corrupted).</p>\r
-<p>Of course, "valid tree" doesn't mean that it wasn't generated by some\r
+sorted properly etc), but on the whole if <em>git-fsck</em> is happy, you\r
+do have a valid tree.</p></div>\r
+<div class="para"><p>Any corrupt objects you will have to find in backups or other archives\r
+(i.e., you can just remove them and do an <em>rsync</em> with some other site in\r
+the hopes that somebody else has the object you have corrupted).</p></div>\r
+<div class="para"><p>Of course, "valid tree" doesn't mean that it wasn't generated by some\r
evil person, and the end result might be crap. git is a revision\r
-tracking system, not a quality assurance system ;)</p>\r
+tracking system, not a quality assurance system ;)</p></div>\r
</div>\r
-<h2>Extracted Diagnostics</h2>\r
+<h2 id="_extracted_diagnostics">Extracted Diagnostics</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
expect dangling commits - potential heads - due to lack of head information\r
</dt>\r
This indicates a serious data integrity problem.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Environment Variables</h2>\r
+<h2 id="_environment_variables">Environment Variables</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
GIT_OBJECT_DIRECTORY\r
</dt>\r
used to specify additional object database roots (usually unset)\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:46 UTC\r
+Last updated 2008-07-06 05:16:48 UTC\r
</div>\r
</div>\r
</body>\r
<object>::
An object to treat as the head of an unreachability trace.
+
-If no objects are given, `git-fsck` defaults to using the
+If no objects are given, 'git-fsck' defaults to using the
index file, all SHA1 references in .git/refs/*, and all reflogs (unless
--no-reflogs is given) as heads.
will do quite a _lot_ of verification on the tree. There are a few
extra validity tests to be added (make sure that tree objects are
-sorted properly etc), but on the whole if `git-fsck` is happy, you
+sorted properly etc), but on the whole if 'git-fsck' is happy, you
do have a valid tree.
Any corrupt objects you will have to find in backups or other archives
-(i.e., you can just remove them and do an `rsync` with some other site in
+(i.e., you can just remove them and do an 'rsync' with some other site in
the hopes that somebody else has the object you have corrupted).
Of course, "valid tree" doesn't mean that it wasn't generated by some
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-gc(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git gc</em> [--aggressive] [--auto] [--quiet]</p>\r
+<div class="para"><p><em>git gc</em> [--aggressive] [--auto] [--quiet]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Runs a number of housekeeping tasks within the current repository,\r
+<div class="para"><p>Runs a number of housekeeping tasks within the current repository,\r
such as compressing file revisions (to reduce disk space and increase\r
performance) and removing unreachable objects which may have been\r
-created from prior invocations of <tt>git-add</tt>.</p>\r
-<p>Users are encouraged to run this task on a regular basis within\r
+created from prior invocations of <em>git-add</em>.</p></div>\r
+<div class="para"><p>Users are encouraged to run this task on a regular basis within\r
each repository to maintain good disk space utilization and good\r
-operating performance.</p>\r
-<p>Some git commands may automatically run <tt>git-gc</tt>; see the <tt>--auto</tt> flag\r
+operating performance.</p></div>\r
+<div class="para"><p>Some git commands may automatically run <em>git-gc</em>; see the <tt>--auto</tt> flag\r
below for details. If you know what you're doing and all you want is to\r
-disable this behavior permanently without further considerations, just do:</p>\r
+disable this behavior permanently without further considerations, just do:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git config --global gc.auto 0</tt></pre>\r
</div></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--aggressive\r
</dt>\r
<dd>\r
<p>\r
- Usually <tt>git-gc</tt> runs very quickly while providing good disk\r
+ Usually <em>git-gc</em> runs very quickly while providing good disk\r
space utilization and performance. This option will cause\r
- <tt>git-gc</tt> to more aggressively optimize the repository at the expense\r
+ <em>git-gc</em> to more aggressively optimize the repository at the expense\r
of taking much more time. The effects of this optimization are\r
persistent, so this option only needs to be used occasionally; every\r
few hundred changesets or so.\r
</dt>\r
<dd>\r
<p>\r
- With this option, <tt>git-gc</tt> checks whether any housekeeping is\r
+ With this option, <em>git-gc</em> checks whether any housekeeping is\r
required; if not, it exits without performing any work.\r
Some git commands run <tt>git gc --auto</tt> after performing\r
operations that could create many loose objects.\r
</p>\r
-<p>Housekeeping is required if there are too many loose objects or\r
+<div class="para"><p>Housekeeping is required if there are too many loose objects or\r
too many packs in the repository. If the number of loose objects\r
exceeds the value of the <tt>gc.auto</tt> configuration variable, then\r
all loose objects are combined into a single pack using\r
-<tt>git-repack -d -l</tt>. Setting the value of <tt>gc.auto</tt> to 0\r
-disables automatic packing of loose objects.</p>\r
-<p>If the number of packs exceeds the value of <tt>gc.autopacklimit</tt>,\r
+<em>git-repack -d -l</em>. Setting the value of <tt>gc.auto</tt> to 0\r
+disables automatic packing of loose objects.</p></div>\r
+<div class="para"><p>If the number of packs exceeds the value of <tt>gc.autopacklimit</tt>,\r
then existing packs (except those marked with a <tt>.keep</tt> file)\r
are consolidated into a single pack by using the <tt>-A</tt> option of\r
-<tt>git-repack</tt>. Setting <tt>gc.autopacklimit</tt> to 0 disables\r
-automatic consolidation of packs.</p>\r
+<em>git-repack</em>. Setting <tt>gc.autopacklimit</tt> to 0 disables\r
+automatic consolidation of packs.</p></div>\r
</dd>\r
<dt>\r
--quiet\r
Suppress all progress reports.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Configuration</h2>\r
+<h2 id="_configuration">Configuration</h2>\r
<div class="sectionbody">\r
-<p>The optional configuration variable <em>gc.reflogExpire</em> can be\r
+<div class="para"><p>The optional configuration variable <em>gc.reflogExpire</em> can be\r
set to indicate how long historical entries within each branch's\r
reflog should remain available in this repository. The setting is\r
expressed as a length of time, for example <em>90 days</em> or <em>3 months</em>.\r
-It defaults to <em>90 days</em>.</p>\r
-<p>The optional configuration variable <em>gc.reflogExpireUnreachable</em>\r
+It defaults to <em>90 days</em>.</p></div>\r
+<div class="para"><p>The optional configuration variable <em>gc.reflogExpireUnreachable</em>\r
can be set to indicate how long historical reflog entries which\r
are not part of the current branch should remain available in\r
this repository. These types of entries are generally created as\r
a result of using <tt>git commit --amend</tt> or <tt>git rebase</tt> and are the\r
commits prior to the amend or rebase occurring. Since these changes\r
are not part of the current project most users will want to expire\r
-them sooner. This option defaults to <em>30 days</em>.</p>\r
-<p>The optional configuration variable <em>gc.rerereresolved</em> indicates\r
+them sooner. This option defaults to <em>30 days</em>.</p></div>\r
+<div class="para"><p>The optional configuration variable <em>gc.rerereresolved</em> indicates\r
how long records of conflicted merge you resolved earlier are\r
-kept. This defaults to 60 days.</p>\r
-<p>The optional configuration variable <em>gc.rerereunresolved</em> indicates\r
+kept. This defaults to 60 days.</p></div>\r
+<div class="para"><p>The optional configuration variable <em>gc.rerereunresolved</em> indicates\r
how long records of conflicted merge you have not resolved are\r
-kept. This defaults to 15 days.</p>\r
-<p>The optional configuration variable <em>gc.packrefs</em> determines if\r
-<tt>git-gc</tt> runs <tt>git-pack-refs</tt>. This can be set to "nobare" to enable\r
+kept. This defaults to 15 days.</p></div>\r
+<div class="para"><p>The optional configuration variable <em>gc.packrefs</em> determines if\r
+<em>git-gc</em> runs <em>git-pack-refs</em>. This can be set to "nobare" to enable\r
it within all non-bare repos or it can be set to a boolean value.\r
-This defaults to true.</p>\r
-<p>The optional configuration variable <em>gc.aggressiveWindow</em> controls how\r
+This defaults to true.</p></div>\r
+<div class="para"><p>The optional configuration variable <em>gc.aggressiveWindow</em> controls how\r
much time is spent optimizing the delta compression of the objects in\r
the repository when the --aggressive option is specified. The larger\r
the value, the more time is spent optimizing the delta compression. See\r
the documentation for the --window' option in <a href="git-repack.html">git-repack(1)</a> for\r
-more details. This defaults to 10.</p>\r
-<p>The optional configuration variable <em>gc.pruneExpire</em> controls how old\r
+more details. This defaults to 10.</p></div>\r
+<div class="para"><p>The optional configuration variable <em>gc.pruneExpire</em> controls how old\r
the unreferenced loose objects have to be before they are pruned. The\r
-default is "2 weeks ago".</p>\r
+default is "2 weeks ago".</p></div>\r
</div>\r
-<h2>Notes</h2>\r
+<h2 id="_notes">Notes</h2>\r
<div class="sectionbody">\r
-<p><tt>git-gc</tt> tries very hard to be safe about the garbage it collects. In\r
+<div class="para"><p><em>git-gc</em> tries very hard to be safe about the garbage it collects. In\r
particular, it will keep not only objects referenced by your current set\r
of branches and tags, but also objects referenced by the index, remote\r
-tracking branches, refs saved by <tt>git-filter-branch</tt> in\r
+tracking branches, refs saved by <em>git-filter-branch</em> in\r
refs/original/, or reflogs (which may references commits in branches\r
-that were later amended or rewound).</p>\r
-<p>If you are expecting some objects to be collected and they aren't, check\r
+that were later amended or rewound).</p></div>\r
+<div class="para"><p>If you are expecting some objects to be collected and they aren't, check\r
all of those locations and decide whether it makes sense in your case to\r
-remove those references.</p>\r
+remove those references.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-prune.html">git-prune(1)</a>\r
+<div class="para"><p><a href="git-prune.html">git-prune(1)</a>\r
<a href="git-reflog.html">git-reflog(1)</a>\r
<a href="git-repack.html">git-repack(1)</a>\r
-<a href="git-rerere.html">git-rerere(1)</a></p>\r
+<a href="git-rerere.html">git-rerere(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Shawn O. Pearce <spearce@spearce.org></p>\r
+<div class="para"><p>Written by Shawn O. Pearce <spearce@spearce.org></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:47 UTC\r
+Last updated 2008-07-06 05:16:49 UTC\r
</div>\r
</div>\r
</body>\r
Runs a number of housekeeping tasks within the current repository,
such as compressing file revisions (to reduce disk space and increase
performance) and removing unreachable objects which may have been
-created from prior invocations of `git-add`.
+created from prior invocations of 'git-add'.
Users are encouraged to run this task on a regular basis within
each repository to maintain good disk space utilization and good
operating performance.
-Some git commands may automatically run `git-gc`; see the `--auto` flag
+Some git commands may automatically run 'git-gc'; see the `--auto` flag
below for details. If you know what you're doing and all you want is to
disable this behavior permanently without further considerations, just do:
-------
--aggressive::
- Usually `git-gc` runs very quickly while providing good disk
+ Usually 'git-gc' runs very quickly while providing good disk
space utilization and performance. This option will cause
- `git-gc` to more aggressively optimize the repository at the expense
+ 'git-gc' to more aggressively optimize the repository at the expense
of taking much more time. The effects of this optimization are
persistent, so this option only needs to be used occasionally; every
few hundred changesets or so.
--auto::
- With this option, `git-gc` checks whether any housekeeping is
+ With this option, 'git-gc' checks whether any housekeeping is
required; if not, it exits without performing any work.
Some git commands run `git gc --auto` after performing
operations that could create many loose objects.
too many packs in the repository. If the number of loose objects
exceeds the value of the `gc.auto` configuration variable, then
all loose objects are combined into a single pack using
-`git-repack -d -l`. Setting the value of `gc.auto` to 0
+'git-repack -d -l'. Setting the value of `gc.auto` to 0
disables automatic packing of loose objects.
+
If the number of packs exceeds the value of `gc.autopacklimit`,
then existing packs (except those marked with a `.keep` file)
are consolidated into a single pack by using the `-A` option of
-`git-repack`. Setting `gc.autopacklimit` to 0 disables
+'git-repack'. Setting `gc.autopacklimit` to 0 disables
automatic consolidation of packs.
--quiet::
kept. This defaults to 15 days.
The optional configuration variable 'gc.packrefs' determines if
-`git-gc` runs `git-pack-refs`. This can be set to "nobare" to enable
+'git-gc' runs 'git-pack-refs'. This can be set to "nobare" to enable
it within all non-bare repos or it can be set to a boolean value.
This defaults to true.
Notes
-----
-`git-gc` tries very hard to be safe about the garbage it collects. In
+'git-gc' tries very hard to be safe about the garbage it collects. In
particular, it will keep not only objects referenced by your current set
of branches and tags, but also objects referenced by the index, remote
-tracking branches, refs saved by `git-filter-branch` in
+tracking branches, refs saved by 'git-filter-branch' in
refs/original/, or reflogs (which may references commits in branches
that were later amended or rewound).
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-get-tar-commit-id(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git get-tar-commit-id</em> < <tarfile></p>\r
+<div class="para"><p><em>git get-tar-commit-id</em> < <tarfile></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Acts as a filter, extracting the commit ID stored in archives created by\r
-<tt>git-archive</tt>. It reads only the first 1024 bytes of input, thus its\r
-runtime is not influenced by the size of <tarfile> very much.</p>\r
-<p>If no commit ID is found, <tt>git-get-tar-commit-id</tt> quietly exists with a\r
+<div class="para"><p>Acts as a filter, extracting the commit ID stored in archives created by\r
+<em>git-archive</em>. It reads only the first 1024 bytes of input, thus its\r
+runtime is not influenced by the size of <tarfile> very much.</p></div>\r
+<div class="para"><p>If no commit ID is found, <em>git-get-tar-commit-id</em> quietly exists with a\r
return code of 1. This can happen if <tarfile> had not been created\r
-using <tt>git-archive</tt> or if the first parameter of <tt>git-archive</tt> had been\r
-a tree ID instead of a commit ID or tag.</p>\r
+using <em>git-archive</em> or if the first parameter of <em>git-archive</em> had been\r
+a tree ID instead of a commit ID or tag.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Rene Scharfe <rene.scharfe@lsrfire.ath.cx></p>\r
+<div class="para"><p>Written by Rene Scharfe <rene.scharfe@lsrfire.ath.cx></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:47 UTC\r
+Last updated 2008-07-06 05:16:49 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
Acts as a filter, extracting the commit ID stored in archives created by
-`git-archive`. It reads only the first 1024 bytes of input, thus its
+'git-archive'. It reads only the first 1024 bytes of input, thus its
runtime is not influenced by the size of <tarfile> very much.
-If no commit ID is found, `git-get-tar-commit-id` quietly exists with a
+If no commit ID is found, 'git-get-tar-commit-id' quietly exists with a
return code of 1. This can happen if <tarfile> had not been created
-using `git-archive` or if the first parameter of `git-archive` had been
+using 'git-archive' or if the first parameter of 'git-archive' had been
a tree ID instead of a commit ID or tag.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-grep(1)</title>\r
</head>\r
[--and|--or|--not|(|)|-e <pattern>…] [<tree>…]\r
[--] [<path>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Look for specified patterns in the working tree files, blobs\r
-registered in the index file, or given tree objects.</p>\r
+<div class="para"><p>Look for specified patterns in the working tree files, blobs\r
+registered in the index file, or given tree objects.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--cached\r
</dt>\r
<p>\r
Instead of showing every matched line, show only the\r
names of files that contain (or do not contain) matches.\r
- For better compatibility with <tt>git-diff</tt>, --name-only is a\r
+ For better compatibility with <em>git-diff</em>, --name-only is a\r
synonym for --files-with-matches.\r
</p>\r
</dd>\r
are <path> limiters.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Example</h2>\r
+<h2 id="_example">Example</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)\r
</dt>\r
files that have lines that match both.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Originally written by Linus Torvalds <torvalds@osdl.org>, later\r
-revamped by Junio C Hamano.</p>\r
+<div class="para"><p>Originally written by Linus Torvalds <torvalds@osdl.org>, later\r
+revamped by Junio C Hamano.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:47 UTC\r
+Last updated 2008-07-06 05:16:49 UTC\r
</div>\r
</div>\r
</body>\r
--files-without-match::
Instead of showing every matched line, show only the
names of files that contain (or do not contain) matches.
- For better compatibility with `git-diff`, --name-only is a
+ For better compatibility with 'git-diff', --name-only is a
synonym for --files-with-matches.
-c::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-gui(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git gui</em> [<command>] [arguments]</p>\r
+<div class="para"><p><em>git gui</em> [<command>] [arguments]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>A Tcl/Tk based graphical user interface to Git. <tt>git-gui</tt> focuses\r
+<div class="para"><p>A Tcl/Tk based graphical user interface to Git. <em>git-gui</em> focuses\r
on allowing users to make changes to their repository by making\r
new commits, amending existing ones, creating branches, performing\r
-local merges, and fetching/pushing to remote repositories.</p>\r
-<p>Unlike <tt>gitk</tt>, <tt>git-gui</tt> focuses on commit generation\r
+local merges, and fetching/pushing to remote repositories.</p></div>\r
+<div class="para"><p>Unlike <em>gitk</em>, <em>git-gui</em> focuses on commit generation\r
and single file annotation and does not show project history.\r
-It does however supply menu actions to start a <tt>gitk</tt> session from\r
-within <tt>git-gui</tt>.</p>\r
-<p><tt>git-gui</tt> is known to work on all popular UNIX systems, Mac OS X,\r
+It does however supply menu actions to start a <em>gitk</em> session from\r
+within <em>git-gui</em>.</p></div>\r
+<div class="para"><p><em>git-gui</em> is known to work on all popular UNIX systems, Mac OS X,\r
and Windows (under both Cygwin and MSYS). To the extent possible\r
-OS specific user interface guidelines are followed, making <tt>git-gui</tt>\r
-a fairly native interface for users.</p>\r
+OS specific user interface guidelines are followed, making <em>git-gui</em>\r
+a fairly native interface for users.</p></div>\r
</div>\r
-<h2>COMMANDS</h2>\r
+<h2 id="_commands">COMMANDS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
blame\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Start <tt>git-gui</tt> and arrange to make exactly one commit before\r
+ Start <em>git-gui</em> and arrange to make exactly one commit before\r
exiting and returning to the shell. The interface is limited\r
to only commit actions, slightly reducing the application's\r
startup time and simplifying the menubar.\r
</dt>\r
<dd>\r
<p>\r
- Display the currently running version of <tt>git-gui</tt>.\r
+ Display the currently running version of <em>git-gui</em>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git gui blame Makefile\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Same as <em>git gui citool</em> (above).\r
+ Same as <tt>git gui citool</tt> (above).\r
</p>\r
</dd>\r
<dt>\r
blame viewer.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="gitk.html">gitk(1)</a>\r
</dt>\r
<p>\r
The git repository browser. Shows branches, commit history\r
and file differences. gitk is the utility started by\r
- <tt>git-gui</tt>'s Repository Visualize actions.\r
+ <em>git-gui</em>'s Repository Visualize actions.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Other</h2>\r
+<h2 id="_other">Other</h2>\r
<div class="sectionbody">\r
-<p><tt>git-gui</tt> is actually maintained as an independent project, but stable\r
+<div class="para"><p><em>git-gui</em> is actually maintained as an independent project, but stable\r
versions are distributed as part of the Git suite for the convenience\r
-of end users.</p>\r
-<p>A <tt>git-gui</tt> development repository can be obtained from:</p>\r
+of end users.</p></div>\r
+<div class="para"><p>A <em>git-gui</em> development repository can be obtained from:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git clone git://repo.or.cz/git-gui.git</tt></pre>\r
</div></div>\r
-<p>or</p>\r
+<div class="para"><p>or</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git clone http://repo.or.cz/r/git-gui.git</tt></pre>\r
</div></div>\r
-<p>or browsed online at <a href="http://repo.or.cz/w/git-gui.git/">http://repo.or.cz/w/git-gui.git/</a>.</p>\r
+<div class="para"><p>or browsed online at <a href="http://repo.or.cz/w/git-gui.git/">http://repo.or.cz/w/git-gui.git/</a>.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Shawn O. Pearce <spearce@spearce.org>.</p>\r
+<div class="para"><p>Written by Shawn O. Pearce <spearce@spearce.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Shawn O. Pearce <spearce@spearce.org>.</p>\r
+<div class="para"><p>Documentation by Shawn O. Pearce <spearce@spearce.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:47 UTC\r
+Last updated 2008-07-06 05:16:49 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-A Tcl/Tk based graphical user interface to Git. `git-gui` focuses
+A Tcl/Tk based graphical user interface to Git. 'git-gui' focuses
on allowing users to make changes to their repository by making
new commits, amending existing ones, creating branches, performing
local merges, and fetching/pushing to remote repositories.
-Unlike `gitk`, `git-gui` focuses on commit generation
+Unlike 'gitk', 'git-gui' focuses on commit generation
and single file annotation and does not show project history.
-It does however supply menu actions to start a `gitk` session from
-within `git-gui`.
+It does however supply menu actions to start a 'gitk' session from
+within 'git-gui'.
-`git-gui` is known to work on all popular UNIX systems, Mac OS X,
+'git-gui' is known to work on all popular UNIX systems, Mac OS X,
and Windows (under both Cygwin and MSYS). To the extent possible
-OS specific user interface guidelines are followed, making `git-gui`
+OS specific user interface guidelines are followed, making 'git-gui'
a fairly native interface for users.
COMMANDS
browser::
Start a tree browser showing all files in the specified
- commit (or 'HEAD' by default). Files selected through the
+ commit (or 'HEAD' by default). Files selected through the
browser are opened in the blame viewer.
citool::
- Start `git-gui` and arrange to make exactly one commit before
+ Start 'git-gui' and arrange to make exactly one commit before
exiting and returning to the shell. The interface is limited
to only commit actions, slightly reducing the application's
startup time and simplifying the menubar.
version::
- Display the currently running version of `git-gui`.
+ Display the currently running version of 'git-gui'.
Examples
git gui blame v0.99.8 Makefile::
Show the contents of 'Makefile' in revision 'v0.99.8'
- and provide annotations for each line. Unlike the above
+ and provide annotations for each line. Unlike the above
example the file is read from the object database and not
the working directory.
git citool::
- Same as 'git gui citool' (above).
+ Same as `git gui citool` (above).
git gui browser maint::
linkgit:gitk[1]::
The git repository browser. Shows branches, commit history
and file differences. gitk is the utility started by
- `git-gui`'s Repository Visualize actions.
+ 'git-gui''s Repository Visualize actions.
Other
-----
-`git-gui` is actually maintained as an independent project, but stable
+'git-gui' is actually maintained as an independent project, but stable
versions are distributed as part of the Git suite for the convenience
of end users.
-A `git-gui` development repository can be obtained from:
+A 'git-gui' development repository can be obtained from:
git clone git://repo.or.cz/git-gui.git
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-hash-object(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git hash-object</em> [-t <type>] [-w] [--stdin | --stdin-paths] [--] <file>…</p>\r
+<div class="para"><p><em>git hash-object</em> [-t <type>] [-w] [--stdin | --stdin-paths] [--] <file>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Computes the object ID value for an object with specified type\r
+<div class="para"><p>Computes the object ID value for an object with specified type\r
with the contents of the named file (which can be outside of the\r
work tree), and optionally writes the resulting object into the\r
object database. Reports its object ID to its standard output.\r
-This is used by <tt>git-cvsimport</tt> to update the index\r
+This is used by <em>git-cvsimport</em> to update the index\r
without modifying files in the work tree. When <type> is not\r
-specified, it defaults to "blob".</p>\r
+specified, it defaults to "blob".</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-t <type>\r
</dt>\r
Read file names from stdin instead of from the command-line.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:48 UTC\r
+Last updated 2008-07-06 05:16:50 UTC\r
</div>\r
</div>\r
</body>\r
with the contents of the named file (which can be outside of the
work tree), and optionally writes the resulting object into the
object database. Reports its object ID to its standard output.
-This is used by `git-cvsimport` to update the index
+This is used by 'git-cvsimport' to update the index
without modifying files in the work tree. When <type> is not
specified, it defaults to "blob".
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-help(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git help</em> [-a|--all|-i|--info|-m|--man|-w|--web] [COMMAND]</p>\r
+<div class="para"><p><em>git help</em> [-a|--all|-i|--info|-m|--man|-w|--web] [COMMAND]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>With no options and no COMMAND given, the synopsis of the <em>git</em>\r
+<div class="para"><p>With no options and no COMMAND given, the synopsis of the <em>git</em>\r
command and a list of the most commonly used git commands are printed\r
-on the standard output.</p>\r
-<p>If the option <em>--all</em> or <em>-a</em> is given, then all available commands are\r
-printed on the standard output.</p>\r
-<p>If a git command is named, a manual page for that command is brought\r
+on the standard output.</p></div>\r
+<div class="para"><p>If the option <em>--all</em> or <em>-a</em> is given, then all available commands are\r
+printed on the standard output.</p></div>\r
+<div class="para"><p>If a git command is named, a manual page for that command is brought\r
up. The <em>man</em> program is used by default for this purpose, but this\r
-can be overridden by other options or configuration variables.</p>\r
-<p>Note that <em>git --help …</em> is identical as <em>git help …</em> because the\r
-former is internally converted into the latter.</p>\r
+can be overridden by other options or configuration variables.</p></div>\r
+<div class="para"><p>Note that <tt>git --help …</tt> is identical to <tt>git help …</tt> because the\r
+former is internally converted into the latter.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-a\r
</dt>\r
option may be used to override a value set in the\r
<em>help.format</em> configuration variable.\r
</p>\r
-<p>By default the <em>man</em> program will be used to display the manual page,\r
+<div class="para"><p>By default the <em>man</em> program will be used to display the manual page,\r
but the <em>man.viewer</em> configuration variable may be used to choose\r
-other display programs (see below).</p>\r
+other display programs (see below).</p></div>\r
</dd>\r
<dt>\r
-w\r
Display manual page for the command in the <em>web</em> (HTML)\r
format. A web browser will be used for that purpose.\r
</p>\r
-<p>The web browser can be specified using the configuration variable\r
+<div class="para"><p>The web browser can be specified using the configuration variable\r
<em>help.browser</em>, or <em>web.browser</em> if the former is not set. If none of\r
-these config variables is set, the <tt>git-web--browse</tt> helper script\r
-(called by <tt>git-help</tt>) will pick a suitable default. See\r
-<a href="git-web--browse.html">git-web--browse(1)</a> for more information about this.</p>\r
+these config variables is set, the <em>git-web--browse</em> helper script\r
+(called by <em>git-help</em>) will pick a suitable default. See\r
+<a href="git-web--browse.html">git-web--browse(1)</a> for more information about this.</p></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION VARIABLES</h2>\r
+<h2 id="_configuration_variables">CONFIGURATION VARIABLES</h2>\r
<div class="sectionbody">\r
-<h3>help.format</h3>\r
-<p>If no command line option is passed, the <em>help.format</em> configuration\r
+<h3 id="_help_format">help.format</h3><div style="clear:left"></div>\r
+<div class="para"><p>If no command line option is passed, the <em>help.format</em> configuration\r
variable will be checked. The following values are supported for this\r
-variable; they make <tt>git-help</tt> behave as their corresponding command\r
-line option:</p>\r
-<ul>\r
+variable; they make <em>git-help</em> behave as their corresponding command\r
+line option:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
"man" corresponds to <em>-m|--man</em>,\r
"web" or "html" correspond to <em>-w|--web</em>.\r
</p>\r
</li>\r
-</ul>\r
-<h3>help.browser, web.browser and browser.<tool>.path</h3>\r
-<p>The <em>help.browser</em>, <em>web.browser</em> and <em>browser.<tool>.path</em> will also\r
+</ul></div>\r
+<h3 id="_help_browser_web_browser_and_browser_lt_tool_gt_path">help.browser, web.browser and browser.<tool>.path</h3><div style="clear:left"></div>\r
+<div class="para"><p>The <em>help.browser</em>, <em>web.browser</em> and <em>browser.<tool>.path</em> will also\r
be checked if the <em>web</em> format is chosen (either by command line\r
option or configuration variable). See <em>-w|--web</em> in the OPTIONS\r
-section above and <a href="git-web--browse.html">git-web--browse(1)</a>.</p>\r
-<h3>man.viewer</h3>\r
-<p>The <em>man.viewer</em> config variable will be checked if the <em>man</em> format\r
-is chosen. The following values are currently supported:</p>\r
-<ul>\r
+section above and <a href="git-web--browse.html">git-web--browse(1)</a>.</p></div>\r
+<h3 id="_man_viewer">man.viewer</h3><div style="clear:left"></div>\r
+<div class="para"><p>The <em>man.viewer</em> config variable will be checked if the <em>man</em> format\r
+is chosen. The following values are currently supported:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
"man": use the <em>man</em> program as usual,\r
tab (see <em>Note about konqueror</em> below).\r
</p>\r
</li>\r
-</ul>\r
-<p>Values for other tools can be used if there is a corresponding\r
-<em>man.<tool>.cmd</em> configuration entry (see below).</p>\r
-<p>Multiple values may be given to the <em>man.viewer</em> configuration\r
+</ul></div>\r
+<div class="para"><p>Values for other tools can be used if there is a corresponding\r
+<em>man.<tool>.cmd</em> configuration entry (see below).</p></div>\r
+<div class="para"><p>Multiple values may be given to the <em>man.viewer</em> configuration\r
variable. Their corresponding programs will be tried in the order\r
-listed in the configuration file.</p>\r
-<p>For example, this configuration:</p>\r
+listed in the configuration file.</p></div>\r
+<div class="para"><p>For example, this configuration:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [man]\r
viewer = konqueror\r
viewer = woman</tt></pre>\r
</div></div>\r
-<p>will try to use konqueror first. But this may fail (for example if\r
-DISPLAY is not set) and in that case emacs' woman mode will be tried.</p>\r
-<p>If everything fails the <em>man</em> program will be tried anyway.</p>\r
-<h3>man.<tool>.path</h3>\r
-<p>You can explicitly provide a full path to your preferred man viewer by\r
+<div class="para"><p>will try to use konqueror first. But this may fail (for example if\r
+DISPLAY is not set) and in that case emacs' woman mode will be tried.</p></div>\r
+<div class="para"><p>If everything fails the <em>man</em> program will be tried anyway.</p></div>\r
+<h3 id="_man_lt_tool_gt_path">man.<tool>.path</h3><div style="clear:left"></div>\r
+<div class="para"><p>You can explicitly provide a full path to your preferred man viewer by\r
setting the configuration variable <em>man.<tool>.path</em>. For example, you\r
can configure the absolute path to konqueror by setting\r
-<em>man.konqueror.path</em>. Otherwise, <em>git help</em> assumes the tool is\r
-available in PATH.</p>\r
-<h3>man.<tool>.cmd</h3>\r
-<p>When the man viewer, specified by the <em>man.viewer</em> configuration\r
+<em>man.konqueror.path</em>. Otherwise, <em>git-help</em> assumes the tool is\r
+available in PATH.</p></div>\r
+<h3 id="_man_lt_tool_gt_cmd">man.<tool>.cmd</h3><div style="clear:left"></div>\r
+<div class="para"><p>When the man viewer, specified by the <em>man.viewer</em> configuration\r
variables, is not among the supported ones, then the corresponding\r
<em>man.<tool>.cmd</em> configuration variable will be looked up. If this\r
variable exists then the specified tool will be treated as a custom\r
command and a shell eval will be used to run the command with the man\r
-page passed as arguments.</p>\r
-<h3>Note about konqueror</h3>\r
-<p>When <em>konqueror</em> is specified in the <em>man.viewer</em> configuration\r
+page passed as arguments.</p></div>\r
+<h3 id="_note_about_konqueror">Note about konqueror</h3><div style="clear:left"></div>\r
+<div class="para"><p>When <em>konqueror</em> is specified in the <em>man.viewer</em> configuration\r
variable, we launch <em>kfmclient</em> to try to open the man page on an\r
-already opened konqueror in a new tab if possible.</p>\r
-<p>For consistency, we also try such a trick if <em>man.konqueror.path</em> is\r
+already opened konqueror in a new tab if possible.</p></div>\r
+<div class="para"><p>For consistency, we also try such a trick if <em>man.konqueror.path</em> is\r
set to something like <em>A_PATH_TO/konqueror</em>. That means we will try to\r
-launch <em>A_PATH_TO/kfmclient</em> instead.</p>\r
-<p>If you really want to use <em>konqueror</em>, then you can use something like\r
-the following:</p>\r
+launch <em>A_PATH_TO/kfmclient</em> instead.</p></div>\r
+<div class="para"><p>If you really want to use <em>konqueror</em>, then you can use something like\r
+the following:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [man]\r
[man "konq"]\r
cmd = A_PATH_TO/konqueror</tt></pre>\r
</div></div>\r
-<h3>Note about git config --global</h3>\r
-<p>Note that all these configuration variables should probably be set\r
-using the <em>--global</em> flag, for example like this:</p>\r
+<h3 id="_note_about_git_config_global">Note about git config --global</h3><div style="clear:left"></div>\r
+<div class="para"><p>Note that all these configuration variables should probably be set\r
+using the <em>--global</em> flag, for example like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git config --global help.format web\r
$ git config --global web.browser firefox</tt></pre>\r
</div></div>\r
-<p>as they are probably more user specific than repository specific.\r
-See <a href="git-config.html">git-config(1)</a> for more information about this.</p>\r
+<div class="para"><p>as they are probably more user specific than repository specific.\r
+See <a href="git-config.html">git-config(1)</a> for more information about this.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <gitster@pobox.com> and the git-list\r
-<git@vger.kernel.org>.</p>\r
+<div class="para"><p>Written by Junio C Hamano <gitster@pobox.com> and the git-list\r
+<git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Initial documentation was part of the <a href="git.html">git(1)</a> man page.\r
+<div class="para"><p>Initial documentation was part of the <a href="git.html">git(1)</a> man page.\r
Christian Couder <chriscool@tuxfamily.org> extracted and rewrote it a\r
-little. Maintenance is done by the git-list <git@vger.kernel.org>.</p>\r
+little. Maintenance is done by the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:48 UTC\r
+Last updated 2008-07-06 05:16:50 UTC\r
</div>\r
</div>\r
</body>\r
up. The 'man' program is used by default for this purpose, but this
can be overridden by other options or configuration variables.
-Note that 'git --help ...' is identical as 'git help ...' because the
+Note that `git --help ...` is identical to `git help ...` because the
former is internally converted into the latter.
OPTIONS
+
The web browser can be specified using the configuration variable
'help.browser', or 'web.browser' if the former is not set. If none of
-these config variables is set, the `git-web--browse` helper script
-(called by `git-help`) will pick a suitable default. See
+these config variables is set, the 'git-web--browse' helper script
+(called by 'git-help') will pick a suitable default. See
linkgit:git-web--browse[1] for more information about this.
CONFIGURATION VARIABLES
If no command line option is passed, the 'help.format' configuration
variable will be checked. The following values are supported for this
-variable; they make `git-help` behave as their corresponding command
+variable; they make 'git-help' behave as their corresponding command
line option:
* "man" corresponds to '-m|--man',
You can explicitly provide a full path to your preferred man viewer by
setting the configuration variable 'man.<tool>.path'. For example, you
can configure the absolute path to konqueror by setting
-'man.konqueror.path'. Otherwise, 'git help' assumes the tool is
+'man.konqueror.path'. Otherwise, 'git-help' assumes the tool is
available in PATH.
man.<tool>.cmd
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-http-fetch(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git http-fetch</em> [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [--stdin] <commit> <url></p>\r
+<div class="para"><p><em>git http-fetch</em> [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [--stdin] <commit> <url></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Downloads a remote git repository via HTTP.</p>\r
+<div class="para"><p>Downloads a remote git repository via HTTP.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
commit-id\r
</dt>\r
<dd>\r
<p>\r
Instead of a commit id on the command line (which is not expected in this\r
- case), <tt>git-http-fetch</tt> expects lines on stdin in the format\r
+ case), <em>git-http-fetch</em> expects lines on stdin in the format\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
an earlier fetch is interrupted.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:48 UTC\r
+Last updated 2008-07-06 05:16:50 UTC\r
</div>\r
</div>\r
</body>\r
--stdin::
Instead of a commit id on the command line (which is not expected in this
- case), `git-http-fetch` expects lines on stdin in the format
+ case), 'git-http-fetch' expects lines on stdin in the format
<commit-id>['\t'<filename-as-in--w>]
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-imap-send(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git imap-send</em></p>\r
+<div class="para"><p><em>git imap-send</em></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This command uploads a mailbox generated with git-format-patch\r
+<div class="para"><p>This command uploads a mailbox generated with git-format-patch\r
into an imap drafts folder. This allows patches to be sent as\r
other email is sent with mail clients that cannot read mailbox\r
-files directly.</p>\r
-<p>Typical usage is something like:</p>\r
-<p>git format-patch --signoff --stdout --attach origin | git imap-send</p>\r
+files directly.</p></div>\r
+<div class="para"><p>Typical usage is something like:</p></div>\r
+<div class="para"><p>git format-patch --signoff --stdout --attach origin | git imap-send</p></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<p><tt>git-imap-send</tt> requires the following values in the repository\r
-configuration file (shown with examples):</p>\r
+<div class="para"><p><em>git-imap-send</em> requires the following values in the repository\r
+configuration file (shown with examples):</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>[imap]\r
Port = 143</tt></pre>\r
</div></div>\r
</div>\r
-<h2>BUGS</h2>\r
+<h2 id="_bugs">BUGS</h2>\r
<div class="sectionbody">\r
-<p>Doesn't handle lines starting with "From " in the message body.</p>\r
+<div class="para"><p>Doesn't handle lines starting with "From " in the message body.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Derived from isync 1.0.1 by Mike McCormack.</p>\r
+<div class="para"><p>Derived from isync 1.0.1 by Mike McCormack.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Mike McCormack</p>\r
+<div class="para"><p>Documentation by Mike McCormack</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:49 UTC\r
+Last updated 2008-07-06 05:16:50 UTC\r
</div>\r
</div>\r
</body>\r
CONFIGURATION
-------------
-`git-imap-send` requires the following values in the repository
+'git-imap-send' requires the following values in the repository
configuration file (shown with examples):
..........................
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-index-pack(1)</title>\r
</head>\r
<em>git index-pack</em> --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]\r
[<pack-file>]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Reads a packed archive (.pack) from the specified file, and\r
+<div class="para"><p>Reads a packed archive (.pack) from the specified file, and\r
builds a pack index file (.idx) for it. The packed archive\r
together with the pack index can then be placed in the\r
-objects/pack/ directory of a git repository.</p>\r
+objects/pack/ directory of a git repository.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-v\r
</dt>\r
a default name determined from the pack content. If\r
<pack-file> is not specified consider using --keep to\r
prevent a race condition between this process and\r
- <tt>git-repack</tt>.\r
+ <em>git-repack</em>.\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- It is possible for <tt>git-pack-objects</tt> to build\r
+ It is possible for <em>git-pack-objects</em> to build\r
"thin" pack, which records objects in deltified form based on\r
objects not included in the pack to reduce network traffic.\r
Those objects are expected to be present on the receiving end\r
Before moving the index into its final destination\r
create an empty .keep file for the associated pack file.\r
This option is usually necessary with --stdin to prevent a\r
- simultaneous <tt>git-repack</tt> process from deleting\r
+ simultaneous <em>git-repack</em> process from deleting\r
the newly constructed pack and index before refs can be\r
updated to use objects contained in the pack.\r
</p>\r
Die, if the pack contains broken objects or links.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Note</h2>\r
+<h2 id="_note">Note</h2>\r
<div class="sectionbody">\r
-<p>Once the index has been created, the list of object names is sorted\r
+<div class="para"><p>Once the index has been created, the list of object names is sorted\r
and the SHA1 hash of that list is printed to stdout. If --stdin was\r
also used then this is prefixed by either "pack\t", or "keep\t" if a\r
new .keep file was successfully created. This is useful to remove a\r
-.keep file used as a lock to prevent the race with <tt>git-repack</tt>\r
-mentioned above.</p>\r
+.keep file used as a lock to prevent the race with <em>git-repack</em>\r
+mentioned above.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Sergey Vlasov <vsu@altlinux.ru></p>\r
+<div class="para"><p>Written by Sergey Vlasov <vsu@altlinux.ru></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Sergey Vlasov</p>\r
+<div class="para"><p>Documentation by Sergey Vlasov</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:49 UTC\r
+Last updated 2008-07-06 05:16:51 UTC\r
</div>\r
</div>\r
</body>\r
a default name determined from the pack content. If
<pack-file> is not specified consider using --keep to
prevent a race condition between this process and
- `git-repack`.
+ 'git-repack'.
--fix-thin::
- It is possible for `git-pack-objects` to build
+ It is possible for 'git-pack-objects' to build
"thin" pack, which records objects in deltified form based on
objects not included in the pack to reduce network traffic.
Those objects are expected to be present on the receiving end
Before moving the index into its final destination
create an empty .keep file for the associated pack file.
This option is usually necessary with --stdin to prevent a
- simultaneous `git-repack` process from deleting
+ simultaneous 'git-repack' process from deleting
the newly constructed pack and index before refs can be
updated to use objects contained in the pack.
and the SHA1 hash of that list is printed to stdout. If --stdin was
also used then this is prefixed by either "pack\t", or "keep\t" if a
new .keep file was successfully created. This is useful to remove a
-.keep file used as a lock to prevent the race with `git-repack`
+.keep file used as a lock to prevent the race with 'git-repack'
mentioned above.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-init(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git init</em> [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]]</p>\r
+<div class="para"><p><em>git init</em> [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]]</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-q\r
</dt>\r
Provide the directory from which templates will be used. The default template\r
directory is <tt>/usr/share/git-core/templates</tt>.\r
</p>\r
-<p>When specified, <tt><template_directory></tt> is used as the source of the template\r
+<div class="para"><p>When specified, <tt><template_directory></tt> is used as the source of the template\r
files rather than the default. The template files include some directory\r
structure, some suggested "exclude patterns", and copies of non-executing\r
"hook" files. The suggested patterns and hook files are all modifiable and\r
-extensible.</p>\r
+extensible.</p></div>\r
</dd>\r
<dt>\r
--shared[={false|true|umask|group|all|world|everybody|0xxx}]\r
requested permissions. When not specified, git will use permissions reported\r
by umask(2).\r
</p>\r
-<p>The option can have the following values, defaulting to <em>group</em> if no value\r
-is given:</p>\r
-<ul>\r
+<div class="para"><p>The option can have the following values, defaulting to <em>group</em> if no value\r
+is given:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>umask</em> (or <em>false</em>): Use permissions reported by umask(2). The default,\r
can use this option. <em>0640</em> will create a repository which is group-readable\r
but not writable. <em>0660</em> is equivalent to <em>group</em>.\r
</p>\r
-<p>By default, the configuration flag receive.denyNonFastForwards is enabled\r
+<div class="para"><p>By default, the configuration flag receive.denyNonFastForwards is enabled\r
in shared repositories, so that you cannot force a non fast-forwarding push\r
-into it.</p>\r
+into it.</p></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This command creates an empty git repository - basically a <tt>.git</tt> directory\r
+<div class="para"><p>This command creates an empty git repository - basically a <tt>.git</tt> directory\r
with subdirectories for <tt>objects</tt>, <tt>refs/heads</tt>, <tt>refs/tags</tt>, and\r
template files.\r
An initial <tt>HEAD</tt> file that references the HEAD of the master branch\r
-is also created.</p>\r
-<p>If the <tt>$GIT_DIR</tt> environment variable is set then it specifies a path\r
-to use instead of <tt>./.git</tt> for the base of the repository.</p>\r
-<p>If the object storage directory is specified via the <tt>$GIT_OBJECT_DIRECTORY</tt>\r
+is also created.</p></div>\r
+<div class="para"><p>If the <tt>$GIT_DIR</tt> environment variable is set then it specifies a path\r
+to use instead of <tt>./.git</tt> for the base of the repository.</p></div>\r
+<div class="para"><p>If the object storage directory is specified via the <tt>$GIT_OBJECT_DIRECTORY</tt>\r
environment variable then the sha1 directories are created underneath -\r
-otherwise the default <tt>$GIT_DIR/objects</tt> directory is used.</p>\r
-<p>Running <tt>git-init</tt> in an existing repository is safe. It will not overwrite\r
-things that are already there. The primary reason for rerunning <tt>git-init</tt>\r
-is to pick up newly added templates.</p>\r
-<p>Note that <tt>git-init</tt> is the same as <tt>git-init-db</tt>. The command\r
+otherwise the default <tt>$GIT_DIR/objects</tt> directory is used.</p></div>\r
+<div class="para"><p>Running <em>git-init</em> in an existing repository is safe. It will not overwrite\r
+things that are already there. The primary reason for rerunning <em>git-init</em>\r
+is to pick up newly added templates.</p></div>\r
+<div class="para"><p>Note that <em>git-init</em> is the same as <em>git-init-db</em>. The command\r
was primarily meant to initialize the object database, but over\r
time it has become responsible for setting up the other aspects\r
of the repository, such as installing the default hooks and\r
setting the configuration variables. The old name is retained\r
-for backward compatibility reasons.</p>\r
+for backward compatibility reasons.</p></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
Start a new git repository for an existing code base\r
</dt>\r
$ git init <b>(1)</b>\r
$ git add . <b>(2)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
prepare /path/to/my/codebase/.git directory\r
add all existing file to the index\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:49 UTC\r
+Last updated 2008-07-06 05:16:51 UTC\r
</div>\r
</div>\r
</body>\r
environment variable then the sha1 directories are created underneath -
otherwise the default `$GIT_DIR/objects` directory is used.
-Running `git-init` in an existing repository is safe. It will not overwrite
-things that are already there. The primary reason for rerunning `git-init`
+Running 'git-init' in an existing repository is safe. It will not overwrite
+things that are already there. The primary reason for rerunning 'git-init'
is to pick up newly added templates.
-Note that `git-init` is the same as `git-init-db`. The command
+Note that 'git-init' is the same as 'git-init-db'. The command
was primarily meant to initialize the object database, but over
time it has become responsible for setting up the other aspects
of the repository, such as installing the default hooks and
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-instaweb(1)</title>\r
</head>\r
[--browser=<browser>]\r
<em>git instaweb</em> [--start] [--stop] [--restart]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>A simple script to set up <tt>gitweb</tt> and a web server for browsing the local\r
-repository.</p>\r
+<div class="para"><p>A simple script to set up <tt>gitweb</tt> and a web server for browsing the local\r
+repository.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-l\r
</dt>\r
<dd>\r
<p>\r
The web browser that should be used to view the gitweb\r
- page. This will be passed to the <tt>git-web--browse</tt> helper\r
+ page. This will be passed to the <em>git-web--browse</em> helper\r
script along with the URL of the gitweb instance. See\r
<a href="git-web--browse.html">git-web--browse(1)</a> for more information about this. If\r
the script fails, the URL will be printed to stdout.\r
any of the configuration files for spawning a new instance.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<p>You may specify configuration in your .git/config</p>\r
+<div class="para"><p>You may specify configuration in your .git/config</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[instaweb]\r
modulepath = /usr/lib/apache2/modules\r
</tt></pre>\r
</div></div>\r
-<p>If the configuration variable <em>instaweb.browser</em> is not set,\r
+<div class="para"><p>If the configuration variable <em>instaweb.browser</em> is not set,\r
<em>web.browser</em> will be used instead if it is defined. See\r
-<a href="git-web--browse.html">git-web--browse(1)</a> for more information about this.</p>\r
+<a href="git-web--browse.html">git-web--browse(1)</a> for more information about this.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Eric Wong <normalperson@yhbt.net></p>\r
+<div class="para"><p>Written by Eric Wong <normalperson@yhbt.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Eric Wong <normalperson@yhbt.net>.</p>\r
+<div class="para"><p>Documentation by Eric Wong <normalperson@yhbt.net>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:50 UTC\r
+Last updated 2008-07-06 05:16:51 UTC\r
</div>\r
</div>\r
</body>\r
-b::
--browser::
The web browser that should be used to view the gitweb
- page. This will be passed to the `git-web--browse` helper
+ page. This will be passed to the 'git-web--browse' helper
script along with the URL of the gitweb instance. See
linkgit:git-web--browse[1] for more information about this. If
the script fails, the URL will be printed to stdout.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-log(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git log</em> <option>…</p>\r
+<div class="para"><p><em>git log</em> <option>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Shows the commit logs.</p>\r
-<p>The command takes options applicable to the <tt>git-rev-list</tt>\r
+<div class="para"><p>Shows the commit logs.</p></div>\r
+<div class="para"><p>The command takes options applicable to the <em>git-rev-list</em>\r
command to control what is shown and how, and options applicable to\r
-the <tt>git-diff-*</tt> commands to control how the changes\r
-each commit introduces are shown.</p>\r
+the <em>git-diff-*</em> commands to control how the changes\r
+each commit introduces are shown.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-p\r
</dt>\r
Do not show any source or destination prefix.\r
</p>\r
</dd>\r
-</dl>\r
-<p>For more detailed explanation on these common options, see also\r
-<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>For more detailed explanation on these common options, see also\r
+<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-<n>\r
</dt>\r
Show only commits that affect the specified paths.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Commit Formatting</h3>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_commit_formatting">Commit Formatting</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--pretty[=<em><format></em>]\r
</dt>\r
<em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
When omitted, the format defaults to <em>medium</em>.\r
</p>\r
-<p>Note: you can specify the default pretty format in the repository\r
-configuration (see <a href="git-config.html">git-config(1)</a>).</p>\r
+<div class="para"><p>Note: you can specify the default pretty format in the repository\r
+configuration (see <a href="git-config.html">git-config(1)</a>).</p></div>\r
</dd>\r
<dt>\r
--abbrev-commit\r
digits can be specified with "--abbrev=<n>" (which also modifies\r
diff output, if it is displayed).\r
</p>\r
-<p>This should make "--pretty=oneline" a whole lot more readable for\r
-people using 80-column terminals.</p>\r
+<div class="para"><p>This should make "--pretty=oneline" a whole lot more readable for\r
+people using 80-column terminals.</p></div>\r
</dd>\r
<dt>\r
--encoding[=<encoding>]\r
as when using "--pretty". <tt>log.date</tt> config variable sets a default\r
value for log command's --date option.\r
</p>\r
-<p><tt>--date=relative</tt> shows dates relative to the current time,\r
-e.g. "2 hours ago".</p>\r
-<p><tt>--date=local</tt> shows timestamps in user's local timezone.</p>\r
-<p><tt>--date=iso</tt> (or <tt>--date=iso8601</tt>) shows timestamps in ISO 8601 format.</p>\r
-<p><tt>--date=rfc</tt> (or <tt>--date=rfc2822</tt>) shows timestamps in RFC 2822\r
-format, often found in E-mail messages.</p>\r
-<p><tt>--date=short</tt> shows only date but not time, in <tt>YYYY-MM-DD</tt> format.</p>\r
-<p><tt>--date=default</tt> shows timestamps in the original timezone\r
-(either committer's or author's).</p>\r
+<div class="para"><p><tt>--date=relative</tt> shows dates relative to the current time,\r
+e.g. "2 hours ago".</p></div>\r
+<div class="para"><p><tt>--date=local</tt> shows timestamps in user's local timezone.</p></div>\r
+<div class="para"><p><tt>--date=iso</tt> (or <tt>--date=iso8601</tt>) shows timestamps in ISO 8601 format.</p></div>\r
+<div class="para"><p><tt>--date=rfc</tt> (or <tt>--date=rfc2822</tt>) shows timestamps in RFC 2822\r
+format, often found in E-mail messages.</p></div>\r
+<div class="para"><p><tt>--date=short</tt> shows only date but not time, in <tt>YYYY-MM-DD</tt> format.</p></div>\r
+<div class="para"><p><tt>--date=default</tt> shows timestamps in the original timezone\r
+(either committer's or author's).</p></div>\r
</dd>\r
<dt>\r
--parents\r
the right with <tt>></tt>. If combined with <tt>--boundary</tt>, those\r
commits are prefixed with <tt>-</tt>.\r
</p>\r
-<p>For example, if you have this topology:</p>\r
+<div class="para"><p>For example, if you have this topology:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> y---b---b branch B\r
/ / \\r
o---x---a---a branch A</tt></pre>\r
</div></div>\r
-<p>you would get an output line this:</p>\r
+<div class="para"><p>you would get an output line this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git rev-list --left-right --boundary --pretty=oneline A...B\r
to be printed in between commits, in order for the graph history\r
to be drawn properly.\r
</p>\r
-<p>This implies the <em>--topo-order</em> option by default, but the\r
-<em>--date-order</em> option may also be specified.</p>\r
+<div class="para"><p>This implies the <em>--topo-order</em> option by default, but the\r
+<em>--date-order</em> option may also be specified.</p></div>\r
</dd>\r
-</dl>\r
-<h3>Diff Formatting</h3>\r
-<p>Below are listed options that control the formatting of diff output.\r
+</dl></div>\r
+<h3 id="_diff_formatting">Diff Formatting</h3><div style="clear:left"></div>\r
+<div class="para"><p>Below are listed options that control the formatting of diff output.\r
Some of them are specific to <a href="git-rev-list.html">git-rev-list(1)</a>, however other diff\r
-options may be given. See <a href="git-diff-files.html">git-diff-files(1)</a> for more options.</p>\r
-<dl>\r
+options may be given. See <a href="git-diff-files.html">git-diff-files(1)</a> for more options.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-c\r
</dt>\r
Show the tree objects in the diff output. This implies <em>-r</em>.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Commit Limiting</h3>\r
-<p>Besides specifying a range of commits that should be listed using the\r
+</dl></div>\r
+<h3 id="_commit_limiting">Commit Limiting</h3><div style="clear:left"></div>\r
+<div class="para"><p>Besides specifying a range of commits that should be listed using the\r
special notations explained in the description, additional commit\r
-limiting may be applied.</p>\r
-<dl>\r
+limiting may be applied.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-n <em>number</em>\r
</dt>\r
instead. Under <em>--pretty=oneline</em>, the commit message is\r
prefixed with this information on the same line.\r
</p>\r
-<p>Cannot be combined with <em>--reverse</em>.\r
-See also <a href="git-reflog.html">git-reflog(1)</a>.</p>\r
+<div class="para"><p>Cannot be combined with <em>--reverse</em>.\r
+See also <a href="git-reflog.html">git-reflog(1)</a>.</p></div>\r
</dd>\r
<dt>\r
--merge\r
only output commits that changes at least one of them, and also ignore\r
merges that do not touch the given paths.\r
</p>\r
-<p>Use the <em>--sparse</em> flag to makes the command output all eligible commits\r
+<div class="para"><p>Use the <em>--sparse</em> flag to makes the command output all eligible commits\r
(still subject to count and age limitation), but apply merge\r
-simplification nevertheless.</p>\r
+simplification nevertheless.</p></div>\r
</dd>\r
-</dl>\r
-<h3>Commit Ordering</h3>\r
-<p>By default, the commits are shown in reverse chronological order.</p>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_commit_ordering">Commit Ordering</h3><div style="clear:left"></div>\r
+<div class="para"><p>By default, the commits are shown in reverse chronological order.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--topo-order\r
</dt>\r
Cannot be combined with <em>--walk-reflogs</em>.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Object Traversal</h3>\r
-<p>These options are mostly targeted for packing of git repositories.</p>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_object_traversal">Object Traversal</h3><div style="clear:left"></div>\r
+<div class="para"><p>These options are mostly targeted for packing of git repositories.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--objects\r
</dt>\r
Overrides a previous --no-walk.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>PRETTY FORMATS</h2>\r
+<h2 id="_pretty_formats">PRETTY FORMATS</h2>\r
<div class="sectionbody">\r
-<p>If the commit is a merge, and if the pretty-format\r
+<div class="para"><p>If the commit is a merge, and if the pretty-format\r
is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
inserted before the <em>Author:</em> line. This line begins with\r
"Merge: " and the sha1s of ancestral commits are printed,\r
necessarily be the list of the <strong>direct</strong> parent commits if you\r
have limited your view of history: for example, if you are\r
only interested in changes related to a certain directory or\r
-file.</p>\r
-<p>Here are some additional details for each format:</p>\r
-<ul>\r
+file.</p></div>\r
+<div class="para"><p>Here are some additional details for each format:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>oneline</em>\r
<div class="content">\r
<pre><tt><sha1> <title line></tt></pre>\r
</div></div>\r
-<p>This is designed to be as compact as possible.</p>\r
+<div class="para"><p>This is designed to be as compact as possible.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-Date: <date></tt></pre>\r
+Date: <author date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-AuthorDate: <date & time>\r
+AuthorDate: <author date>\r
Commit: <committer>\r
-CommitDate: <date & time></tt></pre>\r
+CommitDate: <committer date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>From <sha1> <date>\r
From: <author>\r
-Date: <date & time>\r
+Date: <author date>\r
Subject: [PATCH] <title line></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<p>\r
<em>raw</em>\r
</p>\r
-<p>The <em>raw</em> format shows the entire commit exactly as\r
+<div class="para"><p>The <em>raw</em> format shows the entire commit exactly as\r
stored in the commit object. Notably, the SHA1s are\r
displayed in full, regardless of whether --abbrev or\r
--no-abbrev are used, and <em>parents</em> information show the\r
true parent commits, without taking grafts nor history\r
-simplification into account.</p>\r
+simplification into account.</p></div>\r
</li>\r
<li>\r
<p>\r
<em>format:</em>\r
</p>\r
-<p>The <em>format:</em> format allows you to specify which information\r
+<div class="para"><p>The <em>format:</em> format allows you to specify which information\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
-instead of <em>\n</em>.</p>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
-would show something like this:</p>\r
+instead of <em>\n</em>.</p></div>\r
+<div class="para"><p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
+would show something like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
</tt></pre>\r
</div></div>\r
-<p>The placeholders are:</p>\r
-<ul>\r
+<div class="para"><p>The placeholders are:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>%H</em>: commit hash\r
<em>%x00</em>: print a byte from a hex code\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</li>\r
<li>\r
<p>\r
<em>tformat:</em>\r
</p>\r
-<p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
+<div class="para"><p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
provides "terminator" semantics instead of "separator" semantics. In\r
other words, each commit has the message terminator character (usually a\r
newline) appended, rather than a separator placed between entries.\r
This means that the final entry of a single-line format will be properly\r
terminated with a new line, just as the "oneline" format does.\r
-For example:</p>\r
+For example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -2 --pretty=format:%h 4da45bef \\r
7134973</tt></pre>\r
</div></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Generating patches with -p</h2>\r
+<h2 id="_generating_patches_with_p">Generating patches with -p</h2>\r
<div class="sectionbody">\r
-<p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
+<div class="para"><p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
with a <em>-p</em> option, "git diff" without the <em>--raw</em> option, or\r
"git log" with the "-p" option, they\r
do not produce the output described above; instead they produce a\r
patch file. You can customize the creation of such patches via the\r
-GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p>\r
-<p>What the -p option produces is slightly different from the traditional\r
-diff format.</p>\r
-<ol>\r
+GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.</p></div>\r
+<div class="para"><p>What the -p option produces is slightly different from the traditional\r
+diff format.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --git a/file1 b/file2</tt></pre>\r
</div></div>\r
-<p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
+<div class="para"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is\r
involved. Especially, even for a creation or a deletion,\r
-<tt>/dev/null</tt> is _not_ used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p>\r
-<p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
+<tt>/dev/null</tt> is <em>not</em> used in place of <tt>a/</tt> or <tt>b/</tt> filenames.</p></div>\r
+<div class="para"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the\r
name of the source file of the rename/copy and the name of\r
-the file that rename/copy produces, respectively.</p>\r
+the file that rename/copy produces, respectively.</p></div>\r
</li>\r
<li>\r
<p>\r
pathname is put in double quotes.\r
</p>\r
</li>\r
-</ol>\r
-<p>The similarity index is the percentage of unchanged lines, and\r
+</ol></div>\r
+<div class="para"><p>The similarity index is the percentage of unchanged lines, and\r
the dissimilarity index is the percentage of changed lines. It\r
is a rounded down integer, followed by a percent sign. The\r
similarity index value of 100% is thus reserved for two equal\r
files, while 100% dissimilarity means that no line from the old\r
-file made it into the new one.</p>\r
+file made it into the new one.</p></div>\r
</div>\r
-<h2>combined diff format</h2>\r
+<h2 id="_combined_diff_format">combined diff format</h2>\r
<div class="sectionbody">\r
-<p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
+<div class="para"><p>"git-diff-tree", "git-diff-files" and "git-diff" can take <em>-c</em> or\r
<em>--cc</em> option to produce <em>combined diff</em>. For showing a merge commit\r
with "git log -p", this is the default format.\r
-A <em>combined diff</em> format looks like this:</p>\r
+A <em>combined diff</em> format looks like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>diff --combined describe.c\r
initialized = 1;\r
for_each_ref(get_name);</tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
It is preceded with a "git diff" header, that looks like\r
<div class="content">\r
<pre><tt>diff --combined file</tt></pre>\r
</div></div>\r
-<p>or like this (when <em>--cc</em> option is used):</p>\r
+<div class="para"><p>or like this (when <em>--cc</em> option is used):</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>diff --c file</tt></pre>\r
new file mode <mode>\r
deleted file mode <mode>,<mode></tt></pre>\r
</div></div>\r
-<p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
+<div class="para"><p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of\r
the <mode> is different from the rest. Extended headers with\r
information about detected contents movement (renames and\r
copying detection) are designed to work with diff of two\r
-<tree-ish> and are not used by combined diff format.</p>\r
+<tree-ish> and are not used by combined diff format.</p></div>\r
</li>\r
<li>\r
<p>\r
<pre><tt>--- a/file\r
+++ b/file</tt></pre>\r
</div></div>\r
-<p>Similar to two-line header for traditional <em>unified</em> diff\r
+<div class="para"><p>Similar to two-line header for traditional <em>unified</em> diff\r
format, <tt>/dev/null</tt> is used to signal created or deleted\r
-files.</p>\r
+files.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</tt></pre>\r
</div></div>\r
-<p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
-header for combined diff format.</p>\r
+<div class="para"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk\r
+header for combined diff format.</p></div>\r
</li>\r
-</ol>\r
-<p>Unlike the traditional <em>unified</em> diff format, which shows two\r
+</ol></div>\r
+<div class="para"><p>Unlike the traditional <em>unified</em> diff format, which shows two\r
files A and B with a single column that has <tt>-</tt> (minus —\r
appears in A but removed in B), <tt>+</tt> (plus — missing in A but\r
added to B), or <tt>" "</tt> (space — unchanged) prefix, this format\r
compares two or more files file1, file2,… with one file X, and\r
shows how X differs from each of fileN. One column for each of\r
fileN is prepended to the output line to note how X's line is\r
-different from it.</p>\r
-<p>A <tt>-</tt> character in the column N means that the line appears in\r
+different from it.</p></div>\r
+<div class="para"><p>A <tt>-</tt> character in the column N means that the line appears in\r
fileN but it does not appear in the result. A <tt>+</tt> character\r
in the column N means that the line appears in the last file,\r
and fileN does not have that line (in other words, the line was\r
-added, from the point of view of that parent).</p>\r
-<p>In the above example output, the function signature was changed\r
+added, from the point of view of that parent).</p></div>\r
+<div class="para"><p>In the above example output, the function signature was changed\r
from both files (hence two <tt>-</tt> removals from both file1 and\r
-file2, plus <tt>++</tt> to mean one line that was added does not appear\r
+file2, plus <tt><tt>+</tt> to mean one line that was added does not appear\r
in either file1 nor file2). Also two other lines are the same\r
-from file1 but do not appear in file2 (hence prefixed with <tt> +</tt>).</p>\r
-<p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
+from file1 but do not appear in file2 (hence prefixed with <tt> </tt></tt>).</p></div>\r
+<div class="para"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a\r
merge commit with the merge result (i.e. file1..fileN are the\r
parents). When shown by <tt>git diff-files -c</tt>, it compares the\r
two unresolved merge parents with the working tree file\r
(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka\r
-"their version").</p>\r
+"their version").</p></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git log --no-merges\r
</dt>\r
present name.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Discussion</h2>\r
+<h2 id="_discussion">Discussion</h2>\r
<div class="sectionbody">\r
-<p>At the core level, git is character encoding agnostic.</p>\r
-<ul>\r
+<div class="para"><p>At the core level, git is character encoding agnostic.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
The pathnames recorded in the index and in the tree objects\r
bytes.\r
</p>\r
</li>\r
-</ul>\r
-<p>Although we encourage that the commit log messages are encoded\r
+</ul></div>\r
+<div class="para"><p>Although we encourage that the commit log messages are encoded\r
in UTF-8, both the core and git Porcelain are designed not to\r
force UTF-8 on projects. If all participants of a particular\r
project find it more convenient to use legacy encodings, git\r
does not forbid it. However, there are a few things to keep in\r
-mind.</p>\r
-<ol>\r
+mind.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
-<tt>git-commit-tree</tt> (hence, <tt>git-commit</tt> which uses it) issues\r
+<em>git-commit-tree</em> (hence, <em>git-commit</em> which uses it) issues\r
a warning if the commit log message given to it does not look\r
like a valid UTF-8 string, unless you explicitly say your\r
project uses a legacy encoding. The way to say this is to\r
<pre><tt>[i18n]\r
commitencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>Commit objects created with the above setting record the value\r
+<div class="para"><p>Commit objects created with the above setting record the value\r
of <tt>i18n.commitencoding</tt> in its <tt>encoding</tt> header. This is to\r
help other people who look at them later. Lack of this header\r
-implies that the commit log message is encoded in UTF-8.</p>\r
+implies that the commit log message is encoded in UTF-8.</p></div>\r
</li>\r
<li>\r
<p>\r
-<tt>git-log</tt>, <tt>git-show</tt> and friends looks at the <tt>encoding</tt>\r
+<em>git-log</em>, <em>git-show</em> and friends looks at the <tt>encoding</tt>\r
header of a commit object, and tries to re-code the log\r
message into UTF-8 unless otherwise specified. You can\r
specify the desired output encoding with\r
<pre><tt>[i18n]\r
logoutputencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>If you do not have this configuration variable, the value of\r
-<tt>i18n.commitencoding</tt> is used instead.</p>\r
+<div class="para"><p>If you do not have this configuration variable, the value of\r
+<tt>i18n.commitencoding</tt> is used instead.</p></div>\r
</li>\r
-</ol>\r
-<p>Note that we deliberately chose not to re-code the commit log\r
+</ol></div>\r
+<div class="para"><p>Note that we deliberately chose not to re-code the commit log\r
message when a commit is made to force UTF-8 at the commit\r
object level, because re-coding to UTF-8 is not necessarily a\r
-reversible operation.</p>\r
+reversible operation.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:50 UTC\r
+Last updated 2008-07-06 05:16:51 UTC\r
</div>\r
</div>\r
</body>\r
-----------
Shows the commit logs.
-The command takes options applicable to the `git-rev-list`
+The command takes options applicable to the 'git-rev-list'
command to control what is shown and how, and options applicable to
-the `git-diff-*` commands to control how the changes
+the 'git-diff-*' commands to control how the changes
each commit introduces are shown.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-ls-files(1)</title>\r
</head>\r
[--error-unmatch] [--with-tree=<tree-ish>]\r
[--full-name] [--abbrev] [--] [<file>]*</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This merges the file listing in the directory cache index with the\r
+<div class="para"><p>This merges the file listing in the directory cache index with the\r
actual working directory list, and shows different combinations of the\r
-two.</p>\r
-<p>One or more of the options below may be used to determine the files\r
-shown:</p>\r
+two.</p></div>\r
+<div class="para"><p>One or more of the options below may be used to determine the files\r
+shown:</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-c\r
</dt>\r
specified criteria are shown.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Output</h2>\r
+<h2 id="_output">Output</h2>\r
<div class="sectionbody">\r
-<p>show files just outputs the filename unless <em>--stage</em> is specified in\r
-which case it outputs:</p>\r
+<div class="para"><p>show files just outputs the filename unless <em>--stage</em> is specified in\r
+which case it outputs:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>[<tag> ]<mode> <object> <stage> <file></tt></pre>\r
</div></div>\r
-<p><tt>git-ls-files --unmerged</tt> and <tt>git-ls-files --stage</tt> can be used to examine\r
-detailed information on unmerged paths.</p>\r
-<p>For an unmerged path, instead of recording a single mode/SHA1 pair,\r
+<div class="para"><p><em>git-ls-files --unmerged</em> and <em>git-ls-files --stage</em> can be used to examine\r
+detailed information on unmerged paths.</p></div>\r
+<div class="para"><p>For an unmerged path, instead of recording a single mode/SHA1 pair,\r
the index records up to three such pairs; one from tree O in stage\r
1, A in stage 2, and B in stage 3. This information can be used by\r
the user (or the porcelain) to see what should eventually be recorded at the\r
-path. (see <a href="git-read-tree.html">git-read-tree(1)</a> for more information on state)</p>\r
-<p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
+path. (see <a href="git-read-tree.html">git-read-tree(1)</a> for more information on state)</p></div>\r
+<div class="para"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters\r
in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>,\r
-respectively.</p>\r
+respectively.</p></div>\r
</div>\r
-<h2>Exclude Patterns</h2>\r
+<h2 id="_exclude_patterns">Exclude Patterns</h2>\r
<div class="sectionbody">\r
-<p><tt>git-ls-files</tt> can use a list of "exclude patterns" when\r
+<div class="para"><p><em>git-ls-files</em> can use a list of "exclude patterns" when\r
traversing the directory tree and finding files to show when the\r
flags --others or --ignored are specified. <a href="gitignore.html">gitignore(5)</a>\r
-specifies the format of exclude patterns.</p>\r
-<p>These exclude patterns come from these places, in order:</p>\r
-<ol>\r
+specifies the format of exclude patterns.</p></div>\r
+<div class="para"><p>These exclude patterns come from these places, in order:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
The command line flag --exclude=<pattern> specifies a\r
<li>\r
<p>\r
command line flag --exclude-per-directory=<name> specifies\r
- a name of the file in each directory <tt>git-ls-files</tt>\r
+ a name of the file in each directory <em>git-ls-files</em>\r
examines, normally <tt>.gitignore</tt>. Files in deeper\r
directories take precedence. Patterns are ordered in the\r
same order they appear in the files.\r
</p>\r
</li>\r
-</ol>\r
-<p>A pattern specified on the command line with --exclude or read\r
+</ol></div>\r
+<div class="para"><p>A pattern specified on the command line with --exclude or read\r
from the file specified with --exclude-from is relative to the\r
top of the directory tree. A pattern read from a file specified\r
by --exclude-per-directory is relative to the directory that the\r
-pattern file appears in.</p>\r
+pattern file appears in.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-read-tree.html">git-read-tree(1)</a>, <a href="gitignore.html">gitignore(5)</a></p>\r
+<div class="para"><p><a href="git-read-tree.html">git-read-tree(1)</a>, <a href="gitignore.html">gitignore(5)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano, Josh Triplett, and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano, Josh Triplett, and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:50 UTC\r
+Last updated 2008-07-06 05:16:52 UTC\r
</div>\r
</div>\r
</body>\r
[<tag> ]<mode> <object> <stage> <file>
-`git-ls-files --unmerged` and `git-ls-files --stage` can be used to examine
+'git-ls-files --unmerged' and 'git-ls-files --stage' can be used to examine
detailed information on unmerged paths.
For an unmerged path, instead of recording a single mode/SHA1 pair,
Exclude Patterns
----------------
-`git-ls-files` can use a list of "exclude patterns" when
+'git-ls-files' can use a list of "exclude patterns" when
traversing the directory tree and finding files to show when the
flags --others or --ignored are specified. linkgit:gitignore[5]
specifies the format of exclude patterns.
in the same order they appear in the file.
3. command line flag --exclude-per-directory=<name> specifies
- a name of the file in each directory `git-ls-files`
+ a name of the file in each directory 'git-ls-files'
examines, normally `.gitignore`. Files in deeper
directories take precedence. Patterns are ordered in the
same order they appear in the files.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-ls-remote(1)</title>\r
</head>\r
<div class="content"><em>git ls-remote</em> [--heads] [--tags] [-u <exec> | --upload-pack <exec>]\r
<repository> <refs>…</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Displays references available in a remote repository along with the associated\r
-commit IDs.</p>\r
+<div class="para"><p>Displays references available in a remote repository along with the associated\r
+commit IDs.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-h\r
</dt>\r
<dd>\r
<p>\r
Limit to only refs/heads and refs/tags, respectively.\r
- These options are _not_ mutually exclusive; when given\r
+ These options are <em>not</em> mutually exclusive; when given\r
both, references stored in refs/heads and refs/tags are\r
displayed.\r
</p>\r
</dt>\r
<dd>\r
<p>\r
- Specify the full path of <tt>git-upload-pack</tt> on the remote\r
+ Specify the full path of <em>git-upload-pack</em> on the remote\r
host. This allows listing references from repositories accessed via\r
SSH and where the SSH daemon does not use the PATH configured by the\r
user.\r
are displayed.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
<div class="literalblock">\r
<div class="content">\r
7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:51 UTC\r
+Last updated 2008-07-06 05:16:52 UTC\r
</div>\r
</div>\r
</body>\r
-u <exec>::
--upload-pack=<exec>::
- Specify the full path of `git-upload-pack` on the remote
+ Specify the full path of 'git-upload-pack' on the remote
host. This allows listing references from repositories accessed via
SSH and where the SSH daemon does not use the PATH configured by the
user.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-mailinfo(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git mailinfo</em> [-k] [-u | --encoding=<encoding>] <msg> <patch></p>\r
+<div class="para"><p><em>git mailinfo</em> [-k] [-u | --encoding=<encoding>] <msg> <patch></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Reading a single e-mail message from the standard input, and\r
+<div class="para"><p>Reading a single e-mail message from the standard input, and\r
writes the commit log message in <msg> file, and the patches in\r
<patch> file. The author name, e-mail and e-mail subject are\r
-written out to the standard output to be used by <tt>git-am</tt>\r
+written out to the standard output to be used by <em>git-am</em>\r
to create a commit. It is usually not necessary to use this\r
-command directly. See <a href="git-am.html">git-am(1)</a> instead.</p>\r
+command directly. See <a href="git-am.html">git-am(1)</a> instead.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-k\r
</dt>\r
whitespaces, (3) <em>[</em> up to <em>]</em>, typically <em>[PATCH]</em>, and\r
then prepends "[PATCH] ". This flag forbids this\r
munging, and is most useful when used to read back\r
- <tt>git-format-patch -k</tt> output.\r
+ <em>git-format-patch -k</em> output.\r
</p>\r
</dd>\r
<dt>\r
transfer encoding, re-coded in UTF-8 by transliterating\r
them. This used to be optional but now it is the default.\r
</p>\r
-<p>Note that the patch is always used as-is without charset\r
-conversion, even with this flag.</p>\r
+<div class="para"><p>Note that the patch is always used as-is without charset\r
+conversion, even with this flag.</p></div>\r
</dd>\r
<dt>\r
--encoding=<encoding>\r
The patch extracted from e-mail.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and\r
-Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> and\r
+Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:52 UTC\r
+Last updated 2008-07-06 05:16:53 UTC\r
</div>\r
</div>\r
</body>\r
Reading a single e-mail message from the standard input, and
writes the commit log message in <msg> file, and the patches in
<patch> file. The author name, e-mail and e-mail subject are
-written out to the standard output to be used by `git-am`
+written out to the standard output to be used by 'git-am'
to create a commit. It is usually not necessary to use this
command directly. See linkgit:git-am[1] instead.
whitespaces, (3) '[' up to ']', typically '[PATCH]', and
then prepends "[PATCH] ". This flag forbids this
munging, and is most useful when used to read back
- `git-format-patch -k` output.
+ 'git-format-patch -k' output.
-u::
The commit log message, author name and author email are
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-merge-base(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git merge-base</em> [--all] <commit> <commit></p>\r
+<div class="para"><p><em>git merge-base</em> [--all] <commit> <commit></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p><tt>git-merge-base</tt> finds as good a common ancestor as possible between\r
+<div class="para"><p><em>git-merge-base</em> finds as good a common ancestor as possible between\r
the two commits. That is, given two commits A and B, <tt>git merge-base A\r
B</tt> will output a commit which is reachable from both A and B through\r
-the parent relationship.</p>\r
-<p>Given a selection of equally good common ancestors it should not be\r
-relied on to decide in any particular way.</p>\r
-<p>The <tt>git-merge-base</tt> algorithm is still in flux - use the source…</p>\r
+the parent relationship.</p></div>\r
+<div class="para"><p>Given a selection of equally good common ancestors it should not be\r
+relied on to decide in any particular way.</p></div>\r
+<div class="para"><p>The <em>git-merge-base</em> algorithm is still in flux - use the source…</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--all\r
</dt>\r
just one.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:52 UTC\r
+Last updated 2008-07-06 05:16:53 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-`git-merge-base` finds as good a common ancestor as possible between
+'git-merge-base' finds as good a common ancestor as possible between
the two commits. That is, given two commits A and B, `git merge-base A
B` will output a commit which is reachable from both A and B through
the parent relationship.
Given a selection of equally good common ancestors it should not be
relied on to decide in any particular way.
-The `git-merge-base` algorithm is still in flux - use the source...
+The 'git-merge-base' algorithm is still in flux - use the source...
OPTIONS
-------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-merge-file(1)</title>\r
</head>\r
<div class="content"><em>git merge-file</em> [-L <current-name> [-L <base-name> [-L <other-name>]]]\r
[-p|--stdout] [-q|--quiet] <current-file> <base-file> <other-file></div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p><tt>git-file-merge</tt> incorporates all changes that lead from the <tt><base-file></tt>\r
+<div class="para"><p><em>git-file-merge</em> incorporates all changes that lead from the <tt><base-file></tt>\r
to <tt><other-file></tt> into <tt><current-file></tt>. The result ordinarily goes into\r
-<tt><current-file></tt>. <tt>git-merge-file</tt> is useful for combining separate changes\r
+<tt><current-file></tt>. <em>git-merge-file</em> is useful for combining separate changes\r
to an original. Suppose <tt><base-file></tt> is the original, and both\r
<tt><current-file></tt> and <tt><other-file></tt> are modifications of <tt><base-file></tt>.\r
-Then <tt>git-merge-file</tt> combines both changes.</p>\r
-<p>A conflict occurs if both <tt><current-file></tt> and <tt><other-file></tt> have changes\r
-in a common segment of lines. If a conflict is found, <tt>git-merge-file</tt>\r
+Then <em>git-merge-file</em> combines both changes.</p></div>\r
+<div class="para"><p>A conflict occurs if both <tt><current-file></tt> and <tt><other-file></tt> have changes\r
+in a common segment of lines. If a conflict is found, <em>git-merge-file</em>\r
normally outputs a warning and brackets the conflict with <<<<<<< and\r
->>>>>>> lines. A typical conflict will look like this:</p>\r
+>>>>>>> lines. A typical conflict will look like this:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt><<<<<<< A\r
lines in file B\r
>>>>>>> B</tt></pre>\r
</div></div>\r
-<p>If there are conflicts, the user should edit the result and delete one of\r
-the alternatives.</p>\r
-<p>The exit value of this program is negative on error, and the number of\r
-conflicts otherwise. If the merge was clean, the exit value is 0.</p>\r
-<p><tt>git-merge-file</tt> is designed to be a minimal clone of RCS <tt>merge</tt>; that is, it\r
-implements all of RCS merge's functionality which is needed by\r
-<a href="git.html">git(1)</a>.</p>\r
+<div class="para"><p>If there are conflicts, the user should edit the result and delete one of\r
+the alternatives.</p></div>\r
+<div class="para"><p>The exit value of this program is negative on error, and the number of\r
+conflicts otherwise. If the merge was clean, the exit value is 0.</p></div>\r
+<div class="para"><p><em>git-merge-file</em> is designed to be a minimal clone of RCS <em>merge</em>; that is, it\r
+implements all of RCS <em>merge</em>'s functionality which is needed by\r
+<a href="git.html">git(1)</a>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-L <label>\r
</dt>\r
Quiet; do not warn about conflicts.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git merge-file README.my README README.upstream\r
</dt>\r
<tt>a</tt> and <tt>c</tt> instead of <tt>tmp/a123</tt> and <tt>tmp/c345</tt>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Johannes Schindelin <johannes.schindelin@gmx.de></p>\r
+<div class="para"><p>Written by Johannes Schindelin <johannes.schindelin@gmx.de></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Johannes Schindelin and the git-list <git@vger.kernel.org>,\r
-with parts copied from the original documentation of RCS merge.</p>\r
+<div class="para"><p>Documentation by Johannes Schindelin and the git-list <git@vger.kernel.org>,\r
+with parts copied from the original documentation of RCS <em>merge</em>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:52 UTC\r
+Last updated 2008-07-06 05:16:53 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-`git-file-merge` incorporates all changes that lead from the `<base-file>`
+'git-file-merge' incorporates all changes that lead from the `<base-file>`
to `<other-file>` into `<current-file>`. The result ordinarily goes into
-`<current-file>`. `git-merge-file` is useful for combining separate changes
+`<current-file>`. 'git-merge-file' is useful for combining separate changes
to an original. Suppose `<base-file>` is the original, and both
`<current-file>` and `<other-file>` are modifications of `<base-file>`.
-Then `git-merge-file` combines both changes.
+Then 'git-merge-file' combines both changes.
A conflict occurs if both `<current-file>` and `<other-file>` have changes
-in a common segment of lines. If a conflict is found, `git-merge-file`
+in a common segment of lines. If a conflict is found, 'git-merge-file'
normally outputs a warning and brackets the conflict with <<<<<<< and
>>>>>>> lines. A typical conflict will look like this:
The exit value of this program is negative on error, and the number of
conflicts otherwise. If the merge was clean, the exit value is 0.
-`git-merge-file` is designed to be a minimal clone of RCS `merge`; that is, it
-implements all of RCS merge's functionality which is needed by
+'git-merge-file' is designed to be a minimal clone of RCS 'merge'; that is, it
+implements all of RCS 'merge''s functionality which is needed by
linkgit:git[1].
Documentation
--------------
Documentation by Johannes Schindelin and the git-list <git@vger.kernel.org>,
-with parts copied from the original documentation of RCS merge.
+with parts copied from the original documentation of RCS 'merge'.
GIT
---
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-merge-index(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git merge-index</em> [-o] [-q] <merge-program> (-a | [--] <file>*)</p>\r
+<div class="para"><p><em>git merge-index</em> [-o] [-q] <merge-program> (-a | [--] <file>*)</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This looks up the <file>(s) in the index and, if there are any merge\r
+<div class="para"><p>This looks up the <file>(s) in the index and, if there are any merge\r
entries, passes the SHA1 hash for those files as arguments 1, 2, 3 (empty\r
argument if no file), and <file> as argument 4. File modes for the three\r
-files are passed as arguments 5, 6 and 7.</p>\r
+files are passed as arguments 5, 6 and 7.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--\r
</dt>\r
porcelains which might want to emit custom messages.\r
</p>\r
</dd>\r
-</dl>\r
-<p>If <tt>git-merge-index</tt> is called with multiple <file>s (or -a) then it\r
+</dl></div>\r
+<div class="para"><p>If <em>git-merge-index</em> is called with multiple <file>s (or -a) then it\r
processes them in turn only stopping if merge returns a non-zero exit\r
-code.</p>\r
-<p>Typically this is run with a script calling git's imitation of\r
-the merge command from the RCS package.</p>\r
-<p>A sample script called <tt>git-merge-one-file</tt> is included in the\r
-distribution.</p>\r
-<p>ALERT ALERT ALERT! The git "merge object order" is different from the\r
-RCS <tt>merge</tt> program merge object order. In the above ordering, the\r
+code.</p></div>\r
+<div class="para"><p>Typically this is run with a script calling git's imitation of\r
+the <em>merge</em> command from the RCS package.</p></div>\r
+<div class="para"><p>A sample script called <em>git-merge-one-file</em> is included in the\r
+distribution.</p></div>\r
+<div class="para"><p>ALERT ALERT ALERT! The git "merge object order" is different from the\r
+RCS <em>merge</em> program merge object order. In the above ordering, the\r
original is first. But the argument order to the 3-way merge program\r
-<tt>merge</tt> is to have the original in the middle. Don't ask me why.</p>\r
-<p>Examples:</p>\r
+<em>merge</em> is to have the original in the middle. Don't ask me why.</p></div>\r
+<div class="para"><p>Examples:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>torvalds@ppc970:~/merge-test> git merge-index cat MM\r
This is modified MM in the branch B. # merge2\r
This is modified MM in the branch B. # current contents</tt></pre>\r
</div></div>\r
-<p>or</p>\r
+<div class="para"><p>or</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>torvalds@ppc970:~/merge-test> git merge-index cat AA MM\r
This is added AA in the branch B.\r
fatal: merge program failed</tt></pre>\r
</div></div>\r
-<p>where the latter example shows how <tt>git-merge-index</tt> will stop trying to\r
+<div class="para"><p>where the latter example shows how <em>git-merge-index</em> will stop trying to\r
merge once anything has returned an error (i.e., <tt>cat</tt> returned an error\r
for the AA file, because it didn't exist in the original, and thus\r
-<tt>git-merge-index</tt> didn't even try to merge the MM thing).</p>\r
+<em>git-merge-index</em> didn't even try to merge the MM thing).</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org>\r
-One-shot merge by Petr Baudis <pasky@ucw.cz></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org>\r
+One-shot merge by Petr Baudis <pasky@ucw.cz></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:53 UTC\r
+Last updated 2008-07-06 05:16:53 UTC\r
</div>\r
</div>\r
</body>\r
failure usually indicates conflicts during merge). This is for
porcelains which might want to emit custom messages.
-If `git-merge-index` is called with multiple <file>s (or -a) then it
+If 'git-merge-index' is called with multiple <file>s (or -a) then it
processes them in turn only stopping if merge returns a non-zero exit
code.
Typically this is run with a script calling git's imitation of
-the merge command from the RCS package.
+the 'merge' command from the RCS package.
-A sample script called `git-merge-one-file` is included in the
+A sample script called 'git-merge-one-file' is included in the
distribution.
ALERT ALERT ALERT! The git "merge object order" is different from the
-RCS `merge` program merge object order. In the above ordering, the
+RCS 'merge' program merge object order. In the above ordering, the
original is first. But the argument order to the 3-way merge program
-`merge` is to have the original in the middle. Don't ask me why.
+'merge' is to have the original in the middle. Don't ask me why.
Examples:
This is added AA in the branch B.
fatal: merge program failed
-where the latter example shows how `git-merge-index` will stop trying to
+where the latter example shows how 'git-merge-index' will stop trying to
merge once anything has returned an error (i.e., `cat` returned an error
for the AA file, because it didn't exist in the original, and thus
-`git-merge-index` didn't even try to merge the MM thing).
+'git-merge-index' didn't even try to merge the MM thing).
Author
------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-merge-one-file(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git-merge-one-file</em></p>\r
+<div class="para"><p><em>git-merge-one-file</em></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This is the standard helper program to use with <tt>git-merge-index</tt>\r
-to resolve a merge after the trivial merge done with <tt>git-read-tree -m</tt>.</p>\r
+<div class="para"><p>This is the standard helper program to use with <em>git-merge-index</em>\r
+to resolve a merge after the trivial merge done with <em>git-read-tree -m</em>.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org>,\r
-Junio C Hamano <junkio@cox.net> and Petr Baudis <pasky@suse.cz>.</p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org>,\r
+Junio C Hamano <junkio@cox.net> and Petr Baudis <pasky@suse.cz>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:53 UTC\r
+Last updated 2008-07-06 05:16:54 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-This is the standard helper program to use with `git-merge-index`
-to resolve a merge after the trivial merge done with `git-read-tree -m`.
+This is the standard helper program to use with 'git-merge-index'
+to resolve a merge after the trivial merge done with 'git-read-tree -m'.
Author
------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-merge(1)</title>\r
</head>\r
[-m <msg>] <remote> <remote>…\r
<em>git merge</em> <msg> HEAD <remote>…</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This is the top-level interface to the merge machinery\r
-which drives multiple merge strategy scripts.</p>\r
-<p>The second syntax (<msg> <tt>HEAD</tt> <remote>) is supported for\r
+<div class="para"><p>This is the top-level interface to the merge machinery\r
+which drives multiple merge strategy scripts.</p></div>\r
+<div class="para"><p>The second syntax (<msg> <tt>HEAD</tt> <remote>) is supported for\r
historical reasons. Do not use it from the command line or in\r
-new scripts. It is the same as <tt>git merge -m <msg> <remote></tt>.</p>\r
+new scripts. It is the same as <tt>git merge -m <msg> <remote></tt>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--stat\r
</dt>\r
Use the given merge strategy; can be supplied more than\r
once to specify them in the order they should be tried.\r
If there is no <tt>-s</tt> option, a built-in list of strategies\r
- is used instead (<tt>git-merge-recursive</tt> when merging a single\r
- head, <tt>git-merge-octopus</tt> otherwise).\r
+ is used instead (<em>git-merge-recursive</em> when merging a single\r
+ head, <em>git-merge-octopus</em> otherwise).\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
The commit message to be used for the merge commit (in case\r
- it is created). The <tt>git-fmt-merge-msg</tt> script can be used\r
- to give a good default for automated <tt>git-merge</tt> invocations.\r
+ it is created). The <em>git-fmt-merge-msg</em> script can be used\r
+ to give a good default for automated <em>git-merge</em> invocations.\r
</p>\r
</dd>\r
<dt>\r
obviously means you are trying an Octopus.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>MERGE STRATEGIES</h2>\r
+<h2 id="_merge_strategies">MERGE STRATEGIES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
resolve\r
</dt>\r
ancestor tree.\r
</p>\r
</dd>\r
-</dl>\r
-<p>If you tried a merge which resulted in a complex conflicts and\r
-would want to start over, you can recover with <tt>git-reset</tt>.</p>\r
+</dl></div>\r
+<div class="para"><p>If you tried a merge which resulted in a complex conflicts and\r
+would want to start over, you can recover with <em>git-reset</em>.</p></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
merge.stat\r
</dt>\r
<dd>\r
<p>\r
Sets default options for merging into branch <name>. The syntax and\r
- supported options are equal to that of <tt>git-merge</tt>, but option values\r
+ supported options are equal to that of <em>git-merge</em>, but option values\r
containing whitespace characters are currently not supported.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>HOW MERGE WORKS</h2>\r
+<h2 id="_how_merge_works">HOW MERGE WORKS</h2>\r
<div class="sectionbody">\r
-<p>A merge is always between the current <tt>HEAD</tt> and one or more\r
+<div class="para"><p>A merge is always between the current <tt>HEAD</tt> and one or more\r
commits (usually, branch head or tag), and the index file must\r
exactly match the\r
tree of <tt>HEAD</tt> commit (i.e. the contents of the last commit) when\r
it happens. In other words, <tt>git diff --cached HEAD</tt> must\r
-report no changes.</p>\r
+report no changes.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
fail.</td>\r
</tr></table>\r
</div>\r
-<p>Otherwise, merge will refuse to do any harm to your repository\r
+<div class="para"><p>Otherwise, merge will refuse to do any harm to your repository\r
(that is, it may fetch the objects from remote, and it may even\r
update the local branch used to keep track of the remote branch\r
with <tt>git pull remote rbranch:lbranch</tt>, but your working tree,\r
-<tt>.git/HEAD</tt> pointer and index file are left intact).</p>\r
-<p>You may have local modifications in the working tree files. In\r
-other words, <tt>git-diff</tt> is allowed to report changes.\r
+<tt>.git/HEAD</tt> pointer and index file are left intact).</p></div>\r
+<div class="para"><p>You may have local modifications in the working tree files. In\r
+other words, <em>git-diff</em> is allowed to report changes.\r
However, the merge uses your working tree as the working area,\r
and in order to prevent the merge operation from losing such\r
changes, it makes sure that they do not interfere with the\r
merge. Those complex tables in read-tree documentation define\r
what it means for a path to "interfere with the merge". And if\r
your local modifications interfere with the merge, again, it\r
-stops before touching anything.</p>\r
-<p>So in the above two "failed merge" case, you do not have to\r
+stops before touching anything.</p></div>\r
+<div class="para"><p>So in the above two "failed merge" case, you do not have to\r
worry about loss of data --- you simply were not ready to do\r
a merge, so no merge happened at all. You may want to finish\r
whatever you were in the middle of doing, and retry the same\r
-pull after you are done and ready.</p>\r
-<p>When things cleanly merge, these things happen:</p>\r
-<ol>\r
+pull after you are done and ready.</p></div>\r
+<div class="para"><p>When things cleanly merge, these things happen:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
The results are updated both in the index file and in your\r
The <tt>HEAD</tt> pointer gets advanced.\r
</p>\r
</li>\r
-</ol>\r
-<p>Because of 2., we require that the original state of the index\r
+</ol></div>\r
+<div class="para"><p>Because of 2., we require that the original state of the index\r
file to match exactly the current <tt>HEAD</tt> commit; otherwise we\r
will write out your local changes already registered in your\r
index file along with the merge result, which is not good.\r
branch and the remote branch you are pulling from during the\r
merge (which is typically a fraction of the whole tree), you can\r
have local modifications in your working tree as long as they do\r
-not overlap with what the merge updates.</p>\r
-<p>When there are conflicts, these things happen:</p>\r
-<ol>\r
+not overlap with what the merge updates.</p></div>\r
+<div class="para"><p>When there are conflicts, these things happen:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
<tt>HEAD</tt> stays the same.\r
i.e. matching <tt>HEAD</tt>.\r
</p>\r
</li>\r
-</ol>\r
-<p>After seeing a conflict, you can do two things:</p>\r
-<ul>\r
+</ol></div>\r
+<div class="para"><p>After seeing a conflict, you can do two things:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Decide not to merge. The only clean-up you need are to reset\r
the index file to the <tt>HEAD</tt> commit to reverse 2. and to clean\r
- up working tree changes made by 2. and 3.; <tt>git-reset</tt> can\r
+ up working tree changes made by 2. and 3.; <em>git-reset</em> can\r
be used for this.\r
</p>\r
</li>\r
<p>\r
Resolve the conflicts. <tt>git diff</tt> would report only the\r
conflicting paths because of the above 2. and 3. Edit the\r
- working tree files into a desirable shape, <tt>git-add</tt> or <tt>git-rm</tt>\r
+ working tree files into a desirable shape, <em>git-add</em> or <em>git-rm</em>\r
them, to make the index file contain what the merge result\r
- should be, and run <tt>git-commit</tt> to commit the result.\r
+ should be, and run <em>git-commit</em> to commit the result.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-fmt-merge-msg.html">git-fmt-merge-msg(1)</a>, <a href="git-pull.html">git-pull(1)</a>,\r
+<div class="para"><p><a href="git-fmt-merge-msg.html">git-fmt-merge-msg(1)</a>, <a href="git-pull.html">git-pull(1)</a>,\r
<a href="gitattributes.html">gitattributes(5)</a>,\r
<a href="git-reset.html">git-reset(1)</a>,\r
<a href="git-diff.html">git-diff(1)</a>, <a href="git-ls-files.html">git-ls-files(1)</a>,\r
<a href="git-add.html">git-add(1)</a>, <a href="git-rm.html">git-rm(1)</a>,\r
-<a href="git-mergetool.html">git-mergetool(1)</a></p>\r
+<a href="git-mergetool.html">git-mergetool(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:53 UTC\r
+Last updated 2008-07-06 05:16:54 UTC\r
</div>\r
</div>\r
</body>\r
-m <msg>::
The commit message to be used for the merge commit (in case
- it is created). The `git-fmt-merge-msg` script can be used
- to give a good default for automated `git-merge` invocations.
+ it is created). The 'git-fmt-merge-msg' script can be used
+ to give a good default for automated 'git-merge' invocations.
<remote>::
Other branch head merged into our branch. You need at
If you tried a merge which resulted in a complex conflicts and
-would want to start over, you can recover with `git-reset`.
+would want to start over, you can recover with 'git-reset'.
CONFIGURATION
-------------
branch.<name>.mergeoptions::
Sets default options for merging into branch <name>. The syntax and
- supported options are equal to that of `git-merge`, but option values
+ supported options are equal to that of 'git-merge', but option values
containing whitespace characters are currently not supported.
HOW MERGE WORKS
`.git/HEAD` pointer and index file are left intact).
You may have local modifications in the working tree files. In
-other words, `git-diff` is allowed to report changes.
+other words, 'git-diff' is allowed to report changes.
However, the merge uses your working tree as the working area,
and in order to prevent the merge operation from losing such
changes, it makes sure that they do not interfere with the
* Decide not to merge. The only clean-up you need are to reset
the index file to the `HEAD` commit to reverse 2. and to clean
- up working tree changes made by 2. and 3.; `git-reset` can
+ up working tree changes made by 2. and 3.; 'git-reset' can
be used for this.
* Resolve the conflicts. `git diff` would report only the
conflicting paths because of the above 2. and 3. Edit the
- working tree files into a desirable shape, `git-add` or `git-rm`
+ working tree files into a desirable shape, 'git-add' or 'git-rm'
them, to make the index file contain what the merge result
- should be, and run `git-commit` to commit the result.
+ should be, and run 'git-commit' to commit the result.
SEE ALSO
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-mergetool(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git mergetool</em> [--tool=<tool>] [<file>]…</p>\r
+<div class="para"><p><em>git mergetool</em> [--tool=<tool>] [<file>]…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Use <tt>git mergetool</tt> to run one of several merge utilities to resolve\r
-merge conflicts. It is typically run after <tt>git-merge</tt>.</p>\r
-<p>If one or more <file> parameters are given, the merge tool program will\r
+<div class="para"><p>Use <tt>git mergetool</tt> to run one of several merge utilities to resolve\r
+merge conflicts. It is typically run after <em>git-merge</em>.</p></div>\r
+<div class="para"><p>If one or more <file> parameters are given, the merge tool program will\r
be run to resolve differences on each file. If no <file> names are\r
-specified, <tt>git-mergetool</tt> will run the merge tool program on every file\r
-with merge conflicts.</p>\r
+specified, <em>git-mergetool</em> will run the merge tool program on every file\r
+with merge conflicts.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-t or --tool=<tool>\r
</dt>\r
Valid merge tools are:\r
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff\r
</p>\r
-<p>If a merge resolution program is not specified, <tt>git-mergetool</tt>\r
+<div class="para"><p>If a merge resolution program is not specified, <em>git-mergetool</em>\r
will use the configuration variable <tt>merge.tool</tt>. If the\r
-configuration variable <tt>merge.tool</tt> is not set, <tt>git-mergetool</tt>\r
-will pick a suitable default.</p>\r
-<p>You can explicitly provide a full path to the tool by setting the\r
+configuration variable <tt>merge.tool</tt> is not set, <em>git-mergetool</em>\r
+will pick a suitable default.</p></div>\r
+<div class="para"><p>You can explicitly provide a full path to the tool by setting the\r
configuration variable <tt>mergetool.<tool>.path</tt>. For example, you\r
can configure the absolute path to kdiff3 by setting\r
-<tt>mergetool.kdiff3.path</tt>. Otherwise, <tt>git-mergetool</tt> assumes the\r
-tool is available in PATH.</p>\r
-<p>Instead of running one of the known merge tool programs\r
-<tt>git-mergetool</tt> can be customized to run an alternative program\r
+<tt>mergetool.kdiff3.path</tt>. Otherwise, <em>git-mergetool</em> assumes the\r
+tool is available in PATH.</p></div>\r
+<div class="para"><p>Instead of running one of the known merge tool programs\r
+<em>git-mergetool</em> can be customized to run an alternative program\r
by specifying the command line to invoke in a configration\r
-variable <tt>mergetool.<tool>.cmd</tt>.</p>\r
-<p>When <tt>git-mergetool</tt> is invoked with this tool (either through the\r
+variable <tt>mergetool.<tool>.cmd</tt>.</p></div>\r
+<div class="para"><p>When <em>git-mergetool</em> is invoked with this tool (either through the\r
<tt>-t</tt> or <tt>--tool</tt> option or the <tt>merge.tool</tt> configuration\r
variable) the configured command line will be invoked with <tt>$BASE</tt>\r
set to the name of a temporary file containing the common base for\r
<tt>$REMOTE</tt> set to the name of a temporary file containing the\r
contents of the file to be merged, and <tt>$MERGED</tt> set to the name\r
of the file to which the merge tool should write the result of the\r
-merge resolution.</p>\r
-<p>If the custom merge tool correctly indicates the success of a\r
+merge resolution.</p></div>\r
+<div class="para"><p>If the custom merge tool correctly indicates the success of a\r
merge resolution with its exit code then the configuration\r
variable <tt>mergetool.<tool>.trustExitCode</tt> can be set to <tt>true</tt>.\r
-Otherwise, <tt>git-mergetool</tt> will prompt the user to indicate the\r
-success of the resolution after the custom tool has exited.</p>\r
+Otherwise, <em>git-mergetool</em> will prompt the user to indicate the\r
+success of the resolution after the custom tool has exited.</p></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Theodore Y Ts'o <tytso@mit.edu></p>\r
+<div class="para"><p>Written by Theodore Y Ts'o <tytso@mit.edu></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Theodore Y Ts'o.</p>\r
+<div class="para"><p>Documentation by Theodore Y Ts'o.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:53 UTC\r
+Last updated 2008-07-06 05:16:54 UTC\r
</div>\r
</div>\r
</body>\r
-----------
Use `git mergetool` to run one of several merge utilities to resolve
-merge conflicts. It is typically run after `git-merge`.
+merge conflicts. It is typically run after 'git-merge'.
If one or more <file> parameters are given, the merge tool program will
be run to resolve differences on each file. If no <file> names are
-specified, `git-mergetool` will run the merge tool program on every file
+specified, 'git-mergetool' will run the merge tool program on every file
with merge conflicts.
OPTIONS
Valid merge tools are:
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff
+
-If a merge resolution program is not specified, `git-mergetool`
+If a merge resolution program is not specified, 'git-mergetool'
will use the configuration variable `merge.tool`. If the
-configuration variable `merge.tool` is not set, `git-mergetool`
+configuration variable `merge.tool` is not set, 'git-mergetool'
will pick a suitable default.
+
You can explicitly provide a full path to the tool by setting the
configuration variable `mergetool.<tool>.path`. For example, you
can configure the absolute path to kdiff3 by setting
-`mergetool.kdiff3.path`. Otherwise, `git-mergetool` assumes the
+`mergetool.kdiff3.path`. Otherwise, 'git-mergetool' assumes the
tool is available in PATH.
+
Instead of running one of the known merge tool programs
-`git-mergetool` can be customized to run an alternative program
+'git-mergetool' can be customized to run an alternative program
by specifying the command line to invoke in a configration
variable `mergetool.<tool>.cmd`.
+
-When `git-mergetool` is invoked with this tool (either through the
+When 'git-mergetool' is invoked with this tool (either through the
`-t` or `--tool` option or the `merge.tool` configuration
variable) the configured command line will be invoked with `$BASE`
set to the name of a temporary file containing the common base for
If the custom merge tool correctly indicates the success of a
merge resolution with its exit code then the configuration
variable `mergetool.<tool>.trustExitCode` can be set to `true`.
-Otherwise, `git-mergetool` will prompt the user to indicate the
+Otherwise, 'git-mergetool' will prompt the user to indicate the
success of the resolution after the custom tool has exited.
Author
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-name-rev(1)</title>\r
</head>\r
<div class="content"><em>git name-rev</em> [--tags] [--refs=<pattern>]\r
( --all | --stdin | <committish>… )</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Finds symbolic names suitable for human digestion for revisions given in any\r
-format parsable by <tt>git-rev-parse</tt>.</p>\r
+<div class="para"><p>Finds symbolic names suitable for human digestion for revisions given in any\r
+format parsable by <em>git-rev-parse</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--tags\r
</dt>\r
Instead of printing both the SHA-1 and the name, print only\r
the name. If given with --tags the usual tag prefix of\r
"tags/" is also omitted from the name, matching the output\r
- of <tt>git-describe</tt> more closely. This option\r
+ of <em>git-describe</em> more closely. This option\r
cannot be combined with --stdin.\r
</p>\r
</dd>\r
Show uniquely abbreviated commit object as fallback.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLE</h2>\r
+<h2 id="_example">EXAMPLE</h2>\r
<div class="sectionbody">\r
-<p>Given a commit, find out where it is relative to the local refs. Say somebody\r
+<div class="para"><p>Given a commit, find out where it is relative to the local refs. Say somebody\r
wrote you about that fantastic commit 33db5f4d9027a10e477ccf054b2c1ab94f74c85a.\r
Of course, you look into the commit, but that only tells you what happened, but\r
-not the context.</p>\r
-<p>Enter <tt>git-name-rev</tt>:</p>\r
+not the context.</p></div>\r
+<div class="para"><p>Enter <em>git-name-rev</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a\r
33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99^0~940</tt></pre>\r
</div></div>\r
-<p>Now you are wiser, because you know that it happened 940 revisions before v0.99.</p>\r
-<p>Another nice thing you can do is:</p>\r
+<div class="para"><p>Now you are wiser, because you know that it happened 940 revisions before v0.99.</p></div>\r
+<div class="para"><p>Another nice thing you can do is:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>% git log | git name-rev --stdin</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Johannes Schindelin <Johannes.Schindelin@gmx.de></p>\r
+<div class="para"><p>Written by Johannes Schindelin <Johannes.Schindelin@gmx.de></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Johannes Schindelin.</p>\r
+<div class="para"><p>Documentation by Johannes Schindelin.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:54 UTC\r
+Last updated 2008-07-06 05:16:54 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
Finds symbolic names suitable for human digestion for revisions given in any
-format parsable by `git-rev-parse`.
+format parsable by 'git-rev-parse'.
OPTIONS
Instead of printing both the SHA-1 and the name, print only
the name. If given with --tags the usual tag prefix of
"tags/" is also omitted from the name, matching the output
- of `git-describe` more closely. This option
+ of 'git-describe' more closely. This option
cannot be combined with --stdin.
--no-undefined::
Of course, you look into the commit, but that only tells you what happened, but
not the context.
-Enter `git-name-rev`:
+Enter 'git-name-rev':
------------
% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-pack-objects(1)</title>\r
</head>\r
[--local] [--incremental] [--window=N] [--depth=N] [--all-progress]\r
[--revs [--unpacked | --all]*] [--stdout | base-name] < object-list</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Reads list of objects from the standard input, and writes a packed\r
-archive with specified base-name, or to the standard output.</p>\r
-<p>A packed archive is an efficient way to transfer set of objects\r
+<div class="para"><p>Reads list of objects from the standard input, and writes a packed\r
+archive with specified base-name, or to the standard output.</p></div>\r
+<div class="para"><p>A packed archive is an efficient way to transfer set of objects\r
between two repositories, and also is an archival format which\r
is efficient to access. The packed archive format (.pack) is\r
designed to be self contained so that it can be unpacked without\r
any further information, but for fast, random access to the objects\r
-in the pack, a pack index file (.idx) will be generated.</p>\r
-<p>Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or\r
+in the pack, a pack index file (.idx) will be generated.</p></div>\r
+<div class="para"><p>Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or\r
any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)\r
-enables git to read from such an archive.</p>\r
-<p>The <tt>git-unpack-objects</tt> command can read the packed archive and\r
+enables git to read from such an archive.</p></div>\r
+<div class="para"><p>The <em>git-unpack-objects</em> command can read the packed archive and\r
expand the objects contained in the pack into "one-file\r
one-object" format; this is typically done by the smart-pull\r
commands when a pack is created on-the-fly for efficient network\r
-transport by their peers.</p>\r
-<p>In a packed archive, an object is either stored as a compressed\r
+transport by their peers.</p></div>\r
+<div class="para"><p>In a packed archive, an object is either stored as a compressed\r
whole, or as a difference from some other object. The latter is\r
-often called a delta.</p>\r
+often called a delta.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
base-name\r
</dt>\r
<p>\r
Read the revision arguments from the standard input, instead of\r
individual object names. The revision arguments are processed\r
- the same way as <tt>git-rev-list</tt> with the <tt>--objects</tt> flag\r
+ the same way as <em>git-rev-list</em> with the <tt>--objects</tt> flag\r
uses its <tt>commit</tt> arguments to build the list of objects it\r
outputs. The objects on the resulting list are packed.\r
</p>\r
A packed archive can express base object of a delta as\r
either 20-byte object name or as an offset in the\r
stream, but older version of git does not understand the\r
- latter. By default, <tt>git-pack-objects</tt> only uses the\r
+ latter. By default, <em>git-pack-objects</em> only uses the\r
former format for better compatibility. This option\r
allows the command to use the latter format for\r
compactness. Depending on the average delta chain\r
64-bit index entries on objects located above the given offset.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano</p>\r
+<div class="para"><p>Documentation by Junio C Hamano</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-rev-list.html">git-rev-list(1)</a>\r
+<div class="para"><p><a href="git-rev-list.html">git-rev-list(1)</a>\r
<a href="git-repack.html">git-repack(1)</a>\r
-<a href="git-prune-packed.html">git-prune-packed(1)</a></p>\r
+<a href="git-prune-packed.html">git-prune-packed(1)</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:54 UTC\r
+Last updated 2008-07-06 05:16:55 UTC\r
</div>\r
</div>\r
</body>\r
any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)
enables git to read from such an archive.
-The `git-unpack-objects` command can read the packed archive and
+The 'git-unpack-objects' command can read the packed archive and
expand the objects contained in the pack into "one-file
one-object" format; this is typically done by the smart-pull
commands when a pack is created on-the-fly for efficient network
--revs::
Read the revision arguments from the standard input, instead of
individual object names. The revision arguments are processed
- the same way as `git-rev-list` with the `--objects` flag
+ the same way as 'git-rev-list' with the `--objects` flag
uses its `commit` arguments to build the list of objects it
outputs. The objects on the resulting list are packed.
A packed archive can express base object of a delta as
either 20-byte object name or as an offset in the
stream, but older version of git does not understand the
- latter. By default, `git-pack-objects` only uses the
+ latter. By default, 'git-pack-objects' only uses the
former format for better compatibility. This option
allows the command to use the latter format for
compactness. Depending on the average delta chain
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-pack-redundant(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git pack-redundant</em> [ --verbose ] [ --alt-odb ] < --all | .pack filename … ></p>\r
+<div class="para"><p><em>git pack-redundant</em> [ --verbose ] [ --alt-odb ] < --all | .pack filename … ></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This program computes which packs in your repository\r
+<div class="para"><p>This program computes which packs in your repository\r
are redundant. The output is suitable for piping to\r
-<tt>xargs rm</tt> if you are in the root of the repository.</p>\r
-<p><tt>git-pack-redundant</tt> accepts a list of objects on standard input. Any objects\r
+<tt>xargs rm</tt> if you are in the root of the repository.</p></div>\r
+<div class="para"><p><em>git-pack-redundant</em> accepts a list of objects on standard input. Any objects\r
given will be ignored when checking which packs are required. This makes the\r
following command useful when wanting to remove packs which contain unreachable\r
-objects.</p>\r
-<p>git fsck --full --unreachable | cut -d <em> </em> -f3 | git pack-redundant --all | xargs rm</p>\r
+objects.</p></div>\r
+<div class="para"><p>git fsck --full --unreachable | cut -d <em> </em> -f3 | git pack-redundant --all | xargs rm</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--all\r
</dt>\r
Outputs some statistics to stderr. Has a small performance penalty.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Lukas Sandström <lukass@etek.chalmers.se></p>\r
+<div class="para"><p>Written by Lukas Sandström <lukass@etek.chalmers.se></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Lukas Sandström <lukass@etek.chalmers.se></p>\r
+<div class="para"><p>Documentation by Lukas Sandström <lukass@etek.chalmers.se></p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-pack-objects.html">git-pack-objects(1)</a>\r
+<div class="para"><p><a href="git-pack-objects.html">git-pack-objects(1)</a>\r
<a href="git-repack.html">git-repack(1)</a>\r
-<a href="git-prune-packed.html">git-prune-packed(1)</a></p>\r
+<a href="git-prune-packed.html">git-prune-packed(1)</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:55 UTC\r
+Last updated 2008-07-06 05:16:55 UTC\r
</div>\r
</div>\r
</body>\r
are redundant. The output is suitable for piping to
`xargs rm` if you are in the root of the repository.
-`git-pack-redundant` accepts a list of objects on standard input. Any objects
+'git-pack-redundant' accepts a list of objects on standard input. Any objects
given will be ignored when checking which packs are required. This makes the
following command useful when wanting to remove packs which contain unreachable
objects.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-parse-remote(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>. "$(git --exec-path)/git-parse-remote"</em></p>\r
+<div class="para"><p><em>. "$(git --exec-path)/git-parse-remote"</em></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This script is included in various scripts to supply\r
+<div class="para"><p>This script is included in various scripts to supply\r
routines to parse files under $GIT_DIR/remotes/ and\r
$GIT_DIR/branches/ and configuration variables that are related\r
-to fetching, pulling and pushing.</p>\r
-<p>The primary entry points are:</p>\r
-<dl>\r
+to fetching, pulling and pushing.</p></div>\r
+<div class="para"><p>The primary entry points are:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
get_remote_refs_for_fetch\r
</dt>\r
<p>\r
Given the list of user-supplied <tt><repo> <refspec>…</tt>,\r
return the list of refs to push in a form suitable to be\r
- fed to the <tt>git-send-pack</tt> command. When <tt><refspec>…</tt>\r
+ fed to the <em>git-send-pack</em> command. When <tt><refspec>…</tt>\r
is empty the returned list of refs consists of the\r
defaults for the given <tt><repo></tt>, if specified in\r
<tt>$GIT_DIR/remotes/</tt>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano.</p>\r
+<div class="para"><p>Written by Junio C Hamano.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:55 UTC\r
+Last updated 2008-07-06 05:16:55 UTC\r
</div>\r
</div>\r
</body>\r
get_remote_refs_for_push::
Given the list of user-supplied `<repo> <refspec>...`,
return the list of refs to push in a form suitable to be
- fed to the `git-send-pack` command. When `<refspec>...`
+ fed to the 'git-send-pack' command. When `<refspec>...`
is empty the returned list of refs consists of the
defaults for the given `<repo>`, if specified in
`$GIT_DIR/remotes/`.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-patch-id(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git patch-id</em> < <patch></p>\r
+<div class="para"><p><em>git patch-id</em> < <patch></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>A "patch ID" is nothing but a SHA1 of the diff associated with a patch, with\r
+<div class="para"><p>A "patch ID" is nothing but a SHA1 of the diff associated with a patch, with\r
whitespace and line numbers ignored. As such, it's "reasonably stable", but at\r
the same time also reasonably unique, i.e., two patches that have the same "patch\r
-ID" are almost guaranteed to be the same thing.</p>\r
-<p>IOW, you can use this thing to look for likely duplicate commits.</p>\r
-<p>When dealing with <tt>git-diff-tree</tt> output, it takes advantage of\r
+ID" are almost guaranteed to be the same thing.</p></div>\r
+<div class="para"><p>IOW, you can use this thing to look for likely duplicate commits.</p></div>\r
+<div class="para"><p>When dealing with <em>git-diff-tree</em> output, it takes advantage of\r
the fact that the patch is prefixed with the object name of the\r
commit, and outputs two 40-byte hexadecimal string. The first\r
string is the patch ID, and the second string is the commit ID.\r
-This can be used to make a mapping from patch ID to commit ID.</p>\r
+This can be used to make a mapping from patch ID to commit ID.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<patch>\r
</dt>\r
The diff to create the ID of.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:55 UTC\r
+Last updated 2008-07-06 05:16:56 UTC\r
</div>\r
</div>\r
</body>\r
IOW, you can use this thing to look for likely duplicate commits.
-When dealing with `git-diff-tree` output, it takes advantage of
+When dealing with 'git-diff-tree' output, it takes advantage of
the fact that the patch is prefixed with the object name of the
commit, and outputs two 40-byte hexadecimal string. The first
string is the patch ID, and the second string is the commit ID.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-peek-remote(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git peek-remote</em> [--upload-pack=<git-upload-pack>] [<host>:]<directory></p>\r
+<div class="para"><p><em>git peek-remote</em> [--upload-pack=<git-upload-pack>] [<host>:]<directory></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This command is deprecated; use <tt>git-ls-remote</tt> instead.</p>\r
+<div class="para"><p>This command is deprecated; use <em>git-ls-remote</em> instead.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--upload-pack=<git-upload-pack>\r
</dt>\r
<dd>\r
<p>\r
- Use this to specify the path to <tt>git-upload-pack</tt> on the\r
+ Use this to specify the path to <em>git-upload-pack</em> on the\r
remote side, if it is not found on your $PATH. Some\r
installations of sshd ignores the user's environment\r
setup scripts for login shells (e.g. .bash_profile) and\r
<dd>\r
<p>\r
A remote host that houses the repository. When this\r
- part is specified, <tt>git-upload-pack</tt> is invoked via\r
+ part is specified, <em>git-upload-pack</em> is invoked via\r
ssh.\r
</p>\r
</dd>\r
The repository to sync from.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:55 UTC\r
+Last updated 2008-07-06 05:16:56 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-This command is deprecated; use `git-ls-remote` instead.
+This command is deprecated; use 'git-ls-remote' instead.
OPTIONS
-------
--upload-pack=<git-upload-pack>::
- Use this to specify the path to `git-upload-pack` on the
+ Use this to specify the path to 'git-upload-pack' on the
remote side, if it is not found on your $PATH. Some
installations of sshd ignores the user's environment
setup scripts for login shells (e.g. .bash_profile) and
<host>::
A remote host that houses the repository. When this
- part is specified, `git-upload-pack` is invoked via
+ part is specified, 'git-upload-pack' is invoked via
ssh.
<directory>::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-prune(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git-prune</em> [-n] [--expire <expire>] [--] [<head>…]</p>\r
+<div class="para"><p><em>git-prune</em> [-n] [--expire <expire>] [--] [<head>…]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
-<td class="content">In most cases, users should run <tt>git-gc</tt>, which calls\r
-<tt>git-prune</tt>. See the section "NOTES", below.</td>\r
+<td class="content">In most cases, users should run <em>git-gc</em>, which calls\r
+<em>git-prune</em>. See the section "NOTES", below.</td>\r
</tr></table>\r
</div>\r
-<p>This runs <tt>git-fsck --unreachable</tt> using all the refs\r
+<div class="para"><p>This runs <em>git-fsck --unreachable</em> using all the refs\r
available in <tt>$GIT_DIR/refs</tt>, optionally with additional set of\r
objects specified on the command line, and prunes all unpacked\r
objects unreachable from any of these head objects from the object database.\r
In addition, it\r
prunes the unpacked objects that are also found in packs by\r
-running <tt>git-prune-packed</tt>.</p>\r
-<p>Note that unreachable, packed objects will remain. If this is\r
-not desired, see <a href="git-repack.html">git-repack(1)</a>.</p>\r
+running <em>git-prune-packed</em>.</p></div>\r
+<div class="para"><p>Note that unreachable, packed objects will remain. If this is\r
+not desired, see <a href="git-repack.html">git-repack(1)</a>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-n\r
</dt>\r
reachable from listed <head>s.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLE</h2>\r
+<h2 id="_example">EXAMPLE</h2>\r
<div class="sectionbody">\r
-<p>To prune objects not used by your repository nor another that\r
+<div class="para"><p>To prune objects not used by your repository nor another that\r
borrows from your repository via its\r
-<tt>.git/objects/info/alternates</tt>:</p>\r
+<tt>.git/objects/info/alternates</tt>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git prune $(cd ../another && $(git rev-parse --all))</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Notes</h2>\r
+<h2 id="_notes">Notes</h2>\r
<div class="sectionbody">\r
-<p>In most cases, users will not need to call <tt>git-prune</tt> directly, but\r
-should instead call <tt>git-gc</tt>, which handles pruning along with\r
-many other housekeeping tasks.</p>\r
-<p>For a description of which objects are considered for pruning, see\r
-<tt>git-fsck</tt>'s --unreachable option.</p>\r
+<div class="para"><p>In most cases, users will not need to call <em>git-prune</em> directly, but\r
+should instead call <em>git-gc</em>, which handles pruning along with\r
+many other housekeeping tasks.</p></div>\r
+<div class="para"><p>For a description of which objects are considered for pruning, see\r
+<em>git-fsck</em>'s --unreachable option.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-fsck.html">git-fsck(1)</a>,\r
+<div class="para"><p><a href="git-fsck.html">git-fsck(1)</a>,\r
<a href="git-gc.html">git-gc(1)</a>,\r
-<a href="git-reflog.html">git-reflog(1)</a></p>\r
+<a href="git-reflog.html">git-reflog(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:56 UTC\r
+Last updated 2008-07-06 05:16:56 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-NOTE: In most cases, users should run `git-gc`, which calls
-`git-prune`. See the section "NOTES", below.
+NOTE: In most cases, users should run 'git-gc', which calls
+'git-prune'. See the section "NOTES", below.
-This runs `git-fsck --unreachable` using all the refs
+This runs 'git-fsck --unreachable' using all the refs
available in `$GIT_DIR/refs`, optionally with additional set of
objects specified on the command line, and prunes all unpacked
objects unreachable from any of these head objects from the object database.
In addition, it
prunes the unpacked objects that are also found in packs by
-running `git-prune-packed`.
+running 'git-prune-packed'.
Note that unreachable, packed objects will remain. If this is
not desired, see linkgit:git-repack[1].
Notes
-----
-In most cases, users will not need to call `git-prune` directly, but
-should instead call `git-gc`, which handles pruning along with
+In most cases, users will not need to call 'git-prune' directly, but
+should instead call 'git-gc', which handles pruning along with
many other housekeeping tasks.
For a description of which objects are considered for pruning, see
-`git-fsck`'s --unreachable option.
+'git-fsck''s --unreachable option.
SEE ALSO
--------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-pull(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git pull</em> <options> <repository> <refspec>…</p>\r
+<div class="para"><p><em>git pull</em> <options> <repository> <refspec>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Runs <tt>git-fetch</tt> with the given parameters, and calls <tt>git-merge</tt>\r
+<div class="para"><p>Runs <em>git-fetch</em> with the given parameters, and calls <em>git-merge</em>\r
to merge the retrieved head(s) into the current branch.\r
-With <tt>--rebase</tt>, calls <tt>git-rebase</tt> instead of <tt>git-merge</tt>.</p>\r
-<p>Note that you can use <tt>.</tt> (current directory) as the\r
+With <tt>--rebase</tt>, calls <em>git-rebase</em> instead of <em>git-merge</em>.</p></div>\r
+<div class="para"><p>Note that you can use <tt>.</tt> (current directory) as the\r
<repository> to pull from the local repository — this is useful\r
-when merging local branches into the current branch.</p>\r
-<p>Also note that options meant for <tt>git-pull</tt> itself and underlying\r
-<tt>git-merge</tt> must be given before the options meant for <tt>git-fetch</tt>.</p>\r
+when merging local branches into the current branch.</p></div>\r
+<div class="para"><p>Also note that options meant for <em>git-pull</em> itself and underlying\r
+<em>git-merge</em> must be given before the options meant for <em>git-fetch</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--stat\r
</dt>\r
Use the given merge strategy; can be supplied more than\r
once to specify them in the order they should be tried.\r
If there is no <tt>-s</tt> option, a built-in list of strategies\r
- is used instead (<tt>git-merge-recursive</tt> when merging a single\r
- head, <tt>git-merge-octopus</tt> otherwise).\r
+ is used instead (<em>git-merge-recursive</em> when merging a single\r
+ head, <em>git-merge-octopus</em> otherwise).\r
</p>\r
</dd>\r
-</dl>\r
-<dl>\r
+</dl></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--rebase\r
</dt>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
-<td class="content">This is a potentially _dangerous_ mode of operation.\r
+<td class="content">This is a potentially <em>dangerous</em> mode of operation.\r
It rewrites history, which does not bode well when you\r
published that history already. Do <strong>not</strong> use this option\r
unless you have read <a href="git-rebase.html">git-rebase(1)</a> carefully.</td>\r
</dt>\r
<dd>\r
<p>\r
- When <tt>git-fetch</tt> is used with <tt><rbranch>:<lbranch></tt>\r
+ When <em>git-fetch</em> is used with <tt><rbranch>:<lbranch></tt>\r
refspec, it refuses to update the local branch\r
<tt><lbranch></tt> unless the remote branch <tt><rbranch></tt> it\r
fetches is a descendant of <tt><lbranch></tt>. This option\r
</dt>\r
<dd>\r
<p>\r
- By default <tt>git-fetch</tt> refuses to update the head which\r
+ By default <em>git-fetch</em> refuses to update the head which\r
corresponds to the current branch. This flag disables the\r
- check. This is purely for the internal use for <tt>git-pull</tt>\r
- to communicate with <tt>git-fetch</tt>, and unless you are\r
+ check. This is purely for the internal use for <em>git-pull</em>\r
+ to communicate with <em>git-fetch</em>, and unless you are\r
implementing your own Porcelain you are not supposed to\r
use it.\r
</p>\r
<dd>\r
<p>\r
The canonical format of a <refspec> parameter is\r
- <tt>+?<src>:<dst></tt>; that is, an optional plus <tt>+</tt>, followed\r
+ <tt><tt>?<src>:<dst></tt>; that is, an optional plus <tt></tt></tt>, followed\r
by the source ref, followed by a colon <tt>:</tt>, followed by\r
the destination ref.\r
</p>\r
-<p>The remote ref that matches <src>\r
+<div class="para"><p>The remote ref that matches <src>\r
is fetched, and if <dst> is not empty string, the local\r
ref that matches it is fast forwarded using <src>.\r
Again, if the optional plus <tt>+</tt> is used, the local ref\r
is updated even if it does not result in a fast forward\r
-update.</p>\r
+update.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
</td>\r
<td class="content">You never do your own development on branches that appear\r
on the right hand side of a <refspec> colon on <tt>Pull:</tt> lines;\r
-they are to be updated by <tt>git-fetch</tt>. If you intend to do\r
+they are to be updated by <em>git-fetch</em>. If you intend to do\r
development derived from a remote branch <tt>B</tt>, have a <tt>Pull:</tt>\r
line to track it (i.e. <tt>Pull: B:remote-B</tt>), and have a separate\r
branch <tt>my-B</tt> to do your development on top of it. The latter\r
<div class="title">Note</div>\r
</td>\r
<td class="content">There is a difference between listing multiple <refspec>\r
-directly on <tt>git-pull</tt> command line and having multiple\r
+directly on <em>git-pull</em> command line and having multiple\r
<tt>Pull:</tt> <refspec> lines for a <repository> and running\r
-<tt>git-pull</tt> command without any explicit <refspec> parameters.\r
+<em>git-pull</em> command without any explicit <refspec> parameters.\r
<refspec> listed explicitly on the command line are always\r
merged into the current branch after fetching. In other words,\r
if you list more than one remote refs, you would be making\r
-an Octopus. While <tt>git-pull</tt> run without any explicit <refspec>\r
+an Octopus. While <em>git-pull</em> run without any explicit <refspec>\r
parameter takes default <refspec>s from <tt>Pull:</tt> lines, it\r
merges only the first <refspec> found into the current branch,\r
after fetching all the remote refs. This is because making an\r
is often useful.</td>\r
</tr></table>\r
</div>\r
-<p>Some short-cut notations are also supported.</p>\r
-<ul>\r
+<div class="para"><p>Some short-cut notations are also supported.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<tt>tag <tag></tt> means the same as <tt>refs/tags/<tag>:refs/tags/<tag></tt>;\r
branch without storing the remote branch anywhere locally\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>GIT URLS<a id="URLS"></a></h2>\r
+<h2 id="_git_urls_a_id_urls_a">GIT URLS<a id="URLS"></a></h2>\r
<div class="sectionbody">\r
-<p>One of the following notations can be used\r
-to name the remote repository:</p>\r
+<div class="para"><p>One of the following notations can be used\r
+to name the remote repository:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
rsync://host.xz/path/to/repo.git/\r
ssh://[user@]host.xz/~/path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>SSH is the default transport protocol over the network. You can\r
+<div class="para"><p>SSH is the default transport protocol over the network. You can\r
optionally specify which user to log-in as, and an alternate,\r
scp-like syntax is also supported. Both syntaxes support\r
username expansion, as does the native git protocol, but\r
only the former supports port specification. The following\r
-three are identical to the last three above, respectively:</p>\r
+three are identical to the last three above, respectively:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
[user@]host.xz:/path/to/repo.git/\r
[user@]host.xz:path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>To sync with a local directory, you can use:</p>\r
+<div class="para"><p>To sync with a local directory, you can use:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
/path/to/repo.git/\r
file:///path/to/repo.git/\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>They are mostly equivalent, except when cloning. See\r
-<a href="git-clone.html">git-clone(1)</a> for details.</p>\r
-<p>If there are a large number of similarly-named remote repositories and\r
+<div class="para"><p>They are mostly equivalent, except when cloning. See\r
+<a href="git-clone.html">git-clone(1)</a> for details.</p></div>\r
+<div class="para"><p>If there are a large number of similarly-named remote repositories and\r
you want to use a different format for them (such that the URLs you\r
use will be rewritten into URLs that work), you can create a\r
-configuration section of the form:</p>\r
+configuration section of the form:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "<actual url base>"]\r
insteadOf = <other url base></tt></pre>\r
</div></div>\r
-<p>For example, with this:</p>\r
+<div class="para"><p>For example, with this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "git://git.host.xz/"]\r
insteadOf = host.xz:/path/to/\r
insteadOf = work:</tt></pre>\r
</div></div>\r
-<p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
-rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p>\r
+<div class="para"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
+rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div>\r
</div>\r
-<h2>REMOTES<a id="REMOTES"></a></h2>\r
+<h2 id="_remotes_a_id_remotes_a">REMOTES<a id="REMOTES"></a></h2>\r
<div class="sectionbody">\r
-<p>The name of one of the following can be used instead\r
-of a URL as <tt><repository></tt> argument:</p>\r
-<ul>\r
+<div class="para"><p>The name of one of the following can be used instead\r
+of a URL as <tt><repository></tt> argument:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
a remote in the git configuration file: <tt>$GIT_DIR/config</tt>,\r
a file in the <tt>$GIT_DIR/branches</tt> directory.\r
</p>\r
</li>\r
-</ul>\r
-<p>All of these also allow you to omit the refspec from the command line\r
-because they each contain a refspec which git will use by default.</p>\r
-<h3>Named remote in configuration file</h3>\r
-<p>You can choose to provide the name of a remote which you had previously\r
+</ul></div>\r
+<div class="para"><p>All of these also allow you to omit the refspec from the command line\r
+because they each contain a refspec which git will use by default.</p></div>\r
+<h3 id="_named_remote_in_configuration_file">Named remote in configuration file</h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a remote which you had previously\r
configured using <a href="git-remote.html">git-remote(1)</a>, <a href="git-config.html">git-config(1)</a>\r
or even by a manual edit to the <tt>$GIT_DIR/config</tt> file. The URL of\r
this remote will be used to access the repository. The refspec\r
of this remote will be used by default when you do\r
not provide a refspec on the command line. The entry in the\r
-config file would appear like this:</p>\r
+config file would appear like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [remote "<name>"]\r
push = <refspec>\r
fetch = <refspec></tt></pre>\r
</div></div>\r
-<h3>Named file in <tt>$GIT_DIR/remotes</tt></h3>\r
-<p>You can choose to provide the name of a\r
+<h3 id="_named_file_in_tt_git_dir_remotes_tt">Named file in <tt>$GIT_DIR/remotes</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a\r
file in <tt>$GIT_DIR/remotes</tt>. The URL\r
in this file will be used to access the repository. The refspec\r
in this file will be used as default when you do not\r
provide a refspec on the command line. This file should have the\r
-following format:</p>\r
+following format:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> URL: one of the above URL format\r
Pull: <refspec>\r
</tt></pre>\r
</div></div>\r
-<p><tt>Push:</tt> lines are used by <tt>git-push</tt> and\r
-<tt>Pull:</tt> lines are used by <tt>git-pull</tt> and <tt>git-fetch</tt>.\r
+<div class="para"><p><tt>Push:</tt> lines are used by <em>git-push</em> and\r
+<tt>Pull:</tt> lines are used by <em>git-pull</em> and <em>git-fetch</em>.\r
Multiple <tt>Push:</tt> and <tt>Pull:</tt> lines may\r
-be specified for additional branch mappings.</p>\r
-<h3>Named file in <tt>$GIT_DIR/branches</tt></h3>\r
-<p>You can choose to provide the name of a\r
+be specified for additional branch mappings.</p></div>\r
+<h3 id="_named_file_in_tt_git_dir_branches_tt">Named file in <tt>$GIT_DIR/branches</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a\r
file in <tt>$GIT_DIR/branches</tt>.\r
The URL in this file will be used to access the repository.\r
-This file should have the following format:</p>\r
+This file should have the following format:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> <url>#<head></tt></pre>\r
</div></div>\r
-<p><tt><url></tt> is required; <tt>#<head></tt> is optional.\r
+<div class="para"><p><tt><url></tt> is required; <tt>#<head></tt> is optional.\r
When you do not provide a refspec on the command line,\r
git will use the following refspec, where <tt><head></tt> defaults to <tt>master</tt>,\r
and <tt><repository></tt> is the name of this file\r
-you provided in the command line.</p>\r
+you provided in the command line.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> refs/heads/<head>:<repository></tt></pre>\r
</div></div>\r
</div>\r
-<h2>MERGE STRATEGIES</h2>\r
+<h2 id="_merge_strategies">MERGE STRATEGIES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
resolve\r
</dt>\r
ancestor tree.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DEFAULT BEHAVIOUR</h2>\r
+<h2 id="_default_behaviour">DEFAULT BEHAVIOUR</h2>\r
<div class="sectionbody">\r
-<p>Often people use <tt>git pull</tt> without giving any parameter.\r
+<div class="para"><p>Often people use <tt>git pull</tt> without giving any parameter.\r
Traditionally, this has been equivalent to saying <tt>git pull\r
origin</tt>. However, when configuration <tt>branch.<name>.remote</tt> is\r
present while on branch <tt><name></tt>, that value is used instead of\r
-<tt>origin</tt>.</p>\r
-<p>In order to determine what URL to use to fetch from, the value\r
+<tt>origin</tt>.</p></div>\r
+<div class="para"><p>In order to determine what URL to use to fetch from, the value\r
of the configuration <tt>remote.<origin>.url</tt> is consulted\r
and if there is not any such variable, the value on <tt>URL: </tt> line\r
-in <tt>$GIT_DIR/remotes/<origin></tt> file is used.</p>\r
-<p>In order to determine what remote branches to fetch (and\r
+in <tt>$GIT_DIR/remotes/<origin></tt> file is used.</p></div>\r
+<div class="para"><p>In order to determine what remote branches to fetch (and\r
optionally store in the tracking branches) when the command is\r
run without any refspec parameters on the command line, values\r
of the configuration variable <tt>remote.<origin>.fetch</tt> are\r
consulted, and if there aren't any, <tt>$GIT_DIR/remotes/<origin></tt>\r
file is consulted and its <tt>Pull: </tt> lines are used.\r
In addition to the refspec formats described in the OPTIONS\r
-section, you can have a globbing refspec that looks like this:</p>\r
+section, you can have a globbing refspec that looks like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>refs/heads/*:refs/remotes/origin/*</tt></pre>\r
</div></div>\r
-<p>A globbing refspec must have a non-empty RHS (i.e. must store\r
+<div class="para"><p>A globbing refspec must have a non-empty RHS (i.e. must store\r
what were fetched in tracking branches), and its LHS and RHS\r
must end with <tt>/*</tt>. The above specifies that all remote\r
branches are tracked using tracking branches in\r
-<tt>refs/remotes/origin/</tt> hierarchy under the same name.</p>\r
-<p>The rule to determine which remote branch to merge after\r
+<tt>refs/remotes/origin/</tt> hierarchy under the same name.</p></div>\r
+<div class="para"><p>The rule to determine which remote branch to merge after\r
fetching is a bit involved, in order not to break backward\r
-compatibility.</p>\r
-<p>If explicit refspecs were given on the command\r
-line of <tt>git pull</tt>, they are all merged.</p>\r
-<p>When no refspec was given on the command line, then <tt>git pull</tt>\r
+compatibility.</p></div>\r
+<div class="para"><p>If explicit refspecs were given on the command\r
+line of <tt>git pull</tt>, they are all merged.</p></div>\r
+<div class="para"><p>When no refspec was given on the command line, then <tt>git pull</tt>\r
uses the refspec from the configuration or\r
<tt>$GIT_DIR/remotes/<origin></tt>. In such cases, the following\r
-rules apply:</p>\r
-<ol>\r
+rules apply:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
If <tt>branch.<name>.merge</tt> configuration for the current\r
Otherwise the remote branch of the first refspec is merged.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Update the remote-tracking branches for the repository\r
<div class="content">\r
<pre><tt>$ git pull, git pull origin</tt></pre>\r
</div></div>\r
-<p>Normally the branch merged in is the HEAD of the remote repository,\r
+<div class="para"><p>Normally the branch merged in is the HEAD of the remote repository,\r
but the choice is determined by the branch.<name>.remote and\r
-branch.<name>.merge options; see <a href="git-config.html">git-config(1)</a> for details.</p>\r
+branch.<name>.merge options; see <a href="git-config.html">git-config(1)</a> for details.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>$ git pull origin next</tt></pre>\r
</div></div>\r
-<p>This leaves a copy of <tt>next</tt> temporarily in FETCH_HEAD, but\r
-does not update any remote-tracking branches.</p>\r
+<div class="para"><p>This leaves a copy of <tt>next</tt> temporarily in FETCH_HEAD, but\r
+does not update any remote-tracking branches.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>$ git pull . fixes enhancements</tt></pre>\r
</div></div>\r
-<p>This <tt>git pull .</tt> syntax is equivalent to <tt>git merge</tt>.</p>\r
+<div class="para"><p>This <tt>git pull .</tt> syntax is equivalent to <tt>git merge</tt>.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>$ git pull --no-commit . maint</tt></pre>\r
</div></div>\r
-<p>This can be used when you want to include further changes to the\r
-merge, or want to write your own merge commit message.</p>\r
-<p>You should refrain from abusing this option to sneak substantial\r
+<div class="para"><p>This can be used when you want to include further changes to the\r
+merge, or want to write your own merge commit message.</p></div>\r
+<div class="para"><p>You should refrain from abusing this option to sneak substantial\r
changes into a merge commit. Small fixups like bumping\r
-release/version name would be acceptable.</p>\r
+release/version name would be acceptable.</p></div>\r
</li>\r
<li>\r
<p>\r
$ git fetch origin +pu:pu maint:tmp\r
$ git pull . tmp</tt></pre>\r
</div></div>\r
-<p>This updates (or creates, as necessary) branches <tt>pu</tt> and <tt>tmp</tt> in\r
+<div class="para"><p>This updates (or creates, as necessary) branches <tt>pu</tt> and <tt>tmp</tt> in\r
the local repository by fetching from the branches (respectively)\r
-<tt>pu</tt> and <tt>maint</tt> from the remote repository.</p>\r
-<p>The <tt>pu</tt> branch will be updated even if it is does not fast-forward;\r
-the others will not be.</p>\r
-<p>The final command then merges the newly fetched <tt>tmp</tt> into master.</p>\r
+<tt>pu</tt> and <tt>maint</tt> from the remote repository.</p></div>\r
+<div class="para"><p>The <tt>pu</tt> branch will be updated even if it is does not fast-forward;\r
+the others will not be.</p></div>\r
+<div class="para"><p>The final command then merges the newly fetched <tt>tmp</tt> into master.</p></div>\r
</li>\r
-</ul>\r
-<p>If you tried a pull which resulted in a complex conflicts and\r
-would want to start over, you can recover with <tt>git-reset</tt>.</p>\r
+</ul></div>\r
+<div class="para"><p>If you tried a pull which resulted in a complex conflicts and\r
+would want to start over, you can recover with <em>git-reset</em>.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-fetch.html">git-fetch(1)</a>, <a href="git-merge.html">git-merge(1)</a>, <a href="git-config.html">git-config(1)</a></p>\r
+<div class="para"><p><a href="git-fetch.html">git-fetch(1)</a>, <a href="git-merge.html">git-merge(1)</a>, <a href="git-config.html">git-config(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org>\r
-and Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org>\r
+and Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Jon Loeliger,\r
+<div class="para"><p>Documentation by Jon Loeliger,\r
David Greaves,\r
-Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:56 UTC\r
+Last updated 2008-07-06 05:16:56 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Runs `git-fetch` with the given parameters, and calls `git-merge`
+Runs 'git-fetch' with the given parameters, and calls 'git-merge'
to merge the retrieved head(s) into the current branch.
-With `--rebase`, calls `git-rebase` instead of `git-merge`.
+With `--rebase`, calls 'git-rebase' instead of 'git-merge'.
Note that you can use `.` (current directory) as the
<repository> to pull from the local repository -- this is useful
when merging local branches into the current branch.
-Also note that options meant for `git-pull` itself and underlying
-`git-merge` must be given before the options meant for `git-fetch`.
+Also note that options meant for 'git-pull' itself and underlying
+'git-merge' must be given before the options meant for 'git-fetch'.
OPTIONS
-------
If you tried a pull which resulted in a complex conflicts and
-would want to start over, you can recover with `git-reset`.
+would want to start over, you can recover with 'git-reset'.
SEE ALSO
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-push(1)</title>\r
</head>\r
<div class="content"><em>git push</em> [--all] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>]\r
[--repo=all] [-f | --force] [-v | --verbose] [<repository> <refspec>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Updates remote refs using local refs, while sending objects\r
-necessary to complete the given refs.</p>\r
-<p>You can make interesting things happen to a repository\r
+<div class="para"><p>Updates remote refs using local refs, while sending objects\r
+necessary to complete the given refs.</p></div>\r
+<div class="para"><p>You can make interesting things happen to a repository\r
every time you push into it, by setting up <em>hooks</em> there. See\r
-documentation for <a href="git-receive-pack.html">git-receive-pack(1)</a>.</p>\r
+documentation for <a href="git-receive-pack.html">git-receive-pack(1)</a>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<repository>\r
</dt>\r
<dd>\r
<p>\r
The canonical format of a <refspec> parameter is\r
- <tt>+?<src>:<dst></tt>; that is, an optional plus <tt>+</tt>, followed\r
+ <tt><tt>?<src>:<dst></tt>; that is, an optional plus <tt></tt></tt>, followed\r
by the source ref, followed by a colon <tt>:</tt>, followed by\r
the destination ref.\r
</p>\r
-<p>The <src> side represents the source branch (or arbitrary\r
+<div class="para"><p>The <src> side represents the source branch (or arbitrary\r
"SHA1 expression", such as <tt>master~4</tt> (four parents before the\r
tip of <tt>master</tt> branch); see <a href="git-rev-parse.html">git-rev-parse(1)</a>) that you\r
-want to push. The <dst> side represents the destination location.</p>\r
-<p>The local ref that matches <src> is used\r
+want to push. The <dst> side represents the destination location.</p></div>\r
+<div class="para"><p>The local ref that matches <src> is used\r
to fast forward the remote ref that matches <dst> (or, if no <dst> was\r
specified, the same ref that <src> referred to locally). If\r
the optional leading plus <tt>+</tt> is used, the remote ref is updated\r
-even if it does not result in a fast forward update.</p>\r
-<p><tt>tag <tag></tt> means the same as <tt>refs/tags/<tag>:refs/tags/<tag></tt>.</p>\r
-<p>A parameter <ref> without a colon pushes the <ref> from the source\r
-repository to the destination repository under the same name.</p>\r
-<p>Pushing an empty <src> allows you to delete the <dst> ref from\r
-the remote repository.</p>\r
-<p>The special refspec <tt>:</tt> (or <tt>+:</tt> to allow non-fast forward updates)\r
+even if it does not result in a fast forward update.</p></div>\r
+<div class="para"><p><tt>tag <tag></tt> means the same as <tt>refs/tags/<tag>:refs/tags/<tag></tt>.</p></div>\r
+<div class="para"><p>A parameter <ref> without a colon pushes the <ref> from the source\r
+repository to the destination repository under the same name.</p></div>\r
+<div class="para"><p>Pushing an empty <src> allows you to delete the <dst> ref from\r
+the remote repository.</p></div>\r
+<div class="para"><p>The special refspec <tt>:</tt> (or <tt>+:</tt> to allow non-fast forward updates)\r
directs git to push "matching" heads: for every head that exists on\r
the local side, the remote side is updated if a head of the same name\r
already exists on the remote side. This is the default operation mode\r
if no explicit refspec is found (that is neither on the command line\r
-nor in any Push line of the corresponding remotes file---see below).</p>\r
+nor in any Push line of the corresponding remotes file---see below).</p></div>\r
</dd>\r
<dt>\r
--all\r
</dt>\r
<dd>\r
<p>\r
- Path to the <tt>git-receive-pack</tt> program on the remote\r
+ Path to the <em>git-receive-pack</em> program on the remote\r
end. Sometimes useful when pushing to a remote\r
repository over ssh, and you do not have the program in\r
a directory on the default $PATH.\r
</dt>\r
<dd>\r
<p>\r
- These options are passed to <tt>git-send-pack</tt>. Thin\r
+ These options are passed to <em>git-send-pack</em>. Thin\r
transfer spends extra cycles to minimize the number of\r
objects to be sent and meant to be used on slower connection.\r
</p>\r
Run verbosely.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>GIT URLS<a id="URLS"></a></h2>\r
+<h2 id="_git_urls_a_id_urls_a">GIT URLS<a id="URLS"></a></h2>\r
<div class="sectionbody">\r
-<p>One of the following notations can be used\r
-to name the remote repository:</p>\r
+<div class="para"><p>One of the following notations can be used\r
+to name the remote repository:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
rsync://host.xz/path/to/repo.git/\r
ssh://[user@]host.xz/~/path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>SSH is the default transport protocol over the network. You can\r
+<div class="para"><p>SSH is the default transport protocol over the network. You can\r
optionally specify which user to log-in as, and an alternate,\r
scp-like syntax is also supported. Both syntaxes support\r
username expansion, as does the native git protocol, but\r
only the former supports port specification. The following\r
-three are identical to the last three above, respectively:</p>\r
+three are identical to the last three above, respectively:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
[user@]host.xz:/path/to/repo.git/\r
[user@]host.xz:path/to/repo.git\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>To sync with a local directory, you can use:</p>\r
+<div class="para"><p>To sync with a local directory, you can use:</p></div>\r
<div class="exampleblock">\r
<div class="exampleblock-content">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
/path/to/repo.git/\r
file:///path/to/repo.git/\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div></div>\r
-<p>They are mostly equivalent, except when cloning. See\r
-<a href="git-clone.html">git-clone(1)</a> for details.</p>\r
-<p>If there are a large number of similarly-named remote repositories and\r
+<div class="para"><p>They are mostly equivalent, except when cloning. See\r
+<a href="git-clone.html">git-clone(1)</a> for details.</p></div>\r
+<div class="para"><p>If there are a large number of similarly-named remote repositories and\r
you want to use a different format for them (such that the URLs you\r
use will be rewritten into URLs that work), you can create a\r
-configuration section of the form:</p>\r
+configuration section of the form:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "<actual url base>"]\r
insteadOf = <other url base></tt></pre>\r
</div></div>\r
-<p>For example, with this:</p>\r
+<div class="para"><p>For example, with this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [url "git://git.host.xz/"]\r
insteadOf = host.xz:/path/to/\r
insteadOf = work:</tt></pre>\r
</div></div>\r
-<p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
-rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p>\r
+<div class="para"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be\r
+rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div>\r
</div>\r
-<h2>REMOTES<a id="REMOTES"></a></h2>\r
+<h2 id="_remotes_a_id_remotes_a">REMOTES<a id="REMOTES"></a></h2>\r
<div class="sectionbody">\r
-<p>The name of one of the following can be used instead\r
-of a URL as <tt><repository></tt> argument:</p>\r
-<ul>\r
+<div class="para"><p>The name of one of the following can be used instead\r
+of a URL as <tt><repository></tt> argument:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
a remote in the git configuration file: <tt>$GIT_DIR/config</tt>,\r
a file in the <tt>$GIT_DIR/branches</tt> directory.\r
</p>\r
</li>\r
-</ul>\r
-<p>All of these also allow you to omit the refspec from the command line\r
-because they each contain a refspec which git will use by default.</p>\r
-<h3>Named remote in configuration file</h3>\r
-<p>You can choose to provide the name of a remote which you had previously\r
+</ul></div>\r
+<div class="para"><p>All of these also allow you to omit the refspec from the command line\r
+because they each contain a refspec which git will use by default.</p></div>\r
+<h3 id="_named_remote_in_configuration_file">Named remote in configuration file</h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a remote which you had previously\r
configured using <a href="git-remote.html">git-remote(1)</a>, <a href="git-config.html">git-config(1)</a>\r
or even by a manual edit to the <tt>$GIT_DIR/config</tt> file. The URL of\r
this remote will be used to access the repository. The refspec\r
of this remote will be used by default when you do\r
not provide a refspec on the command line. The entry in the\r
-config file would appear like this:</p>\r
+config file would appear like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [remote "<name>"]\r
push = <refspec>\r
fetch = <refspec></tt></pre>\r
</div></div>\r
-<h3>Named file in <tt>$GIT_DIR/remotes</tt></h3>\r
-<p>You can choose to provide the name of a\r
+<h3 id="_named_file_in_tt_git_dir_remotes_tt">Named file in <tt>$GIT_DIR/remotes</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a\r
file in <tt>$GIT_DIR/remotes</tt>. The URL\r
in this file will be used to access the repository. The refspec\r
in this file will be used as default when you do not\r
provide a refspec on the command line. This file should have the\r
-following format:</p>\r
+following format:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> URL: one of the above URL format\r
Pull: <refspec>\r
</tt></pre>\r
</div></div>\r
-<p><tt>Push:</tt> lines are used by <tt>git-push</tt> and\r
-<tt>Pull:</tt> lines are used by <tt>git-pull</tt> and <tt>git-fetch</tt>.\r
+<div class="para"><p><tt>Push:</tt> lines are used by <em>git-push</em> and\r
+<tt>Pull:</tt> lines are used by <em>git-pull</em> and <em>git-fetch</em>.\r
Multiple <tt>Push:</tt> and <tt>Pull:</tt> lines may\r
-be specified for additional branch mappings.</p>\r
-<h3>Named file in <tt>$GIT_DIR/branches</tt></h3>\r
-<p>You can choose to provide the name of a\r
+be specified for additional branch mappings.</p></div>\r
+<h3 id="_named_file_in_tt_git_dir_branches_tt">Named file in <tt>$GIT_DIR/branches</tt></h3><div style="clear:left"></div>\r
+<div class="para"><p>You can choose to provide the name of a\r
file in <tt>$GIT_DIR/branches</tt>.\r
The URL in this file will be used to access the repository.\r
-This file should have the following format:</p>\r
+This file should have the following format:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> <url>#<head></tt></pre>\r
</div></div>\r
-<p><tt><url></tt> is required; <tt>#<head></tt> is optional.\r
+<div class="para"><p><tt><url></tt> is required; <tt>#<head></tt> is optional.\r
When you do not provide a refspec on the command line,\r
git will use the following refspec, where <tt><head></tt> defaults to <tt>master</tt>,\r
and <tt><repository></tt> is the name of this file\r
-you provided in the command line.</p>\r
+you provided in the command line.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> refs/heads/<head>:<repository></tt></pre>\r
</div></div>\r
</div>\r
-<h2>OUTPUT</h2>\r
+<h2 id="_output">OUTPUT</h2>\r
<div class="sectionbody">\r
-<p>The output of "git push" depends on the transport method used; this\r
+<div class="para"><p>The output of "git push" depends on the transport method used; this\r
section describes the output when pushing over the git protocol (either\r
-locally or via ssh).</p>\r
-<p>The status of the push is output in tabular form, with each line\r
-representing the status of a single ref. Each line is of the form:</p>\r
+locally or via ssh).</p></div>\r
+<div class="para"><p>The status of the push is output in tabular form, with each line\r
+representing the status of a single ref. Each line is of the form:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> <flag> <summary> <from> -> <to> (<reason>)</tt></pre>\r
</div></div>\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
flag\r
</dt>\r
failure is described.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git push origin master\r
</dt>\r
the ref name on its own will work.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net>, later rewritten in C\r
-by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net>, later rewritten in C\r
+by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:56 UTC\r
+Last updated 2008-07-06 05:16:57 UTC\r
</div>\r
</div>\r
</body>\r
line.
--receive-pack=<git-receive-pack>::
- Path to the `git-receive-pack` program on the remote
+ Path to the 'git-receive-pack' program on the remote
end. Sometimes useful when pushing to a remote
repository over ssh, and you do not have the program in
a directory on the default $PATH.
--thin::
--no-thin::
- These options are passed to `git-send-pack`. Thin
+ These options are passed to 'git-send-pack'. Thin
transfer spends extra cycles to minimize the number of
objects to be sent and meant to be used on slower connection.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-read-tree(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git read-tree</em> (<tree-ish> | [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>] [-u | -i]] [--exclude-per-directory=<gitignore>] [--index-output=<file>] <tree-ish1> [<tree-ish2> [<tree-ish3>]])</p>\r
+<div class="para"><p><em>git read-tree</em> (<tree-ish> | [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>] [-u | -i]] [--exclude-per-directory=<gitignore>] [--index-output=<file>] <tree-ish1> [<tree-ish2> [<tree-ish3>]])</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Reads the tree information given by <tree-ish> into the index,\r
+<div class="para"><p>Reads the tree information given by <tree-ish> into the index,\r
but does not actually <strong>update</strong> any of the files it "caches". (see:\r
-<a href="git-checkout-index.html">git-checkout-index(1)</a>)</p>\r
-<p>Optionally, it can merge a tree into the index, perform a\r
+<a href="git-checkout-index.html">git-checkout-index(1)</a>)</p></div>\r
+<div class="para"><p>Optionally, it can merge a tree into the index, perform a\r
fast-forward (i.e. 2-way) merge, or a 3-way merge, with the <tt>-m</tt>\r
flag. When used with <tt>-m</tt>, the <tt>-u</tt> flag causes it to also update\r
-the files in the work tree with the result of the merge.</p>\r
-<p>Trivial merges are done by <tt>git-read-tree</tt> itself. Only conflicting paths\r
-will be in unmerged state when <tt>git-read-tree</tt> returns.</p>\r
+the files in the work tree with the result of the merge.</p></div>\r
+<div class="para"><p>Trivial merges are done by <em>git-read-tree</em> itself. Only conflicting paths\r
+will be in unmerged state when <em>git-read-tree</em> returns.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-m\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Restrict three-way merge by <tt>git-read-tree</tt> to happen\r
+ Restrict three-way merge by <em>git-read-tree</em> to happen\r
only if there is no file-level merging required, instead\r
of resolving merge for trivial cases and leaving\r
conflicting files unresolved in the index.\r
</dt>\r
<dd>\r
<p>\r
- Usually a three-way merge by <tt>git-read-tree</tt> resolves\r
+ Usually a three-way merge by <em>git-read-tree</em> resolves\r
the merge for really trivial cases and leaves other\r
cases unresolved in the index, so that Porcelains can\r
implement different merge policies. This flag makes the\r
command to resolve a few more cases internally:\r
</p>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
when one side removes a path and the other side leaves the path\r
is to add that path.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
<dt>\r
--prefix=<prefix>/\r
The id of the tree object(s) to be read/merged.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Merging</h2>\r
+<h2 id="_merging">Merging</h2>\r
<div class="sectionbody">\r
-<p>If <tt>-m</tt> is specified, <tt>git-read-tree</tt> can perform 3 kinds of\r
+<div class="para"><p>If <tt>-m</tt> is specified, <em>git-read-tree</em> can perform 3 kinds of\r
merge, a single tree merge if only 1 tree is given, a\r
fast-forward merge with 2 trees, or a 3-way merge if 3 trees are\r
-provided.</p>\r
-<h3>Single Tree Merge</h3>\r
-<p>If only 1 tree is specified, <tt>git-read-tree</tt> operates as if the user did not\r
+provided.</p></div>\r
+<h3 id="_single_tree_merge">Single Tree Merge</h3><div style="clear:left"></div>\r
+<div class="para"><p>If only 1 tree is specified, <em>git-read-tree</em> operates as if the user did not\r
specify <tt>-m</tt>, except that if the original index has an entry for a\r
given pathname, and the contents of the path matches with the tree\r
being read, the stat info from the index is used. (In other words, the\r
-index's stat()s take precedence over the merged tree's).</p>\r
-<p>That means that if you do a <tt>git read-tree -m <newtree></tt> followed by a\r
-<tt>git checkout-index -f -u -a</tt>, the <tt>git-checkout-index</tt> only checks out\r
-the stuff that really changed.</p>\r
-<p>This is used to avoid unnecessary false hits when <tt>git-diff-files</tt> is\r
-run after <tt>git-read-tree</tt>.</p>\r
-<h3>Two Tree Merge</h3>\r
-<p>Typically, this is invoked as <tt>git read-tree -m $H $M</tt>, where $H\r
+index's stat()s take precedence over the merged tree's).</p></div>\r
+<div class="para"><p>That means that if you do a <tt>git read-tree -m <newtree></tt> followed by a\r
+<tt>git checkout-index -f -u -a</tt>, the <em>git-checkout-index</em> only checks out\r
+the stuff that really changed.</p></div>\r
+<div class="para"><p>This is used to avoid unnecessary false hits when <em>git-diff-files</em> is\r
+run after <em>git-read-tree</em>.</p></div>\r
+<h3 id="_two_tree_merge">Two Tree Merge</h3><div style="clear:left"></div>\r
+<div class="para"><p>Typically, this is invoked as <tt>git read-tree -m $H $M</tt>, where $H\r
is the head commit of the current repository, and $M is the head\r
of a foreign tree, which is simply ahead of $H (i.e. we are in a\r
-fast forward situation).</p>\r
-<p>When two trees are specified, the user is telling <tt>git-read-tree</tt>\r
-the following:</p>\r
-<ol>\r
+fast forward situation).</p></div>\r
+<div class="para"><p>When two trees are specified, the user is telling <em>git-read-tree</em>\r
+the following:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
The current index and work tree is derived from $H, but\r
The user wants to fast-forward to $M.\r
</p>\r
</li>\r
-</ol>\r
-<p>In this case, the <tt>git read-tree -m $H $M</tt> command makes sure\r
+</ol></div>\r
+<div class="para"><p>In this case, the <tt>git read-tree -m $H $M</tt> command makes sure\r
that no local change is lost as the result of this "merge".\r
-Here are the "carry forward" rules:</p>\r
+Here are the "carry forward" rules:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> I (index) H M Result\r
20 yes yes no exists exists use M\r
21 no yes no exists exists fail</tt></pre>\r
</div></div>\r
-<p>In all "keep index" cases, the index entry stays as in the\r
+<div class="para"><p>In all "keep index" cases, the index entry stays as in the\r
original index file. If the entry were not up to date,\r
-<tt>git-read-tree</tt> keeps the copy in the work tree intact when\r
-operating under the -u flag.</p>\r
-<p>When this form of <tt>git-read-tree</tt> returns successfully, you can\r
+<em>git-read-tree</em> keeps the copy in the work tree intact when\r
+operating under the -u flag.</p></div>\r
+<div class="para"><p>When this form of <em>git-read-tree</em> returns successfully, you can\r
see what "local changes" you made are carried forward by running\r
<tt>git diff-index --cached $M</tt>. Note that this does not\r
necessarily match <tt>git diff-index --cached $H</tt> would have\r
you picked it up via e-mail in a patch form), <tt>git diff-index\r
--cached $H</tt> would have told you about the change before this\r
merge, but it would not show in <tt>git diff-index --cached $M</tt>\r
-output after two-tree merge.</p>\r
-<h3>3-Way Merge</h3>\r
-<p>Each "index" entry has two bits worth of "stage" state. stage 0 is the\r
-normal one, and is the only one you'd see in any kind of normal use.</p>\r
-<p>However, when you do <tt>git-read-tree</tt> with three trees, the "stage"\r
-starts out at 1.</p>\r
-<p>This means that you can do</p>\r
+output after two-tree merge.</p></div>\r
+<h3 id="_3_way_merge">3-Way Merge</h3><div style="clear:left"></div>\r
+<div class="para"><p>Each "index" entry has two bits worth of "stage" state. stage 0 is the\r
+normal one, and is the only one you'd see in any kind of normal use.</p></div>\r
+<div class="para"><p>However, when you do <em>git-read-tree</em> with three trees, the "stage"\r
+starts out at 1.</p></div>\r
+<div class="para"><p>This means that you can do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git read-tree -m <tree1> <tree2> <tree3></tt></pre>\r
</div></div>\r
-<p>and you will end up with an index with all of the <tree1> entries in\r
+<div class="para"><p>and you will end up with an index with all of the <tree1> entries in\r
"stage1", all of the <tree2> entries in "stage2" and all of the\r
<tree3> entries in "stage3". When performing a merge of another\r
branch into the current branch, we use the common ancestor tree\r
as <tree1>, the current branch head as <tree2>, and the other\r
-branch head as <tree3>.</p>\r
-<p>Furthermore, <tt>git-read-tree</tt> has special-case logic that says: if you see\r
+branch head as <tree3>.</p></div>\r
+<div class="para"><p>Furthermore, <em>git-read-tree</em> has special-case logic that says: if you see\r
a file that matches in all respects in the following states, it\r
-"collapses" back to "stage0":</p>\r
-<ul>\r
+"collapses" back to "stage0":</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
stage 2 and 3 are the same; take one or the other (it makes no\r
stage 2 (we did something while they did nothing)\r
</p>\r
</li>\r
-</ul>\r
-<p>The <tt>git-write-tree</tt> command refuses to write a nonsensical tree, and it\r
+</ul></div>\r
+<div class="para"><p>The <em>git-write-tree</em> command refuses to write a nonsensical tree, and it\r
will complain about unmerged entries if it sees a single entry that is not\r
-stage 0.</p>\r
-<p>OK, this all sounds like a collection of totally nonsensical rules,\r
+stage 0.</p></div>\r
+<div class="para"><p>OK, this all sounds like a collection of totally nonsensical rules,\r
but it's actually exactly what you want in order to do a fast\r
merge. The different stages represent the "result tree" (stage 0, aka\r
"merged"), the original tree (stage 1, aka "orig"), and the two trees\r
-you are trying to merge (stage 2 and 3 respectively).</p>\r
-<p>The order of stages 1, 2 and 3 (hence the order of three\r
+you are trying to merge (stage 2 and 3 respectively).</p></div>\r
+<div class="para"><p>The order of stages 1, 2 and 3 (hence the order of three\r
<tree-ish> command line arguments) are significant when you\r
start a 3-way merge with an index file that is already\r
-populated. Here is an outline of how the algorithm works:</p>\r
-<ul>\r
+populated. Here is an outline of how the algorithm works:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
if a file exists in identical format in all three trees, it will\r
- automatically collapse to "merged" state by <tt>git-read-tree</tt>.\r
+ automatically collapse to "merged" state by <em>git-read-tree</em>.\r
</p>\r
</li>\r
<li>\r
<p>\r
-a file that has _any_ difference what-so-ever in the three trees\r
+a file that has <em>any</em> difference what-so-ever in the three trees\r
will stay as separate entries in the index. It's up to "porcelain\r
policy" to determine how to remove the non-0 stages, and insert a\r
merged version.\r
stages 1/2/3 (i.e., "unmerged entries") you can't write the result. So\r
now the merge algorithm ends up being really simple:\r
</p>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
you walk the index in order, and ignore all entries of stage 0,\r
trivial rules ..\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</li>\r
-</ul>\r
-<p>You would normally use <tt>git-merge-index</tt> with supplied\r
-<tt>git-merge-one-file</tt> to do this last step. The script updates\r
+</ul></div>\r
+<div class="para"><p>You would normally use <em>git-merge-index</em> with supplied\r
+<em>git-merge-one-file</em> to do this last step. The script updates\r
the files in the working tree as it merges each path and at the\r
-end of a successful merge.</p>\r
-<p>When you start a 3-way merge with an index file that is already\r
+end of a successful merge.</p></div>\r
+<div class="para"><p>When you start a 3-way merge with an index file that is already\r
populated, it is assumed that it represents the state of the\r
files in your work tree, and you can even have files with\r
changes unrecorded in the index file. It is further assumed\r
that this state is "derived" from the stage 2 tree. The 3-way\r
merge refuses to run if it finds an entry in the original index\r
-file that does not match stage 2.</p>\r
-<p>This is done to prevent you from losing your work-in-progress\r
+file that does not match stage 2.</p></div>\r
+<div class="para"><p>This is done to prevent you from losing your work-in-progress\r
changes, and mixing your random changes in an unrelated merge\r
commit. To illustrate, suppose you start from what has been\r
-committed last to your repository:</p>\r
+committed last to your repository:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ JC=`git rev-parse --verify "HEAD^0"`\r
$ git checkout-index -f -u -a $JC</tt></pre>\r
</div></div>\r
-<p>You do random edits, without running <tt>git-update-index</tt>. And then\r
+<div class="para"><p>You do random edits, without running <em>git-update-index</em>. And then\r
you notice that the tip of your "upstream" tree has advanced\r
-since you pulled from him:</p>\r
+since you pulled from him:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git fetch git://.... linus\r
$ LT=`cat .git/FETCH_HEAD`</tt></pre>\r
</div></div>\r
-<p>Your work tree is still based on your HEAD ($JC), but you have\r
+<div class="para"><p>Your work tree is still based on your HEAD ($JC), but you have\r
some edits since. Three-way merge makes sure that you have not\r
added or modified index entries since $JC, and if you haven't,\r
-then does the right thing. So with the following sequence:</p>\r
+then does the right thing. So with the following sequence:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git read-tree -m -u `git merge-base $JC $LT` $JC $LT\r
$ echo "Merge with Linus" | \\r
git commit-tree `git write-tree` -p $JC -p $LT</tt></pre>\r
</div></div>\r
-<p>what you would commit is a pure merge between $JC and $LT without\r
+<div class="para"><p>what you would commit is a pure merge between $JC and $LT without\r
your work-in-progress changes, and your work tree would be\r
-updated to the result of the merge.</p>\r
-<p>However, if you have local changes in the working tree that\r
-would be overwritten by this merge, <tt>git-read-tree</tt> will refuse\r
-to run to prevent your changes from being lost.</p>\r
-<p>In other words, there is no need to worry about what exists only\r
+updated to the result of the merge.</p></div>\r
+<div class="para"><p>However, if you have local changes in the working tree that\r
+would be overwritten by this merge, <em>git-read-tree</em> will refuse\r
+to run to prevent your changes from being lost.</p></div>\r
+<div class="para"><p>In other words, there is no need to worry about what exists only\r
in the working tree. When you have local changes in a part of\r
the project that is not involved in the merge, your changes do\r
not interfere with the merge, and are kept intact. When they\r
-<strong>do</strong> interfere, the merge does not even start (<tt>git-read-tree</tt>\r
+<strong>do</strong> interfere, the merge does not even start (<em>git-read-tree</em>\r
complains loudly and fails without modifying anything). In such\r
a case, you can simply continue doing what you were in the\r
middle of doing, and when your working tree is ready (i.e. you\r
-have finished your work-in-progress), attempt the merge again.</p>\r
+have finished your work-in-progress), attempt the merge again.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-write-tree.html">git-write-tree(1)</a>; <a href="git-ls-files.html">git-ls-files(1)</a>;\r
-<a href="gitignore.html">gitignore(5)</a></p>\r
+<div class="para"><p><a href="git-write-tree.html">git-write-tree(1)</a>; <a href="git-ls-files.html">git-ls-files(1)</a>;\r
+<a href="gitignore.html">gitignore(5)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:57 UTC\r
+Last updated 2008-07-06 05:16:57 UTC\r
</div>\r
</div>\r
</body>\r
flag. When used with `-m`, the `-u` flag causes it to also update
the files in the work tree with the result of the merge.
-Trivial merges are done by `git-read-tree` itself. Only conflicting paths
-will be in unmerged state when `git-read-tree` returns.
+Trivial merges are done by 'git-read-tree' itself. Only conflicting paths
+will be in unmerged state when 'git-read-tree' returns.
OPTIONS
-------
Show the progress of checking files out.
--trivial::
- Restrict three-way merge by `git-read-tree` to happen
+ Restrict three-way merge by 'git-read-tree' to happen
only if there is no file-level merging required, instead
of resolving merge for trivial cases and leaving
conflicting files unresolved in the index.
--aggressive::
- Usually a three-way merge by `git-read-tree` resolves
+ Usually a three-way merge by 'git-read-tree' resolves
the merge for really trivial cases and leaves other
cases unresolved in the index, so that Porcelains can
implement different merge policies. This flag makes the
Merging
-------
-If `-m` is specified, `git-read-tree` can perform 3 kinds of
+If `-m` is specified, 'git-read-tree' can perform 3 kinds of
merge, a single tree merge if only 1 tree is given, a
fast-forward merge with 2 trees, or a 3-way merge if 3 trees are
provided.
Single Tree Merge
~~~~~~~~~~~~~~~~~
-If only 1 tree is specified, `git-read-tree` operates as if the user did not
+If only 1 tree is specified, 'git-read-tree' operates as if the user did not
specify `-m`, except that if the original index has an entry for a
given pathname, and the contents of the path matches with the tree
being read, the stat info from the index is used. (In other words, the
index's stat()s take precedence over the merged tree's).
That means that if you do a `git read-tree -m <newtree>` followed by a
-`git checkout-index -f -u -a`, the `git-checkout-index` only checks out
+`git checkout-index -f -u -a`, the 'git-checkout-index' only checks out
the stuff that really changed.
-This is used to avoid unnecessary false hits when `git-diff-files` is
-run after `git-read-tree`.
+This is used to avoid unnecessary false hits when 'git-diff-files' is
+run after 'git-read-tree'.
Two Tree Merge
of a foreign tree, which is simply ahead of $H (i.e. we are in a
fast forward situation).
-When two trees are specified, the user is telling `git-read-tree`
+When two trees are specified, the user is telling 'git-read-tree'
the following:
1. The current index and work tree is derived from $H, but
In all "keep index" cases, the index entry stays as in the
original index file. If the entry were not up to date,
-`git-read-tree` keeps the copy in the work tree intact when
+'git-read-tree' keeps the copy in the work tree intact when
operating under the -u flag.
-When this form of `git-read-tree` returns successfully, you can
+When this form of 'git-read-tree' returns successfully, you can
see what "local changes" you made are carried forward by running
`git diff-index --cached $M`. Note that this does not
necessarily match `git diff-index --cached $H` would have
Each "index" entry has two bits worth of "stage" state. stage 0 is the
normal one, and is the only one you'd see in any kind of normal use.
-However, when you do `git-read-tree` with three trees, the "stage"
+However, when you do 'git-read-tree' with three trees, the "stage"
starts out at 1.
This means that you can do
as <tree1>, the current branch head as <tree2>, and the other
branch head as <tree3>.
-Furthermore, `git-read-tree` has special-case logic that says: if you see
+Furthermore, 'git-read-tree' has special-case logic that says: if you see
a file that matches in all respects in the following states, it
"collapses" back to "stage0":
- stage 1 and stage 3 are the same and stage 2 is different take
stage 2 (we did something while they did nothing)
-The `git-write-tree` command refuses to write a nonsensical tree, and it
+The 'git-write-tree' command refuses to write a nonsensical tree, and it
will complain about unmerged entries if it sees a single entry that is not
stage 0.
populated. Here is an outline of how the algorithm works:
- if a file exists in identical format in all three trees, it will
- automatically collapse to "merged" state by `git-read-tree`.
+ automatically collapse to "merged" state by 'git-read-tree'.
- a file that has _any_ difference what-so-ever in the three trees
will stay as separate entries in the index. It's up to "porcelain
matching "stage1" entry if it exists too. .. all the normal
trivial rules ..
-You would normally use `git-merge-index` with supplied
-`git-merge-one-file` to do this last step. The script updates
+You would normally use 'git-merge-index' with supplied
+'git-merge-one-file' to do this last step. The script updates
the files in the working tree as it merges each path and at the
end of a successful merge.
$ git checkout-index -f -u -a $JC
----------------
-You do random edits, without running `git-update-index`. And then
+You do random edits, without running 'git-update-index'. And then
you notice that the tip of your "upstream" tree has advanced
since you pulled from him:
updated to the result of the merge.
However, if you have local changes in the working tree that
-would be overwritten by this merge, `git-read-tree` will refuse
+would be overwritten by this merge, 'git-read-tree' will refuse
to run to prevent your changes from being lost.
In other words, there is no need to worry about what exists only
in the working tree. When you have local changes in a part of
the project that is not involved in the merge, your changes do
not interfere with the merge, and are kept intact. When they
-*do* interfere, the merge does not even start (`git-read-tree`
+*do* interfere, the merge does not even start ('git-read-tree'
complains loudly and fails without modifying anything). In such
a case, you can simply continue doing what you were in the
middle of doing, and when your working tree is ready (i.e. you
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-rebase(1)</title>\r
</head>\r
[--onto <newbase>] <upstream> [<branch>]\r
<em>git rebase</em> --continue | --skip | --abort</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>If <branch> is specified, <tt>git-rebase</tt> will perform an automatic\r
+<div class="para"><p>If <branch> is specified, <em>git-rebase</em> will perform an automatic\r
<tt>git checkout <branch></tt> before doing anything else. Otherwise\r
-it remains on the current branch.</p>\r
-<p>All changes made by commits in the current branch but that are not\r
+it remains on the current branch.</p></div>\r
+<div class="para"><p>All changes made by commits in the current branch but that are not\r
in <upstream> are saved to a temporary area. This is the same set\r
-of commits that would be shown by <tt>git log <upstream>..HEAD</tt>.</p>\r
-<p>The current branch is reset to <upstream>, or <newbase> if the\r
+of commits that would be shown by <tt>git log <upstream>..HEAD</tt>.</p></div>\r
+<div class="para"><p>The current branch is reset to <upstream>, or <newbase> if the\r
--onto option was supplied. This has the exact same effect as\r
-<tt>git reset --hard <upstream></tt> (or <newbase>).</p>\r
-<p>The commits that were previously saved into the temporary area are\r
+<tt>git reset --hard <upstream></tt> (or <newbase>).</p></div>\r
+<div class="para"><p>The commits that were previously saved into the temporary area are\r
then reapplied to the current branch, one by one, in order. Note that\r
any commits in HEAD which introduce the same textual changes as a commit\r
in HEAD..<upstream> are omitted (i.e., a patch already accepted upstream\r
-with a different commit message or timestamp will be skipped).</p>\r
-<p>It is possible that a merge failure will prevent this process from being\r
+with a different commit message or timestamp will be skipped).</p></div>\r
+<div class="para"><p>It is possible that a merge failure will prevent this process from being\r
completely automatic. You will have to resolve any such merge failure\r
and run <tt>git rebase --continue</tt>. Another option is to bypass the commit\r
that caused the merge failure with <tt>git rebase --skip</tt>. To restore the\r
original <branch> and remove the .dotest working files, use the command\r
-<tt>git rebase --abort</tt> instead.</p>\r
-<p>Assume the following history exists and the current branch is "topic":</p>\r
+<tt>git rebase --abort</tt> instead.</p></div>\r
+<div class="para"><p>Assume the following history exists and the current branch is "topic":</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> A---B---C topic\r
/\r
D---E---F---G master</tt></pre>\r
</div></div>\r
-<p>From this point, the result of either of the following commands:</p>\r
+<div class="para"><p>From this point, the result of either of the following commands:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git rebase master\r
git rebase master topic</tt></pre>\r
</div></div>\r
-<p>would be:</p>\r
+<div class="para"><p>would be:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> A'--B'--C' topic\r
/\r
D---E---F---G master</tt></pre>\r
</div></div>\r
-<p>The latter form is just a short-hand of <tt>git checkout topic</tt>\r
-followed by <tt>git rebase master</tt>.</p>\r
-<p>If the upstream branch already contains a change you have made (e.g.,\r
+<div class="para"><p>The latter form is just a short-hand of <tt>git checkout topic</tt>\r
+followed by <tt>git rebase master</tt>.</p></div>\r
+<div class="para"><p>If the upstream branch already contains a change you have made (e.g.,\r
because you mailed a patch which was applied upstream), then that commit\r
will be skipped. For example, running <tt>git rebase master</tt> on the\r
following history (in which A' and A introduce the same set of changes,\r
-but have different committer information):</p>\r
+but have different committer information):</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> A---B---C topic\r
/\r
D---E---A'---F master</tt></pre>\r
</div></div>\r
-<p>will result in:</p>\r
+<div class="para"><p>will result in:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> B'---C' topic\r
/\r
D---E---A'---F master</tt></pre>\r
</div></div>\r
-<p>Here is how you would transplant a topic branch based on one\r
+<div class="para"><p>Here is how you would transplant a topic branch based on one\r
branch to another, to pretend that you forked the topic branch\r
-from the latter branch, using <tt>rebase --onto</tt>.</p>\r
-<p>First let's assume your <em>topic</em> is based on branch <em>next</em>.\r
+from the latter branch, using <tt>rebase --onto</tt>.</p></div>\r
+<div class="para"><p>First let's assume your <em>topic</em> is based on branch <em>next</em>.\r
For example feature developed in <em>topic</em> depends on some\r
-functionality which is found in <em>next</em>.</p>\r
+functionality which is found in <em>next</em>.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> o---o---o---o---o master\r
\\r
o---o---o topic</tt></pre>\r
</div></div>\r
-<p>We would want to make <em>topic</em> forked from branch <em>master</em>,\r
+<div class="para"><p>We would want to make <em>topic</em> forked from branch <em>master</em>,\r
for example because the functionality <em>topic</em> branch depend on\r
-got merged into more stable <em>master</em> branch, like this:</p>\r
+got merged into more stable <em>master</em> branch, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> o---o---o---o---o master\r
\\r
o---o---o---o---o next</tt></pre>\r
</div></div>\r
-<p>We can get this using the following command:</p>\r
+<div class="para"><p>We can get this using the following command:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git rebase --onto master next topic</tt></pre>\r
</div></div>\r
-<p>Another example of --onto option is to rebase part of a\r
-branch. If we have the following situation:</p>\r
+<div class="para"><p>Another example of --onto option is to rebase part of a\r
+branch. If we have the following situation:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> H---I---J topicB\r
/\r
A---B---C---D master</tt></pre>\r
</div></div>\r
-<p>then the command</p>\r
+<div class="para"><p>then the command</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git rebase --onto master topicA topicB</tt></pre>\r
</div></div>\r
-<p>would result in:</p>\r
+<div class="para"><p>would result in:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> H'--I'--J' topicB\r
|/\r
A---B---C---D master</tt></pre>\r
</div></div>\r
-<p>This is useful when topicB does not depend on topicA.</p>\r
-<p>A range of commits could also be removed with rebase. If we have\r
-the following situation:</p>\r
+<div class="para"><p>This is useful when topicB does not depend on topicA.</p></div>\r
+<div class="para"><p>A range of commits could also be removed with rebase. If we have\r
+the following situation:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> E---F---G---H---I---J topicA</tt></pre>\r
</div></div>\r
-<p>then the command</p>\r
+<div class="para"><p>then the command</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git rebase --onto topicA~5 topicA~3 topicA</tt></pre>\r
</div></div>\r
-<p>would result in the removal of commits F and G:</p>\r
+<div class="para"><p>would result in the removal of commits F and G:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> E---H'---I'---J' topicA</tt></pre>\r
</div></div>\r
-<p>This is useful if F and G were flawed in some way, or should not be\r
+<div class="para"><p>This is useful if F and G were flawed in some way, or should not be\r
part of topicA. Note that the argument to --onto and the <upstream>\r
-parameter can be any valid commit-ish.</p>\r
-<p>In case of conflict, <tt>git-rebase</tt> will stop at the first problematic commit\r
-and leave conflict markers in the tree. You can use <tt>git-diff</tt> to locate\r
+parameter can be any valid commit-ish.</p></div>\r
+<div class="para"><p>In case of conflict, <em>git-rebase</em> will stop at the first problematic commit\r
+and leave conflict markers in the tree. You can use <em>git-diff</em> to locate\r
the markers (<<<<<<) and make edits to resolve the conflict. For each\r
file you edit, you need to tell git that the conflict has been resolved,\r
-typically this would be done with</p>\r
+typically this would be done with</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git add <filename></tt></pre>\r
</div></div>\r
-<p>After resolving the conflict manually and updating the index with the\r
-desired resolution, you can continue the rebasing process with</p>\r
+<div class="para"><p>After resolving the conflict manually and updating the index with the\r
+desired resolution, you can continue the rebasing process with</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git rebase --continue</tt></pre>\r
</div></div>\r
-<p>Alternatively, you can undo the <tt>git-rebase</tt> with</p>\r
+<div class="para"><p>Alternatively, you can undo the <em>git-rebase</em> with</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git rebase --abort</tt></pre>\r
</div></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<newbase>\r
</dt>\r
Use the given merge strategy; can be supplied more than\r
once to specify them in the order they should be tried.\r
If there is no <tt>-s</tt> option, a built-in list of strategies\r
- is used instead (<tt>git-merge-recursive</tt> when merging a single\r
- head, <tt>git-merge-octopus</tt> otherwise). This implies --merge.\r
+ is used instead (<em>git-merge-recursive</em> when merging a single\r
+ head, <em>git-merge-octopus</em> otherwise). This implies --merge.\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- This flag is passed to the <tt>git-apply</tt> program\r
+ This flag is passed to the <em>git-apply</em> program\r
(see <a href="git-apply.html">git-apply(1)</a>) that applies the patch.\r
</p>\r
</dd>\r
only works in interactive mode.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>MERGE STRATEGIES</h2>\r
+<h2 id="_merge_strategies">MERGE STRATEGIES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
resolve\r
</dt>\r
ancestor tree.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>NOTES</h2>\r
+<h2 id="_notes">NOTES</h2>\r
<div class="sectionbody">\r
-<p>When you rebase a branch, you are changing its history in a way that\r
+<div class="para"><p>When you rebase a branch, you are changing its history in a way that\r
will cause problems for anyone who already has a copy of the branch\r
in their repository and tries to pull updates from you. You should\r
-understand the implications of using <em>git rebase</em> on a repository that\r
-you share.</p>\r
-<p>When the git rebase command is run, it will first execute a "pre-rebase"\r
+understand the implications of using <em>git-rebase</em> on a repository that\r
+you share.</p></div>\r
+<div class="para"><p>When the git-rebase command is run, it will first execute a "pre-rebase"\r
hook if one exists. You can use this hook to do sanity checks and\r
reject the rebase if it isn't appropriate. Please see the template\r
-pre-rebase hook script for an example.</p>\r
-<p>Upon completion, <branch> will be the current branch.</p>\r
+pre-rebase hook script for an example.</p></div>\r
+<div class="para"><p>Upon completion, <branch> will be the current branch.</p></div>\r
</div>\r
-<h2>INTERACTIVE MODE</h2>\r
+<h2 id="_interactive_mode">INTERACTIVE MODE</h2>\r
<div class="sectionbody">\r
-<p>Rebasing interactively means that you have a chance to edit the commits\r
+<div class="para"><p>Rebasing interactively means that you have a chance to edit the commits\r
which are rebased. You can reorder the commits, and you can\r
-remove them (weeding out bad or otherwise unwanted patches).</p>\r
-<p>The interactive mode is meant for this type of workflow:</p>\r
-<ol>\r
+remove them (weeding out bad or otherwise unwanted patches).</p></div>\r
+<div class="para"><p>The interactive mode is meant for this type of workflow:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
have a wonderful idea\r
submit\r
</p>\r
</li>\r
-</ol>\r
-<p>where point 2. consists of several instances of</p>\r
-<ol class="olist2">\r
+</ol></div>\r
+<div class="para"><p>where point 2. consists of several instances of</p></div>\r
+<div class="olist2"><ol>\r
<li>\r
<p>\r
regular use\r
</p>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
finish something worthy of a commit\r
commit\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</li>\r
<li>\r
<p>\r
independent fixup\r
</p>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
realize that something does not work\r
commit it\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</li>\r
-</ol>\r
-<p>Sometimes the thing fixed in b.2. cannot be amended to the not-quite\r
+</ol></div>\r
+<div class="para"><p>Sometimes the thing fixed in b.2. cannot be amended to the not-quite\r
perfect commit it fixes, because that commit is buried deeply in a\r
patch series. That is exactly what interactive rebase is for: use it\r
after plenty of "a"s and "b"s, by rearranging and editing\r
-commits, and squashing multiple commits into one.</p>\r
-<p>Start it with the last commit you want to retain as-is:</p>\r
+commits, and squashing multiple commits into one.</p></div>\r
+<div class="para"><p>Start it with the last commit you want to retain as-is:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>git rebase -i <after-this-commit></tt></pre>\r
</div></div>\r
-<p>An editor will be fired up with all the commits in your current branch\r
+<div class="para"><p>An editor will be fired up with all the commits in your current branch\r
(ignoring merge commits), which come after the given commit. You can\r
reorder the commits in this list to your heart's content, and you can\r
-remove them. The list looks more or less like this:</p>\r
+remove them. The list looks more or less like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>pick deadbee The oneline of this commit\r
pick fa1afe1 The oneline of the next commit\r
...</tt></pre>\r
</div></div>\r
-<p>The oneline descriptions are purely for your pleasure; <tt>git-rebase</tt> will\r
+<div class="para"><p>The oneline descriptions are purely for your pleasure; <em>git-rebase</em> will\r
not look at them but at the commit names ("deadbee" and "fa1afe1" in this\r
-example), so do not delete or edit the names.</p>\r
-<p>By replacing the command "pick" with the command "edit", you can tell\r
-<tt>git-rebase</tt> to stop after applying that commit, so that you can edit\r
+example), so do not delete or edit the names.</p></div>\r
+<div class="para"><p>By replacing the command "pick" with the command "edit", you can tell\r
+<em>git-rebase</em> to stop after applying that commit, so that you can edit\r
the files and/or the commit message, amend the commit, and continue\r
-rebasing.</p>\r
-<p>If you want to fold two or more commits into one, replace the command\r
+rebasing.</p></div>\r
+<div class="para"><p>If you want to fold two or more commits into one, replace the command\r
"pick" with "squash" for the second and subsequent commit. If the\r
commits had different authors, it will attribute the squashed commit to\r
-the author of the first commit.</p>\r
-<p>In both cases, or when a "pick" does not succeed (because of merge\r
+the author of the first commit.</p></div>\r
+<div class="para"><p>In both cases, or when a "pick" does not succeed (because of merge\r
errors), the loop will stop to let you fix things, and you can continue\r
-the loop with <tt>git rebase --continue</tt>.</p>\r
-<p>For example, if you want to reorder the last 5 commits, such that what\r
+the loop with <tt>git rebase --continue</tt>.</p></div>\r
+<div class="para"><p>For example, if you want to reorder the last 5 commits, such that what\r
was HEAD~4 becomes the new HEAD. To achieve that, you would call\r
-<tt>git-rebase</tt> like this:</p>\r
+<em>git-rebase</em> like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git rebase -i HEAD~5</tt></pre>\r
</div></div>\r
-<p>And move the first patch to the end of the list.</p>\r
-<p>You might want to preserve merges, if you have a history like this:</p>\r
+<div class="para"><p>And move the first patch to the end of the list.</p></div>\r
+<div class="para"><p>You might want to preserve merges, if you have a history like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> X\r
/\r
---o---O---P---Q</tt></pre>\r
</div></div>\r
-<p>Suppose you want to rebase the side branch starting at "A" to "Q". Make\r
-sure that the current HEAD is "B", and call</p>\r
+<div class="para"><p>Suppose you want to rebase the side branch starting at "A" to "Q". Make\r
+sure that the current HEAD is "B", and call</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git rebase -i -p --onto Q O</tt></pre>\r
</div></div>\r
</div>\r
-<h2>SPLITTING COMMITS</h2>\r
+<h2 id="_splitting_commits">SPLITTING COMMITS</h2>\r
<div class="sectionbody">\r
-<p>In interactive mode, you can mark commits with the action "edit". However,\r
-this does not necessarily mean that <tt>git-rebase</tt> expects the result of this\r
+<div class="para"><p>In interactive mode, you can mark commits with the action "edit". However,\r
+this does not necessarily mean that <em>git-rebase</em> expects the result of this\r
edit to be exactly one commit. Indeed, you can undo the commit, or you can\r
-add other commits. This can be used to split a commit into two:</p>\r
-<ul>\r
+add other commits. This can be used to split a commit into two:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Start an interactive rebase with <tt>git rebase -i <commit>^</tt>, where\r
<p>\r
Now add the changes to the index that you want to have in the first\r
commit. You can use <tt>git add</tt> (possibly interactively) or\r
- <tt>git-gui</tt> (or both) to do that.\r
+ <em>git-gui</em> (or both) to do that.\r
</p>\r
</li>\r
<li>\r
Continue the rebase with <tt>git rebase --continue</tt>.\r
</p>\r
</li>\r
-</ul>\r
-<p>If you are not absolutely sure that the intermediate revisions are\r
+</ul></div>\r
+<div class="para"><p>If you are not absolutely sure that the intermediate revisions are\r
consistent (they compile, pass the testsuite, etc.) you should use\r
-<tt>git-stash</tt> to stash away the not-yet-committed changes\r
-after each commit, test, and amend the commit if fixes are necessary.</p>\r
+<em>git-stash</em> to stash away the not-yet-committed changes\r
+after each commit, test, and amend the commit if fixes are necessary.</p></div>\r
</div>\r
-<h2>Authors</h2>\r
+<h2 id="_authors">Authors</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net> and\r
-Johannes E. Schindelin <johannes.schindelin@gmx.de></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net> and\r
+Johannes E. Schindelin <johannes.schindelin@gmx.de></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:57 UTC\r
+Last updated 2008-07-06 05:16:57 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-If <branch> is specified, `git-rebase` will perform an automatic
+If <branch> is specified, 'git-rebase' will perform an automatic
`git checkout <branch>` before doing anything else. Otherwise
it remains on the current branch.
part of topicA. Note that the argument to --onto and the <upstream>
parameter can be any valid commit-ish.
-In case of conflict, `git-rebase` will stop at the first problematic commit
-and leave conflict markers in the tree. You can use `git-diff` to locate
+In case of conflict, 'git-rebase' will stop at the first problematic commit
+and leave conflict markers in the tree. You can use 'git-diff' to locate
the markers (<<<<<<) and make edits to resolve the conflict. For each
file you edit, you need to tell git that the conflict has been resolved,
typically this would be done with
git rebase --continue
-Alternatively, you can undo the `git-rebase` with
+Alternatively, you can undo the 'git-rebase' with
git rebase --abort
Use the given merge strategy; can be supplied more than
once to specify them in the order they should be tried.
If there is no `-s` option, a built-in list of strategies
- is used instead (`git-merge-recursive` when merging a single
- head, `git-merge-octopus` otherwise). This implies --merge.
+ is used instead ('git-merge-recursive' when merging a single
+ head, 'git-merge-octopus' otherwise). This implies --merge.
-v::
--verbose::
ever ignored.
--whitespace=<nowarn|warn|error|error-all|strip>::
- This flag is passed to the `git-apply` program
+ This flag is passed to the 'git-apply' program
(see linkgit:git-apply[1]) that applies the patch.
-i::
When you rebase a branch, you are changing its history in a way that
will cause problems for anyone who already has a copy of the branch
in their repository and tries to pull updates from you. You should
-understand the implications of using 'git rebase' on a repository that
+understand the implications of using 'git-rebase' on a repository that
you share.
-When the git rebase command is run, it will first execute a "pre-rebase"
+When the git-rebase command is run, it will first execute a "pre-rebase"
hook if one exists. You can use this hook to do sanity checks and
reject the rebase if it isn't appropriate. Please see the template
pre-rebase hook script for an example.
...
-------------------------------------------
-The oneline descriptions are purely for your pleasure; `git-rebase` will
+The oneline descriptions are purely for your pleasure; 'git-rebase' will
not look at them but at the commit names ("deadbee" and "fa1afe1" in this
example), so do not delete or edit the names.
By replacing the command "pick" with the command "edit", you can tell
-`git-rebase` to stop after applying that commit, so that you can edit
+'git-rebase' to stop after applying that commit, so that you can edit
the files and/or the commit message, amend the commit, and continue
rebasing.
For example, if you want to reorder the last 5 commits, such that what
was HEAD~4 becomes the new HEAD. To achieve that, you would call
-`git-rebase` like this:
+'git-rebase' like this:
----------------------
$ git rebase -i HEAD~5
-----------------
In interactive mode, you can mark commits with the action "edit". However,
-this does not necessarily mean that `git-rebase` expects the result of this
+this does not necessarily mean that 'git-rebase' expects the result of this
edit to be exactly one commit. Indeed, you can undo the commit, or you can
add other commits. This can be used to split a commit into two:
- Now add the changes to the index that you want to have in the first
commit. You can use `git add` (possibly interactively) or
- `git-gui` (or both) to do that.
+ 'git-gui' (or both) to do that.
- Commit the now-current index with whatever commit message is appropriate
now.
If you are not absolutely sure that the intermediate revisions are
consistent (they compile, pass the testsuite, etc.) you should use
-`git-stash` to stash away the not-yet-committed changes
+'git-stash' to stash away the not-yet-committed changes
after each commit, test, and amend the commit if fixes are necessary.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-receive-pack(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git receive-pack</em> <directory></p>\r
+<div class="para"><p><em>git receive-pack</em> <directory></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Invoked by <tt>git-send-pack</tt> and updates the repository with the\r
-information fed from the remote end.</p>\r
-<p>This command is usually not invoked directly by the end user.\r
-The UI for the protocol is on the <tt>git-send-pack</tt> side, and the\r
+<div class="para"><p>Invoked by <em>git-send-pack</em> and updates the repository with the\r
+information fed from the remote end.</p></div>\r
+<div class="para"><p>This command is usually not invoked directly by the end user.\r
+The UI for the protocol is on the <em>git-send-pack</em> side, and the\r
program pair is meant to be used to push updates to remote\r
-repository. For pull operations, see <a href="git-fetch-pack.html">git-fetch-pack(1)</a>.</p>\r
-<p>The command allows for creation and fast forwarding of sha1 refs\r
+repository. For pull operations, see <a href="git-fetch-pack.html">git-fetch-pack(1)</a>.</p></div>\r
+<div class="para"><p>The command allows for creation and fast forwarding of sha1 refs\r
(heads/tags) on the remote end (strictly speaking, it is the\r
-local end <tt>git-receive-pack</tt> runs, but to the user who is sitting at\r
-the send-pack end, it is updating the remote. Confused?)</p>\r
-<p>There are other real-world examples of using update and\r
-post-update hooks found in the Documentation/howto directory.</p>\r
-<p><tt>git-receive-pack</tt> honours the receive.denyNonFastForwards config\r
+local end <em>git-receive-pack</em> runs, but to the user who is sitting at\r
+the send-pack end, it is updating the remote. Confused?)</p></div>\r
+<div class="para"><p>There are other real-world examples of using update and\r
+post-update hooks found in the Documentation/howto directory.</p></div>\r
+<div class="para"><p><em>git-receive-pack</em> honours the receive.denyNonFastForwards config\r
option, which tells it if updates to a ref should be denied if they\r
-are not fast-forwards.</p>\r
+are not fast-forwards.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<directory>\r
</dt>\r
The repository to sync into.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>pre-receive Hook</h2>\r
+<h2 id="_pre_receive_hook">pre-receive Hook</h2>\r
<div class="sectionbody">\r
-<p>Before any ref is updated, if $GIT_DIR/hooks/pre-receive file exists\r
+<div class="para"><p>Before any ref is updated, if $GIT_DIR/hooks/pre-receive file exists\r
and is executable, it will be invoked once with no parameters. The\r
-standard input of the hook will be one line per ref to be updated:</p>\r
+standard input of the hook will be one line per ref to be updated:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>sha1-old SP sha1-new SP refname LF</tt></pre>\r
</div></div>\r
-<p>The refname value is relative to $GIT_DIR; e.g. for the master\r
+<div class="para"><p>The refname value is relative to $GIT_DIR; e.g. for the master\r
head this is "refs/heads/master". The two sha1 values before\r
each refname are the object names for the refname before and after\r
the update. Refs to be created will have sha1-old equal to 0{40},\r
while refs to be deleted will have sha1-new equal to 0{40}, otherwise\r
-sha1-old and sha1-new should be valid objects in the repository.</p>\r
-<p>This hook is called before any refname is updated and before any\r
-fast-forward checks are performed.</p>\r
-<p>If the pre-receive hook exits with a non-zero exit status no updates\r
+sha1-old and sha1-new should be valid objects in the repository.</p></div>\r
+<div class="para"><p>This hook is called before any refname is updated and before any\r
+fast-forward checks are performed.</p></div>\r
+<div class="para"><p>If the pre-receive hook exits with a non-zero exit status no updates\r
will be performed, and the update, post-receive and post-update\r
hooks will not be invoked either. This can be useful to quickly\r
-bail out if the update is not to be supported.</p>\r
+bail out if the update is not to be supported.</p></div>\r
</div>\r
-<h2>update Hook</h2>\r
+<h2 id="_update_hook">update Hook</h2>\r
<div class="sectionbody">\r
-<p>Before each ref is updated, if $GIT_DIR/hooks/update file exists\r
-and is executable, it is invoked once per ref, with three parameters:</p>\r
+<div class="para"><p>Before each ref is updated, if $GIT_DIR/hooks/update file exists\r
+and is executable, it is invoked once per ref, with three parameters:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>$GIT_DIR/hooks/update refname sha1-old sha1-new</tt></pre>\r
</div></div>\r
-<p>The refname parameter is relative to $GIT_DIR; e.g. for the master\r
+<div class="para"><p>The refname parameter is relative to $GIT_DIR; e.g. for the master\r
head this is "refs/heads/master". The two sha1 arguments are\r
the object names for the refname before and after the update.\r
Note that the hook is called before the refname is updated,\r
so either sha1-old is 0{40} (meaning there is no such ref yet),\r
-or it should match what is recorded in refname.</p>\r
-<p>The hook should exit with non-zero status if it wants to disallow\r
-updating the named ref. Otherwise it should exit with zero.</p>\r
-<p>Successful execution (a zero exit status) of this hook does not\r
+or it should match what is recorded in refname.</p></div>\r
+<div class="para"><p>The hook should exit with non-zero status if it wants to disallow\r
+updating the named ref. Otherwise it should exit with zero.</p></div>\r
+<div class="para"><p>Successful execution (a zero exit status) of this hook does not\r
ensure the ref will actually be updated, it is only a prerequisite.\r
As such it is not a good idea to send notices (e.g. email) from\r
-this hook. Consider using the post-receive hook instead.</p>\r
+this hook. Consider using the post-receive hook instead.</p></div>\r
</div>\r
-<h2>post-receive Hook</h2>\r
+<h2 id="_post_receive_hook">post-receive Hook</h2>\r
<div class="sectionbody">\r
-<p>After all refs were updated (or attempted to be updated), if any\r
+<div class="para"><p>After all refs were updated (or attempted to be updated), if any\r
ref update was successful, and if $GIT_DIR/hooks/post-receive\r
file exists and is executable, it will be invoke once with no\r
parameters. The standard input of the hook will be one line\r
-for each successfully updated ref:</p>\r
+for each successfully updated ref:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>sha1-old SP sha1-new SP refname LF</tt></pre>\r
</div></div>\r
-<p>The refname value is relative to $GIT_DIR; e.g. for the master\r
+<div class="para"><p>The refname value is relative to $GIT_DIR; e.g. for the master\r
head this is "refs/heads/master". The two sha1 values before\r
each refname are the object names for the refname before and after\r
the update. Refs that were created will have sha1-old equal to\r
0{40}, while refs that were deleted will have sha1-new equal to\r
0{40}, otherwise sha1-old and sha1-new should be valid objects in\r
-the repository.</p>\r
-<p>Using this hook, it is easy to generate mails describing the updates\r
+the repository.</p></div>\r
+<div class="para"><p>Using this hook, it is easy to generate mails describing the updates\r
to the repository. This example script sends one mail message per\r
-ref listing the commits pushed to the repository:</p>\r
+ref listing the commits pushed to the repository:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>#!/bin/sh\r
done\r
exit 0</tt></pre>\r
</div></div>\r
-<p>The exit code from this hook invocation is ignored, however a\r
-non-zero exit code will generate an error message.</p>\r
-<p>Note that it is possible for refname to not have sha1-new when this\r
+<div class="para"><p>The exit code from this hook invocation is ignored, however a\r
+non-zero exit code will generate an error message.</p></div>\r
+<div class="para"><p>Note that it is possible for refname to not have sha1-new when this\r
hook runs. This can easily occur if another user modifies the ref\r
-after it was updated by <tt>git-receive-pack</tt>, but before the hook was able\r
+after it was updated by <em>git-receive-pack</em>, but before the hook was able\r
to evaluate it. It is recommended that hooks rely on sha1-new\r
-rather than the current value of refname.</p>\r
+rather than the current value of refname.</p></div>\r
</div>\r
-<h2>post-update Hook</h2>\r
+<h2 id="_post_update_hook">post-update Hook</h2>\r
<div class="sectionbody">\r
-<p>After all other processing, if at least one ref was updated, and\r
+<div class="para"><p>After all other processing, if at least one ref was updated, and\r
if $GIT_DIR/hooks/post-update file exists and is executable, then\r
post-update will called with the list of refs that have been updated.\r
-This can be used to implement any repository wide cleanup tasks.</p>\r
-<p>The exit code from this hook invocation is ignored; the only thing\r
-left for <tt>git-receive-pack</tt> to do at that point is to exit itself\r
-anyway.</p>\r
-<p>This hook can be used, for example, to run <tt>git update-server-info</tt>\r
-if the repository is packed and is served via a dumb transport.</p>\r
+This can be used to implement any repository wide cleanup tasks.</p></div>\r
+<div class="para"><p>The exit code from this hook invocation is ignored; the only thing\r
+left for <em>git-receive-pack</em> to do at that point is to exit itself\r
+anyway.</p></div>\r
+<div class="para"><p>This hook can be used, for example, to run <tt>git update-server-info</tt>\r
+if the repository is packed and is served via a dumb transport.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>#!/bin/sh\r
exec git update-server-info</tt></pre>\r
</div></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-send-pack.html">git-send-pack(1)</a></p>\r
+<div class="para"><p><a href="git-send-pack.html">git-send-pack(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:58 UTC\r
+Last updated 2008-07-06 05:16:58 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Invoked by `git-send-pack` and updates the repository with the
+Invoked by 'git-send-pack' and updates the repository with the
information fed from the remote end.
This command is usually not invoked directly by the end user.
-The UI for the protocol is on the `git-send-pack` side, and the
+The UI for the protocol is on the 'git-send-pack' side, and the
program pair is meant to be used to push updates to remote
repository. For pull operations, see linkgit:git-fetch-pack[1].
The command allows for creation and fast forwarding of sha1 refs
(heads/tags) on the remote end (strictly speaking, it is the
-local end `git-receive-pack` runs, but to the user who is sitting at
+local end 'git-receive-pack' runs, but to the user who is sitting at
the send-pack end, it is updating the remote. Confused?)
There are other real-world examples of using update and
post-update hooks found in the Documentation/howto directory.
-`git-receive-pack` honours the receive.denyNonFastForwards config
+'git-receive-pack' honours the receive.denyNonFastForwards config
option, which tells it if updates to a ref should be denied if they
are not fast-forwards.
Note that it is possible for refname to not have sha1-new when this
hook runs. This can easily occur if another user modifies the ref
-after it was updated by `git-receive-pack`, but before the hook was able
+after it was updated by 'git-receive-pack', but before the hook was able
to evaluate it. It is recommended that hooks rely on sha1-new
rather than the current value of refname.
This can be used to implement any repository wide cleanup tasks.
The exit code from this hook invocation is ignored; the only thing
-left for `git-receive-pack` to do at that point is to exit itself
+left for 'git-receive-pack' to do at that point is to exit itself
anyway.
This hook can be used, for example, to run `git update-server-info`
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-reflog(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git reflog</em> <subcommand> <options></p>\r
+<div class="para"><p><em>git reflog</em> <subcommand> <options></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>The command takes various subcommands, and different options\r
-depending on the subcommand:</p>\r
+<div class="para"><p>The command takes various subcommands, and different options\r
+depending on the subcommand:</p></div>\r
<div class="verseblock">\r
-<div class="content">git reflog expire [--dry-run] [--stale-fix] [--verbose]\r
+<div class="content"><em>git reflog expire</em> [--dry-run] [--stale-fix] [--verbose]\r
[--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>…</div></div>\r
-<p>git reflog delete ref@{specifier}…</p>\r
-<p>git reflog [show] [log-options] [<ref>]</p>\r
-<p>Reflog is a mechanism to record when the tip of branches are\r
-updated. This command is to manage the information recorded in it.</p>\r
-<p>The subcommand "expire" is used to prune older reflog entries.\r
+<div class="para"><p>+\r
+<em>git reflog delete</em> ref@{specifier}…</p></div>\r
+<div class="para"><p>+\r
+<em>git reflog</em> [<em>show</em>] [log-options] [<ref>]</p></div>\r
+<div class="para"><p>Reflog is a mechanism to record when the tip of branches are\r
+updated. This command is to manage the information recorded in it.</p></div>\r
+<div class="para"><p>The subcommand "expire" is used to prune older reflog entries.\r
Entries older than <tt>expire</tt> time, or entries older than\r
<tt>expire-unreachable</tt> time and are not reachable from the current\r
tip, are removed from the reflog. This is typically not used\r
-directly by the end users — instead, see <a href="git-gc.html">git-gc(1)</a>.</p>\r
-<p>The subcommand "show" (which is also the default, in the absence of any\r
+directly by the end users — instead, see <a href="git-gc.html">git-gc(1)</a>.</p></div>\r
+<div class="para"><p>The subcommand "show" (which is also the default, in the absence of any\r
subcommands) will take all the normal log options, and show the log of\r
the reference provided in the command-line (or <tt>HEAD</tt>, by default).\r
The reflog will cover all recent actions (HEAD reflog records branch switching\r
-as well). It is an alias for <em>git log -g --abbrev-commit --pretty=oneline</em>;\r
-see <a href="git-log.html">git-log(1)</a>.</p>\r
-<p>The reflog is useful in various git commands, to specify the old value\r
+as well). It is an alias for <tt>git log -g --abbrev-commit --pretty=oneline</tt>;\r
+see <a href="git-log.html">git-log(1)</a>.</p></div>\r
+<div class="para"><p>The reflog is useful in various git commands, to specify the old value\r
of a reference. For example, <tt>HEAD@{2}</tt> means "where HEAD used to be\r
two moves ago", <tt>master@{one.week.ago}</tt> means "where master used to\r
point to one week ago", and so on. See <a href="git-rev-parse.html">git-rev-parse(1)</a> for\r
-more details.</p>\r
-<p>To delete single entries from the reflog, use the subcommand "delete"\r
-and specify the _exact_ entry (e.g. “git reflog delete master@{2}”).</p>\r
+more details.</p></div>\r
+<div class="para"><p>To delete single entries from the reflog, use the subcommand "delete"\r
+and specify the <em>exact</em> entry (e.g. "<tt>git reflog delete master@{2}</tt>").</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--stale-fix\r
</dt>\r
objects reachable from it that is not reachable from any of the\r
refs.\r
</p>\r
-<p>This computation involves traversing all the reachable objects, i.e. it\r
-has the same cost as <em>git prune</em>. Fortunately, once this is run, we\r
+<div class="para"><p>This computation involves traversing all the reachable objects, i.e. it\r
+has the same cost as <em>git-prune</em>. Fortunately, once this is run, we\r
should not have to ever worry about missing objects, because the current\r
prune and pack-objects know about reflogs and protect objects referred by\r
-them.</p>\r
+them.</p></div>\r
</dd>\r
<dt>\r
--expire=<time>\r
Print extra information on screen.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:58 UTC\r
+Last updated 2008-07-06 05:16:58 UTC\r
</div>\r
</div>\r
</body>\r
depending on the subcommand:
[verse]
-git reflog expire [--dry-run] [--stale-fix] [--verbose]
+'git reflog expire' [--dry-run] [--stale-fix] [--verbose]
[--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...
-
-git reflog delete ref@\{specifier\}...
-
-git reflog [show] [log-options] [<ref>]
++
+'git reflog delete' ref@\{specifier\}...
++
+'git reflog' ['show'] [log-options] [<ref>]
Reflog is a mechanism to record when the tip of branches are
updated. This command is to manage the information recorded in it.
subcommands) will take all the normal log options, and show the log of
the reference provided in the command-line (or `HEAD`, by default).
The reflog will cover all recent actions (HEAD reflog records branch switching
-as well). It is an alias for 'git log -g --abbrev-commit --pretty=oneline';
+as well). It is an alias for `git log -g --abbrev-commit --pretty=oneline`;
see linkgit:git-log[1].
The reflog is useful in various git commands, to specify the old value
more details.
To delete single entries from the reflog, use the subcommand "delete"
-and specify the _exact_ entry (e.g. ``git reflog delete master@\{2\}'').
+and specify the _exact_ entry (e.g. "`git reflog delete master@\{2\}`").
OPTIONS
refs.
+
This computation involves traversing all the reachable objects, i.e. it
-has the same cost as 'git prune'. Fortunately, once this is run, we
+has the same cost as 'git-prune'. Fortunately, once this is run, we
should not have to ever worry about missing objects, because the current
prune and pack-objects know about reflogs and protect objects referred by
them.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-remote(1)</title>\r
</head>\r
<div class="sectionbody">\r
<div class="verseblock">\r
<div class="content"><em>git remote</em> [-v | --verbose]\r
-<em>git remote</em> add [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>\r
-<em>git remote</em> rm <name>\r
-<em>git remote</em> show [-n] <name>\r
-<em>git remote</em> prune [-n | --dry-run] <name>\r
-<em>git remote</em> update [group]</div></div>\r
+<em>git remote add</em> [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>\r
+<em>git remote rm</em> <name>\r
+<em>git remote show</em> [-n] <name>\r
+<em>git remote prune</em> [-n | --dry-run] <name>\r
+<em>git remote update</em> [group]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Manage the set of repositories ("remotes") whose branches you track.</p>\r
+<div class="para"><p>Manage the set of repositories ("remotes") whose branches you track.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-v\r
</dt>\r
Be a little more verbose and show remote url after name.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>COMMANDS</h2>\r
+<h2 id="_commands">COMMANDS</h2>\r
<div class="sectionbody">\r
-<p>With no arguments, shows a list of existing remotes. Several\r
-subcommands are available to perform operations on the remotes.</p>\r
-<dl>\r
+<div class="para"><p>With no arguments, shows a list of existing remotes. Several\r
+subcommands are available to perform operations on the remotes.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>add</em>\r
</dt>\r
<url>. The command <tt>git fetch <name></tt> can then be used to create and\r
update remote-tracking branches <name>/<branch>.\r
</p>\r
-<p>With <tt>-f</tt> option, <tt>git fetch <name></tt> is run immediately after\r
-the remote information is set up.</p>\r
-<p>With <tt>-t <branch></tt> option, instead of the default glob\r
+<div class="para"><p>With <tt>-f</tt> option, <tt>git fetch <name></tt> is run immediately after\r
+the remote information is set up.</p></div>\r
+<div class="para"><p>With <tt>-t <branch></tt> option, instead of the default glob\r
refspec for the remote to track all branches under\r
<tt>$GIT_DIR/remotes/<name>/</tt>, a refspec to track only <tt><branch></tt>\r
is created. You can give more than one <tt>-t <branch></tt> to track\r
-multiple branches without grabbing all branches.</p>\r
-<p>With <tt>-m <master></tt> option, <tt>$GIT_DIR/remotes/<name>/HEAD</tt> is set\r
+multiple branches without grabbing all branches.</p></div>\r
+<div class="para"><p>With <tt>-m <master></tt> option, <tt>$GIT_DIR/remotes/<name>/HEAD</tt> is set\r
up to point at remote's <tt><master></tt> branch instead of whatever\r
-branch the <tt>HEAD</tt> at the remote repository actually points at.</p>\r
-<p>In mirror mode, enabled with <tt>--mirror</tt>, the refs will not be stored\r
+branch the <tt>HEAD</tt> at the remote repository actually points at.</p></div>\r
+<div class="para"><p>In mirror mode, enabled with <tt>--mirror</tt>, the refs will not be stored\r
in the <em>refs/remotes/</em> namespace, but in <em>refs/heads/</em>. This option\r
only makes sense in bare repositories. If a remote uses mirror\r
mode, furthermore, <tt>git push</tt> will always behave as if <tt>--mirror</tt>\r
-was passed.</p>\r
+was passed.</p></div>\r
</dd>\r
<dt>\r
<em>rm</em>\r
<p>\r
Gives some information about the remote <name>.\r
</p>\r
-<p>With <tt>-n</tt> option, the remote heads are not queried first with\r
-<tt>git ls-remote <name></tt>; cached information is used instead.</p>\r
+<div class="para"><p>With <tt>-n</tt> option, the remote heads are not queried first with\r
+<tt>git ls-remote <name></tt>; cached information is used instead.</p></div>\r
</dd>\r
<dt>\r
<em>prune</em>\r
referenced by <name>, but are still locally available in\r
"remotes/<name>".\r
</p>\r
-<p>With <tt>--dry-run</tt> option, report what branches will be pruned, but do no\r
-actually prune them.</p>\r
+<div class="para"><p>With <tt>--dry-run</tt> option, report what branches will be pruned, but do no\r
+actually prune them.</p></div>\r
</dd>\r
<dt>\r
<em>update</em>\r
be updated. (See <a href="git-config.html">git-config(1)</a>).\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DISCUSSION</h2>\r
+<h2 id="_discussion">DISCUSSION</h2>\r
<div class="sectionbody">\r
-<p>The remote configuration is achieved using the <tt>remote.origin.url</tt> and\r
+<div class="para"><p>The remote configuration is achieved using the <tt>remote.origin.url</tt> and\r
<tt>remote.origin.fetch</tt> configuration variables. (See\r
-<a href="git-config.html">git-config(1)</a>).</p>\r
+<a href="git-config.html">git-config(1)</a>).</p></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Add a new remote, fetch, and check out a branch from it\r
</li>\r
<li>\r
<p>\r
-Imitate <em>git clone</em> but track only selected branches\r
+Imitate <em>git-clone</em> but track only selected branches\r
</p>\r
<div class="listingblock">\r
<div class="content">\r
$ git merge origin</tt></pre>\r
</div></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-fetch.html">git-fetch(1)</a>\r
+<div class="para"><p><a href="git-fetch.html">git-fetch(1)</a>\r
<a href="git-branch.html">git-branch(1)</a>\r
-<a href="git-config.html">git-config(1)</a></p>\r
+<a href="git-config.html">git-config(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio Hamano</p>\r
+<div class="para"><p>Written by Junio Hamano</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by J. Bruce Fields and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by J. Bruce Fields and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:59 UTC\r
+Last updated 2008-07-06 05:16:59 UTC\r
</div>\r
</div>\r
</body>\r
--------
[verse]
'git remote' [-v | --verbose]
-'git remote' add [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
-'git remote' rm <name>
-'git remote' show [-n] <name>
-'git remote' prune [-n | --dry-run] <name>
-'git remote' update [group]
+'git remote add' [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
+'git remote rm' <name>
+'git remote show' [-n] <name>
+'git remote prune' [-n | --dry-run] <name>
+'git remote update' [group]
DESCRIPTION
-----------
...
------------
-* Imitate 'git clone' but track only selected branches
+* Imitate 'git-clone' but track only selected branches
+
------------
$ mkdir project.git
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-repack(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git repack</em> [-a] [-A] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]</p>\r
+<div class="para"><p><em>git repack</em> [-a] [-A] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This script is used to combine all objects that do not currently\r
+<div class="para"><p>This script is used to combine all objects that do not currently\r
reside in a "pack", into a pack. It can also be used to re-organize\r
-existing packs into a single, more efficient pack.</p>\r
-<p>A pack is a collection of objects, individually compressed, with\r
+existing packs into a single, more efficient pack.</p></div>\r
+<div class="para"><p>A pack is a collection of objects, individually compressed, with\r
delta compression applied, stored in a single file, with an\r
-associated index file.</p>\r
-<p>Packs are used to reduce the load on mirror systems, backup\r
-engines, disk storage, etc.</p>\r
+associated index file.</p></div>\r
+<div class="para"><p>Packs are used to reduce the load on mirror systems, backup\r
+engines, disk storage, etc.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-a\r
</dt>\r
deleted by way of being left in the old pack and then\r
removed. Instead, the loose unreachable objects\r
will be pruned according to normal expiry rules\r
- with the next <tt>git-gc</tt> invocation. See <a href="git-gc.html">git-gc(1)</a>.\r
+ with the next <em>git-gc</em> invocation. See <a href="git-gc.html">git-gc(1)</a>.\r
</p>\r
</dd>\r
<dt>\r
<p>\r
After packing, if the newly created packs make some\r
existing packs redundant, remove the redundant packs.\r
- Also run <tt>git-prune-packed</tt> to remove redundant\r
+ Also run <em>git-prune-packed</em> to remove redundant\r
loose object files.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Pass the <tt>--local</tt> option to <tt>git-pack-objects</tt>. See\r
+ Pass the <tt>--local</tt> option to <em>git-pack-objects</em>. See\r
<a href="git-pack-objects.html">git-pack-objects(1)</a>.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Pass the <tt>--no-reuse-delta</tt> option to <tt>git-pack-objects</tt>. See\r
+ Pass the <tt>--no-reuse-delta</tt> option to <em>git-pack-objects</em>. See\r
<a href="git-pack-objects.html">git-pack-objects(1)</a>.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Pass the <tt>-q</tt> option to <tt>git-pack-objects</tt>. See\r
+ Pass the <tt>-q</tt> option to <em>git-pack-objects</em>. See\r
<a href="git-pack-objects.html">git-pack-objects(1)</a>.\r
</p>\r
</dd>\r
<dd>\r
<p>\r
Do not update the server information with\r
- <tt>git-update-server-info</tt>. This option skips\r
+ <em>git-update-server-info</em>. This option skips\r
updating local catalog files needed to publish\r
this repository (or a direct copy of it)\r
- over HTTP or FTP. See .\r
+ over HTTP or FTP. See <a href="git-update-server-info.html">git-update-server-info(1)</a>.\r
</p>\r
</dd>\r
<dt>\r
The default is unlimited.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Configuration</h2>\r
+<h2 id="_configuration">Configuration</h2>\r
<div class="sectionbody">\r
-<p>When configuration variable <tt>repack.UseDeltaBaseOffset</tt> is set\r
+<div class="para"><p>When configuration variable <tt>repack.UseDeltaBaseOffset</tt> is set\r
for the repository, the command passes <tt>--delta-base-offset</tt>\r
-option to <tt>git-pack-objects</tt>; this typically results in slightly\r
+option to <em>git-pack-objects</em>; this typically results in slightly\r
smaller packs, but the generated packs are incompatible with\r
versions of git older than (and including) v1.4.3; do not set\r
the variable in a repository that older version of git needs to\r
be able to read (this includes repositories from which packs can\r
be copied out over http or rsync, and people who obtained packs\r
-that way can try to use older git with it).</p>\r
+that way can try to use older git with it).</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Ryan Anderson <ryan@michonline.com></p>\r
+<div class="para"><p>Documentation by Ryan Anderson <ryan@michonline.com></p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-pack-objects.html">git-pack-objects(1)</a>\r
-<a href="git-prune-packed.html">git-prune-packed(1)</a></p>\r
+<div class="para"><p><a href="git-pack-objects.html">git-pack-objects(1)</a>\r
+<a href="git-prune-packed.html">git-prune-packed(1)</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:59 UTC\r
+Last updated 2008-07-06 05:16:59 UTC\r
</div>\r
</div>\r
</body>\r
deleted by way of being left in the old pack and then
removed. Instead, the loose unreachable objects
will be pruned according to normal expiry rules
- with the next `git-gc` invocation. See linkgit:git-gc[1].
+ with the next 'git-gc' invocation. See linkgit:git-gc[1].
-d::
After packing, if the newly created packs make some
existing packs redundant, remove the redundant packs.
- Also run `git-prune-packed` to remove redundant
+ Also run 'git-prune-packed' to remove redundant
loose object files.
-l::
- Pass the `--local` option to `git-pack-objects`. See
+ Pass the `--local` option to 'git-pack-objects'. See
linkgit:git-pack-objects[1].
-f::
- Pass the `--no-reuse-delta` option to `git-pack-objects`. See
+ Pass the `--no-reuse-delta` option to 'git-pack-objects'. See
linkgit:git-pack-objects[1].
-q::
- Pass the `-q` option to `git-pack-objects`. See
+ Pass the `-q` option to 'git-pack-objects'. See
linkgit:git-pack-objects[1].
-n::
Do not update the server information with
- `git-update-server-info`. This option skips
+ 'git-update-server-info'. This option skips
updating local catalog files needed to publish
this repository (or a direct copy of it)
- over HTTP or FTP. See gitlink:git-update-server-info[1].
+ over HTTP or FTP. See linkgit:git-update-server-info[1].
--window=[N]::
--depth=[N]::
When configuration variable `repack.UseDeltaBaseOffset` is set
for the repository, the command passes `--delta-base-offset`
-option to `git-pack-objects`; this typically results in slightly
+option to 'git-pack-objects'; this typically results in slightly
smaller packs, but the generated packs are incompatible with
versions of git older than (and including) v1.4.3; do not set
the variable in a repository that older version of git needs to
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-rerere(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git rerere</em> [clear|diff|status|gc]</p>\r
+<div class="para"><p><em>git rerere</em> [<em>clear</em>|<em>diff</em>|<em>status</em>|<em>gc</em>]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>In a workflow that employs relatively long lived topic branches,\r
+<div class="para"><p>In a workflow that employs relatively long lived topic branches,\r
the developer sometimes needs to resolve the same conflict over\r
and over again until the topic branches are done (either merged\r
-to the "release" branch, or sent out and accepted upstream).</p>\r
-<p>This command helps this process by recording conflicted\r
+to the "release" branch, or sent out and accepted upstream).</p></div>\r
+<div class="para"><p>This command helps this process by recording conflicted\r
automerge results and corresponding hand-resolve results on the\r
initial manual merge, and later by noticing the same automerge\r
-results and applying the previously recorded hand resolution.</p>\r
+results and applying the previously recorded hand resolution.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
</tr></table>\r
</div>\r
</div>\r
-<h2>COMMANDS</h2>\r
+<h2 id="_commands">COMMANDS</h2>\r
<div class="sectionbody">\r
-<p>Normally, <tt>git-rerere</tt> is run without arguments or user-intervention.\r
+<div class="para"><p>Normally, <em>git-rerere</em> is run without arguments or user-intervention.\r
However, it has several commands that allow it to interact with\r
-its working state.</p>\r
-<dl>\r
+its working state.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>clear</em>\r
</dt>\r
<dd>\r
<p>\r
This resets the metadata used by rerere if a merge resolution is to be\r
-is aborted. Calling <tt>git-am --skip</tt> or <tt>git-rebase [--skip|--abort]</tt>\r
+is aborted. Calling <em>git-am --skip</em> or <em>git-rebase [--skip|--abort]</em>\r
will automatically invoke this command.\r
</p>\r
</dd>\r
This displays diffs for the current state of the resolution. It is\r
useful for tracking what has changed while the user is resolving\r
conflicts. Additional arguments are passed directly to the system\r
-<tt>diff</tt> command installed in PATH.\r
+<em>diff</em> command installed in PATH.\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
-Like diff, but this only prints the filenames that will be tracked\r
+Like <em>diff</em>, but this only prints the filenames that will be tracked\r
for resolutions.\r
</p>\r
</dd>\r
variables.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DISCUSSION</h2>\r
+<h2 id="_discussion">DISCUSSION</h2>\r
<div class="sectionbody">\r
-<p>When your topic branch modifies overlapping area that your\r
+<div class="para"><p>When your topic branch modifies overlapping area that your\r
master branch (or upstream) touched since your topic branch\r
forked from it, you may want to test it with the latest master,\r
-even before your topic branch is ready to be pushed upstream:</p>\r
+even before your topic branch is ready to be pushed upstream:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> o---*---o topic\r
/\r
o---o---o---*---o---o master</tt></pre>\r
</div></div>\r
-<p>For such a test, you need to merge master and topic somehow.\r
-One way to do it is to pull master into the topic branch:</p>\r
+<div class="para"><p>For such a test, you need to merge master and topic somehow.\r
+One way to do it is to pull master into the topic branch:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git checkout topic\r
/ /\r
o---o---o---*---o---o master</tt></pre>\r
</div></div>\r
-<p>The commits marked with <tt>*</tt> touch the same area in the same\r
+<div class="para"><p>The commits marked with <tt>*</tt> touch the same area in the same\r
file; you need to resolve the conflicts when creating the commit\r
marked with <tt>+</tt>. Then you can test the result to make sure your\r
-work-in-progress still works with what is in the latest master.</p>\r
-<p>After this test merge, there are two ways to continue your work\r
+work-in-progress still works with what is in the latest master.</p></div>\r
+<div class="para"><p>After this test merge, there are two ways to continue your work\r
on the topic. The easiest is to build on top of the test merge\r
-commit <tt>+</tt>, and when your work in the topic branch is finally\r
+commit <tt><tt></tt>, and when your work in the topic branch is finally\r
ready, pull the topic branch into master, and/or ask the\r
upstream to pull from you. By that time, however, the master or\r
-the upstream might have been advanced since the test merge <tt>+</tt>,\r
-in which case the final commit graph would look like this:</p>\r
+the upstream might have been advanced since the test merge <tt></tt></tt>,\r
+in which case the final commit graph would look like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git checkout topic\r
/ / \\r
o---o---o---*---o---o---o---o---+ master</tt></pre>\r
</div></div>\r
-<p>When your topic branch is long-lived, however, your topic branch\r
+<div class="para"><p>When your topic branch is long-lived, however, your topic branch\r
would end up having many such "Merge from master" commits on it,\r
which would unnecessarily clutter the development history.\r
Readers of the Linux kernel mailing list may remember that Linus\r
complained about such too frequent test merges when a subsystem\r
-maintainer asked to pull from a branch full of "useless merges".</p>\r
-<p>As an alternative, to keep the topic branch clean of test\r
+maintainer asked to pull from a branch full of "useless merges".</p></div>\r
+<div class="para"><p>As an alternative, to keep the topic branch clean of test\r
merges, you could blow away the test merge, and keep building on\r
-top of the tip before the test merge:</p>\r
+top of the tip before the test merge:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git checkout topic\r
/ \\r
o---o---o---*---o---o---o---o---+ master</tt></pre>\r
</div></div>\r
-<p>This would leave only one merge commit when your topic branch is\r
+<div class="para"><p>This would leave only one merge commit when your topic branch is\r
finally ready and merged into the master branch. This merge\r
would require you to resolve the conflict, introduced by the\r
commits marked with <tt>*</tt>. However, often this conflict is the\r
same conflict you resolved when you created the test merge you\r
-blew away. <tt>git-rerere</tt> command helps you to resolve this final\r
+blew away. <em>git-rerere</em> command helps you to resolve this final\r
conflicted merge using the information from your earlier hand\r
-resolve.</p>\r
-<p>Running the <tt>git-rerere</tt> command immediately after a conflicted\r
+resolve.</p></div>\r
+<div class="para"><p>Running the <em>git-rerere</em> command immediately after a conflicted\r
automerge records the conflicted working tree files, with the\r
usual conflict markers <tt><<<<<<<</tt>, <tt>=======</tt>, and <tt>>>>>>>></tt> in\r
them. Later, after you are done resolving the conflicts,\r
-running <tt>git-rerere</tt> again records the resolved state of these\r
+running <em>git-rerere</em> again records the resolved state of these\r
files. Suppose you did this when you created the test merge of\r
-master into the topic branch.</p>\r
-<p>Next time, running <tt>git-rerere</tt> after seeing a conflicted\r
+master into the topic branch.</p></div>\r
+<div class="para"><p>Next time, running <em>git-rerere</em> after seeing a conflicted\r
automerge, if the conflict is the same as the earlier one\r
recorded, it is noticed and a three-way merge between the\r
earlier conflicted automerge, the earlier manual resolution, and\r
the current conflicted automerge is performed by the command.\r
If this three-way merge resolves cleanly, the result is written\r
out to your working tree file, so you would not have to manually\r
-resolve it. Note that <tt>git-rerere</tt> leaves the index file alone,\r
+resolve it. Note that <em>git-rerere</em> leaves the index file alone,\r
so you still need to do the final sanity checks with <tt>git diff</tt>\r
-(or <tt>git diff -c</tt>) and <tt>git add</tt> when you are satisfied.</p>\r
-<p>As a convenience measure, <tt>git-merge</tt> automatically invokes\r
-<tt>git-rerere</tt> when it exits with a failed automerge, which\r
+(or <tt>git diff -c</tt>) and <em>git-add</em> when you are satisfied.</p></div>\r
+<div class="para"><p>As a convenience measure, <em>git-merge</em> automatically invokes\r
+<em>git-rerere</em> when it exits with a failed automerge, which\r
records it if it is a new conflict, or reuses the earlier hand\r
-resolve when it is not. <tt>git-commit</tt> also invokes <tt>git-rerere</tt>\r
+resolve when it is not. <em>git-commit</em> also invokes <em>git-rerere</em>\r
when recording a merge result. What this means is that you do\r
not have to do anything special yourself (Note: you still have\r
-to set the config variable rerere.enabled to enable this command).</p>\r
-<p>In our example, when you did the test merge, the manual\r
+to set the config variable rerere.enabled to enable this command).</p></div>\r
+<div class="para"><p>In our example, when you did the test merge, the manual\r
resolution is recorded, and it will be reused when you do the\r
actual merge later with updated master and topic branch, as long\r
-as the earlier resolution is still applicable.</p>\r
-<p>The information <tt>git-rerere</tt> records is also used when running\r
-<tt>git-rebase</tt>. After blowing away the test merge and continuing\r
-development on the topic branch:</p>\r
+as the earlier resolution is still applicable.</p></div>\r
+<div class="para"><p>The information <em>git-rerere</em> records is also used when running\r
+<em>git-rebase</em>. After blowing away the test merge and continuing\r
+development on the topic branch:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> o---*---o-------o---o topic\r
/\r
o---o---o---*---o---o---o---o master</tt></pre>\r
</div></div>\r
-<p>you could run <tt>git rebase master topic</tt>, to keep yourself\r
+<div class="para"><p>you could run <tt>git rebase master topic</tt>, to keep yourself\r
up-to-date even before your topic is ready to be sent upstream.\r
This would result in falling back to three-way merge, and it\r
would conflict the same way the test merge you resolved earlier.\r
-<tt>git-rerere</tt> is run by <tt>git-rebase</tt> to help you resolve this\r
-conflict.</p>\r
+<em>git-rerere</em> is run by <em>git-rebase</em> to help you resolve this\r
+conflict.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:59 UTC\r
+Last updated 2008-07-06 05:16:59 UTC\r
</div>\r
</div>\r
</body>\r
SYNOPSIS
--------
-'git rerere' [clear|diff|status|gc]
+'git rerere' ['clear'|'diff'|'status'|'gc']
DESCRIPTION
-----------
COMMANDS
--------
-Normally, `git-rerere` is run without arguments or user-intervention.
+Normally, 'git-rerere' is run without arguments or user-intervention.
However, it has several commands that allow it to interact with
its working state.
'clear'::
This resets the metadata used by rerere if a merge resolution is to be
-is aborted. Calling `git-am --skip` or `git-rebase [--skip|--abort]`
+is aborted. Calling 'git-am --skip' or 'git-rebase [--skip|--abort]'
will automatically invoke this command.
'diff'::
This displays diffs for the current state of the resolution. It is
useful for tracking what has changed while the user is resolving
conflicts. Additional arguments are passed directly to the system
-`diff` command installed in PATH.
+'diff' command installed in PATH.
'status'::
-Like diff, but this only prints the filenames that will be tracked
+Like 'diff', but this only prints the filenames that will be tracked
for resolutions.
'gc'::
would require you to resolve the conflict, introduced by the
commits marked with `*`. However, often this conflict is the
same conflict you resolved when you created the test merge you
-blew away. `git-rerere` command helps you to resolve this final
+blew away. 'git-rerere' command helps you to resolve this final
conflicted merge using the information from your earlier hand
resolve.
-Running the `git-rerere` command immediately after a conflicted
+Running the 'git-rerere' command immediately after a conflicted
automerge records the conflicted working tree files, with the
usual conflict markers `<<<<<<<`, `=======`, and `>>>>>>>` in
them. Later, after you are done resolving the conflicts,
-running `git-rerere` again records the resolved state of these
+running 'git-rerere' again records the resolved state of these
files. Suppose you did this when you created the test merge of
master into the topic branch.
-Next time, running `git-rerere` after seeing a conflicted
+Next time, running 'git-rerere' after seeing a conflicted
automerge, if the conflict is the same as the earlier one
recorded, it is noticed and a three-way merge between the
earlier conflicted automerge, the earlier manual resolution, and
the current conflicted automerge is performed by the command.
If this three-way merge resolves cleanly, the result is written
out to your working tree file, so you would not have to manually
-resolve it. Note that `git-rerere` leaves the index file alone,
+resolve it. Note that 'git-rerere' leaves the index file alone,
so you still need to do the final sanity checks with `git diff`
-(or `git diff -c`) and `git add` when you are satisfied.
+(or `git diff -c`) and 'git-add' when you are satisfied.
-As a convenience measure, `git-merge` automatically invokes
-`git-rerere` when it exits with a failed automerge, which
+As a convenience measure, 'git-merge' automatically invokes
+'git-rerere' when it exits with a failed automerge, which
records it if it is a new conflict, or reuses the earlier hand
-resolve when it is not. `git-commit` also invokes `git-rerere`
+resolve when it is not. 'git-commit' also invokes 'git-rerere'
when recording a merge result. What this means is that you do
not have to do anything special yourself (Note: you still have
to set the config variable rerere.enabled to enable this command).
actual merge later with updated master and topic branch, as long
as the earlier resolution is still applicable.
-The information `git-rerere` records is also used when running
-`git-rebase`. After blowing away the test merge and continuing
+The information 'git-rerere' records is also used when running
+'git-rebase'. After blowing away the test merge and continuing
development on the topic branch:
------------
up-to-date even before your topic is ready to be sent upstream.
This would result in falling back to three-way merge, and it
would conflict the same way the test merge you resolved earlier.
-`git-rerere` is run by `git-rebase` to help you resolve this
+'git-rerere' is run by 'git-rebase' to help you resolve this
conflict.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-reset(1)</title>\r
</head>\r
<div class="content"><em>git reset</em> [--mixed | --soft | --hard] [-q] [<commit>]\r
<em>git reset</em> [-q] [<commit>] [--] <paths>…</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Sets the current head to the specified commit and optionally resets the\r
-index and working tree to match.</p>\r
-<p>This command is useful if you notice some small error in a recent\r
+<div class="para"><p>Sets the current head to the specified commit and optionally resets the\r
+index and working tree to match.</p></div>\r
+<div class="para"><p>This command is useful if you notice some small error in a recent\r
commit (or set of commits) and want to redo that part without showing\r
-the undo in the history.</p>\r
-<p>If you want to undo a commit other than the latest on a branch,\r
-<a href="git-revert.html">git-revert(1)</a> is your friend.</p>\r
-<p>The second form with <em>paths</em> is used to revert selected paths in\r
-the index from a given commit, without moving HEAD.</p>\r
+the undo in the history.</p></div>\r
+<div class="para"><p>If you want to undo a commit other than the latest on a branch,\r
+<a href="git-revert.html">git-revert(1)</a> is your friend.</p></div>\r
+<div class="para"><p>The second form with <em>paths</em> is used to revert selected paths in\r
+the index from a given commit, without moving HEAD.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--mixed\r
</dt>\r
<p>\r
Does not touch the index file nor the working tree at all, but\r
requires them to be in a good order. This leaves all your changed\r
- files "Changes to be committed", as <tt>git-status</tt> would\r
+ files "Changes to be committed", as <em>git-status</em> would\r
put it.\r
</p>\r
</dd>\r
Commit to make the current HEAD. If not given defaults to HEAD.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
Undo a commit and redo\r
</dt>\r
$ edit <b>(2)</b>\r
$ git commit -a -c ORIG_HEAD <b>(3)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
This is most often done when you remembered what you\r
commit by starting with its log message. If you do not need to\r
edit the message further, you can give -C option instead.\r
</p>\r
-<p>See also the --amend option to <a href="git-commit.html">git-commit(1)</a>.</p>\r
+<div class="para"><p>See also the --amend option to <a href="git-commit.html">git-commit(1)</a>.</p></div>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
Undo commits permanently\r
<pre><tt>$ git commit ...\r
$ git reset --hard HEAD~3 <b>(1)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
The last three commits (HEAD, HEAD^, and HEAD~2) were bad\r
you have already given these commits to somebody else.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
Undo a commit, making it a topic branch\r
$ git reset --hard HEAD~3 <b>(2)</b>\r
$ git checkout topic/wip <b>(3)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
You have made some commits, but realize they were premature\r
Switch to "topic/wip" branch and keep working.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
Undo add\r
$ git reset <b>(3)</b>\r
$ git pull git://info.example.com/ nitfol <b>(4)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
You are happily working on something, and find the changes\r
changes still in the working tree.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
Undo a merge or pull\r
Fast forward\r
$ git reset --hard ORIG_HEAD <b>(4)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
Try to update from the upstream resulted in a lot of\r
and resets the tip of the branch to that commit.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
Interrupted workflow\r
</dt>\r
<dd>\r
-<p>Suppose you are interrupted by an urgent fix request while you\r
+<div class="para"><p>Suppose you are interrupted by an urgent fix request while you\r
are in the middle of a large change. The files in your\r
working tree are not in any shape to be committed yet, but you\r
-need to get to the other branch for a quick bugfix.</p>\r
+need to get to the other branch for a quick bugfix.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout feature ;# you were working in "feature" branch and\r
$ git reset --soft HEAD^ ;# go back to WIP state <b>(2)</b>\r
$ git reset <b>(3)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
This commit will get blown away so a throw-away log message is OK.\r
WIP files as uncommitted.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
Reset a single file in the index\r
</dt>\r
<dd>\r
-<p>Suppose you have added a file to your index, but later decide you do not\r
+<div class="para"><p>Suppose you have added a file to your index, but later decide you do not\r
want to add it to your commit. You can remove the file from the index\r
-while keeping your changes with git reset.</p>\r
+while keeping your changes with git reset.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git reset -- frotz.c <b>(1)</b>\r
$ git commit -m "Commit files in index" <b>(2)</b>\r
$ git add frotz.c <b>(3)</b></tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
This removes the file from the index while keeping it in the working\r
Adds the file to the index again.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net> and Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net> and Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:01:59 UTC\r
+Last updated 2008-07-06 05:16:59 UTC\r
</div>\r
</div>\r
</body>\r
--soft::
Does not touch the index file nor the working tree at all, but
requires them to be in a good order. This leaves all your changed
- files "Changes to be committed", as `git-status` would
+ files "Changes to be committed", as 'git-status' would
put it.
--hard::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-rev-list(1)</title>\r
</head>\r
[ --no-walk ] [ --do-walk ]\r
<commit>… [ -- <paths>… ]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Lists commit objects in reverse chronological order starting at the\r
+<div class="para"><p>Lists commit objects in reverse chronological order starting at the\r
given commit(s), taking ancestry relationship into account. This is\r
-useful to produce human-readable log output.</p>\r
-<p>Commits which are stated with a preceding <em>^</em> cause listing to\r
+useful to produce human-readable log output.</p></div>\r
+<div class="para"><p>Commits which are stated with a preceding <em>^</em> cause listing to\r
stop at that point. Their parents are implied. Thus the following\r
-command:</p>\r
+command:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git rev-list foo bar ^baz</tt></pre>\r
</div></div>\r
-<p>means "list all the commits which are included in <em>foo</em> and <em>bar</em>, but\r
-not in <em>baz</em>".</p>\r
-<p>A special notation "<em><commit1></em>..<em><commit2></em>" can be used as a\r
+<div class="para"><p>means "list all the commits which are included in <em>foo</em> and <em>bar</em>, but\r
+not in <em>baz</em>".</p></div>\r
+<div class="para"><p>A special notation "<em><commit1></em>..<em><commit2></em>" can be used as a\r
short-hand for "^<em><commit1></em> <em><commit2></em>". For example, either of\r
-the following may be used interchangeably:</p>\r
+the following may be used interchangeably:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git rev-list origin..HEAD\r
$ git rev-list HEAD ^origin</tt></pre>\r
</div></div>\r
-<p>Another special notation is "<em><commit1></em>…<em><commit2></em>" which is useful\r
+<div class="para"><p>Another special notation is "<em><commit1></em>…<em><commit2></em>" which is useful\r
for merges. The resulting set of commits is the symmetric difference\r
-between the two operands. The following two commands are equivalent:</p>\r
+between the two operands. The following two commands are equivalent:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git rev-list A B --not $(git merge-base --all A B)\r
$ git rev-list A...B</tt></pre>\r
</div></div>\r
-<p><tt>git-rev-list</tt> is a very essential git program, since it\r
+<div class="para"><p><em>git-rev-list</em> is a very essential git program, since it\r
provides the ability to build and traverse commit ancestry graphs. For\r
this reason, it has a lot of different options that enables it to be\r
-used by commands as different as <tt>git-bisect</tt> and\r
-<tt>git-repack</tt>.</p>\r
+used by commands as different as <em>git-bisect</em> and\r
+<em>git-repack</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<h3>Commit Formatting</h3>\r
-<p>Using these options, <a href="git-rev-list.html">git-rev-list(1)</a> will act similar to the\r
+<h3 id="_commit_formatting">Commit Formatting</h3><div style="clear:left"></div>\r
+<div class="para"><p>Using these options, <a href="git-rev-list.html">git-rev-list(1)</a> will act similar to the\r
more specialized family of commit log tools: <a href="git-log.html">git-log(1)</a>,\r
-<a href="git-show.html">git-show(1)</a>, and <a href="git-whatchanged.html">git-whatchanged(1)</a></p>\r
-<dl>\r
+<a href="git-show.html">git-show(1)</a>, and <a href="git-whatchanged.html">git-whatchanged(1)</a></p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--pretty[=<em><format></em>]\r
</dt>\r
<em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
When omitted, the format defaults to <em>medium</em>.\r
</p>\r
-<p>Note: you can specify the default pretty format in the repository\r
-configuration (see <a href="git-config.html">git-config(1)</a>).</p>\r
+<div class="para"><p>Note: you can specify the default pretty format in the repository\r
+configuration (see <a href="git-config.html">git-config(1)</a>).</p></div>\r
</dd>\r
<dt>\r
--abbrev-commit\r
digits can be specified with "--abbrev=<n>" (which also modifies\r
diff output, if it is displayed).\r
</p>\r
-<p>This should make "--pretty=oneline" a whole lot more readable for\r
-people using 80-column terminals.</p>\r
+<div class="para"><p>This should make "--pretty=oneline" a whole lot more readable for\r
+people using 80-column terminals.</p></div>\r
</dd>\r
<dt>\r
--encoding[=<encoding>]\r
as when using "--pretty". <tt>log.date</tt> config variable sets a default\r
value for log command's --date option.\r
</p>\r
-<p><tt>--date=relative</tt> shows dates relative to the current time,\r
-e.g. "2 hours ago".</p>\r
-<p><tt>--date=local</tt> shows timestamps in user's local timezone.</p>\r
-<p><tt>--date=iso</tt> (or <tt>--date=iso8601</tt>) shows timestamps in ISO 8601 format.</p>\r
-<p><tt>--date=rfc</tt> (or <tt>--date=rfc2822</tt>) shows timestamps in RFC 2822\r
-format, often found in E-mail messages.</p>\r
-<p><tt>--date=short</tt> shows only date but not time, in <tt>YYYY-MM-DD</tt> format.</p>\r
-<p><tt>--date=default</tt> shows timestamps in the original timezone\r
-(either committer's or author's).</p>\r
+<div class="para"><p><tt>--date=relative</tt> shows dates relative to the current time,\r
+e.g. "2 hours ago".</p></div>\r
+<div class="para"><p><tt>--date=local</tt> shows timestamps in user's local timezone.</p></div>\r
+<div class="para"><p><tt>--date=iso</tt> (or <tt>--date=iso8601</tt>) shows timestamps in ISO 8601 format.</p></div>\r
+<div class="para"><p><tt>--date=rfc</tt> (or <tt>--date=rfc2822</tt>) shows timestamps in RFC 2822\r
+format, often found in E-mail messages.</p></div>\r
+<div class="para"><p><tt>--date=short</tt> shows only date but not time, in <tt>YYYY-MM-DD</tt> format.</p></div>\r
+<div class="para"><p><tt>--date=default</tt> shows timestamps in the original timezone\r
+(either committer's or author's).</p></div>\r
</dd>\r
<dt>\r
--header\r
the right with <tt>></tt>. If combined with <tt>--boundary</tt>, those\r
commits are prefixed with <tt>-</tt>.\r
</p>\r
-<p>For example, if you have this topology:</p>\r
+<div class="para"><p>For example, if you have this topology:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> y---b---b branch B\r
/ / \\r
o---x---a---a branch A</tt></pre>\r
</div></div>\r
-<p>you would get an output line this:</p>\r
+<div class="para"><p>you would get an output line this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git rev-list --left-right --boundary --pretty=oneline A...B\r
to be printed in between commits, in order for the graph history\r
to be drawn properly.\r
</p>\r
-<p>This implies the <em>--topo-order</em> option by default, but the\r
-<em>--date-order</em> option may also be specified.</p>\r
+<div class="para"><p>This implies the <em>--topo-order</em> option by default, but the\r
+<em>--date-order</em> option may also be specified.</p></div>\r
</dd>\r
-</dl>\r
-<h3>Diff Formatting</h3>\r
-<p>Below are listed options that control the formatting of diff output.\r
+</dl></div>\r
+<h3 id="_diff_formatting">Diff Formatting</h3><div style="clear:left"></div>\r
+<div class="para"><p>Below are listed options that control the formatting of diff output.\r
Some of them are specific to <a href="git-rev-list.html">git-rev-list(1)</a>, however other diff\r
-options may be given. See <a href="git-diff-files.html">git-diff-files(1)</a> for more options.</p>\r
-<dl>\r
+options may be given. See <a href="git-diff-files.html">git-diff-files(1)</a> for more options.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-c\r
</dt>\r
Show the tree objects in the diff output. This implies <em>-r</em>.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Commit Limiting</h3>\r
-<p>Besides specifying a range of commits that should be listed using the\r
+</dl></div>\r
+<h3 id="_commit_limiting">Commit Limiting</h3><div style="clear:left"></div>\r
+<div class="para"><p>Besides specifying a range of commits that should be listed using the\r
special notations explained in the description, additional commit\r
-limiting may be applied.</p>\r
-<dl>\r
+limiting may be applied.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-n <em>number</em>\r
</dt>\r
instead. Under <em>--pretty=oneline</em>, the commit message is\r
prefixed with this information on the same line.\r
</p>\r
-<p>Cannot be combined with <em>--reverse</em>.\r
-See also <a href="git-reflog.html">git-reflog(1)</a>.</p>\r
+<div class="para"><p>Cannot be combined with <em>--reverse</em>.\r
+See also <a href="git-reflog.html">git-reflog(1)</a>.</p></div>\r
</dd>\r
<dt>\r
--merge\r
only output commits that changes at least one of them, and also ignore\r
merges that do not touch the given paths.\r
</p>\r
-<p>Use the <em>--sparse</em> flag to makes the command output all eligible commits\r
+<div class="para"><p>Use the <em>--sparse</em> flag to makes the command output all eligible commits\r
(still subject to count and age limitation), but apply merge\r
-simplification nevertheless.</p>\r
+simplification nevertheless.</p></div>\r
</dd>\r
<dt>\r
--bisect\r
<div class="content">\r
<pre><tt> $ git-rev-list --bisect foo ^bar ^baz</tt></pre>\r
</div></div>\r
-<p>outputs <em>midpoint</em>, the output of the two commands</p>\r
+<div class="para"><p>outputs <em>midpoint</em>, the output of the two commands</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git-rev-list foo ^midpoint\r
$ git-rev-list midpoint ^bar ^baz</tt></pre>\r
</div></div>\r
-<p>would be of roughly the same length. Finding the change which\r
+<div class="para"><p>would be of roughly the same length. Finding the change which\r
introduces a regression is thus reduced to a binary search: repeatedly\r
generate and test new 'midpoint's until the commit chain is of length\r
-one.</p>\r
+one.</p></div>\r
</dd>\r
<dt>\r
--bisect-vars\r
commits. The farthest from them is displayed first. (This is the only\r
one displayed by <tt>--bisect</tt>.)\r
</p>\r
-<p>This is useful because it makes it easy to choose a good commit to\r
+<div class="para"><p>This is useful because it makes it easy to choose a good commit to\r
test when you want to avoid to test some of them for some reason (they\r
-may not compile for example).</p>\r
-<p>This option can be used along with <tt>--bisect-vars</tt>, in this case,\r
+may not compile for example).</p></div>\r
+<div class="para"><p>This option can be used along with <tt>--bisect-vars</tt>, in this case,\r
after all the sorted commit objects, there will be the same text as if\r
-<tt>--bisect-vars</tt> had been used alone.</p>\r
+<tt>--bisect-vars</tt> had been used alone.</p></div>\r
</dd>\r
-</dl>\r
-<h3>Commit Ordering</h3>\r
-<p>By default, the commits are shown in reverse chronological order.</p>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_commit_ordering">Commit Ordering</h3><div style="clear:left"></div>\r
+<div class="para"><p>By default, the commits are shown in reverse chronological order.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--topo-order\r
</dt>\r
Cannot be combined with <em>--walk-reflogs</em>.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Object Traversal</h3>\r
-<p>These options are mostly targeted for packing of git repositories.</p>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_object_traversal">Object Traversal</h3><div style="clear:left"></div>\r
+<div class="para"><p>These options are mostly targeted for packing of git repositories.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--objects\r
</dt>\r
Overrides a previous --no-walk.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>PRETTY FORMATS</h2>\r
+<h2 id="_pretty_formats">PRETTY FORMATS</h2>\r
<div class="sectionbody">\r
-<p>If the commit is a merge, and if the pretty-format\r
+<div class="para"><p>If the commit is a merge, and if the pretty-format\r
is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
inserted before the <em>Author:</em> line. This line begins with\r
"Merge: " and the sha1s of ancestral commits are printed,\r
necessarily be the list of the <strong>direct</strong> parent commits if you\r
have limited your view of history: for example, if you are\r
only interested in changes related to a certain directory or\r
-file.</p>\r
-<p>Here are some additional details for each format:</p>\r
-<ul>\r
+file.</p></div>\r
+<div class="para"><p>Here are some additional details for each format:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>oneline</em>\r
<div class="content">\r
<pre><tt><sha1> <title line></tt></pre>\r
</div></div>\r
-<p>This is designed to be as compact as possible.</p>\r
+<div class="para"><p>This is designed to be as compact as possible.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-Date: <date></tt></pre>\r
+Date: <author date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-AuthorDate: <date & time>\r
+AuthorDate: <author date>\r
Commit: <committer>\r
-CommitDate: <date & time></tt></pre>\r
+CommitDate: <committer date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>From <sha1> <date>\r
From: <author>\r
-Date: <date & time>\r
+Date: <author date>\r
Subject: [PATCH] <title line></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<p>\r
<em>raw</em>\r
</p>\r
-<p>The <em>raw</em> format shows the entire commit exactly as\r
+<div class="para"><p>The <em>raw</em> format shows the entire commit exactly as\r
stored in the commit object. Notably, the SHA1s are\r
displayed in full, regardless of whether --abbrev or\r
--no-abbrev are used, and <em>parents</em> information show the\r
true parent commits, without taking grafts nor history\r
-simplification into account.</p>\r
+simplification into account.</p></div>\r
</li>\r
<li>\r
<p>\r
<em>format:</em>\r
</p>\r
-<p>The <em>format:</em> format allows you to specify which information\r
+<div class="para"><p>The <em>format:</em> format allows you to specify which information\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
-instead of <em>\n</em>.</p>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
-would show something like this:</p>\r
+instead of <em>\n</em>.</p></div>\r
+<div class="para"><p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
+would show something like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
</tt></pre>\r
</div></div>\r
-<p>The placeholders are:</p>\r
-<ul>\r
+<div class="para"><p>The placeholders are:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>%H</em>: commit hash\r
<em>%x00</em>: print a byte from a hex code\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</li>\r
<li>\r
<p>\r
<em>tformat:</em>\r
</p>\r
-<p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
+<div class="para"><p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
provides "terminator" semantics instead of "separator" semantics. In\r
other words, each commit has the message terminator character (usually a\r
newline) appended, rather than a separator placed between entries.\r
This means that the final entry of a single-line format will be properly\r
terminated with a new line, just as the "oneline" format does.\r
-For example:</p>\r
+For example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -2 --pretty=format:%h 4da45bef \\r
7134973</tt></pre>\r
</div></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano, Jonas Fonseca\r
-and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano, Jonas Fonseca\r
+and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:00 UTC\r
+Last updated 2008-07-06 05:17:00 UTC\r
</div>\r
</div>\r
</body>\r
$ git rev-list A...B
-----------------------------------------------------------------------
-`git-rev-list` is a very essential git program, since it
+'git-rev-list' is a very essential git program, since it
provides the ability to build and traverse commit ancestry graphs. For
this reason, it has a lot of different options that enables it to be
-used by commands as different as `git-bisect` and
-`git-repack`.
+used by commands as different as 'git-bisect' and
+'git-repack'.
OPTIONS
-------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-rev-parse(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git rev-parse</em> [ --option ] <args>…</p>\r
+<div class="para"><p><em>git rev-parse</em> [ --option ] <args>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Many git porcelainish commands take mixture of flags\r
+<div class="para"><p>Many git porcelainish commands take mixture of flags\r
(i.e. parameters that begin with a dash <em>-</em>) and parameters\r
-meant for the underlying <tt>git-rev-list</tt> command they use internally\r
+meant for the underlying <em>git-rev-list</em> command they use internally\r
and flags and parameters for the other commands they use\r
-downstream of <tt>git-rev-list</tt>. This command is used to\r
-distinguish between them.</p>\r
+downstream of <em>git-rev-list</em>. This command is used to\r
+distinguish between them.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--parseopt\r
</dt>\r
<dd>\r
<p>\r
- Use <tt>git-rev-parse</tt> in option parsing mode (see PARSEOPT section below).\r
+ Use <em>git-rev-parse</em> in option parsing mode (see PARSEOPT section below).\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
Do not output flags and parameters not meant for\r
- <tt>git-rev-list</tt> command.\r
+ <em>git-rev-list</em> command.\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
Do not output flags and parameters meant for\r
- <tt>git-rev-list</tt> command.\r
+ <em>git-rev-list</em> command.\r
</p>\r
</dd>\r
<dt>\r
properly quoted for consumption by shell. Useful when\r
you expect your parameter to contain whitespaces and\r
newlines (e.g. when using pickaxe <tt>-S</tt> with\r
- <tt>git-diff-*</tt>).\r
+ <em>git-diff-*</em>).\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
Parse the date string, and output the corresponding\r
- --max-age= parameter for <tt>git-rev-list</tt>.\r
+ --max-age= parameter for <em>git-rev-list</em>.\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
Parse the date string, and output the corresponding\r
- --min-age= parameter for <tt>git-rev-list</tt>.\r
+ --min-age= parameter for <em>git-rev-list</em>.\r
</p>\r
</dd>\r
<dt>\r
Flags and parameters to be parsed.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SPECIFYING REVISIONS</h2>\r
+<h2 id="_specifying_revisions">SPECIFYING REVISIONS</h2>\r
<div class="sectionbody">\r
-<p>A revision parameter typically, but not necessarily, names a\r
+<div class="para"><p>A revision parameter typically, but not necessarily, names a\r
commit object. They use what is called an <em>extended SHA1</em>\r
syntax. Here are various ways to spell object names. The\r
ones listed near the end of this list are to name trees and\r
-blobs contained in a commit.</p>\r
-<ul>\r
+blobs contained in a commit.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
The full SHA1 object name (40-byte hexadecimal string), or\r
</li>\r
<li>\r
<p>\r
-An output from <tt>git-describe</tt>; i.e. a closest tag, followed by a\r
+An output from <em>git-describe</em>; i.e. a closest tag, followed by a\r
dash, a <tt>g</tt>, and an abbreviated object name.\r
</p>\r
</li>\r
When ambiguous, a <tt><name></tt> is disambiguated by taking the\r
first match in the following rules:\r
</p>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
if <tt>$GIT_DIR/<name></tt> exists, that is what you mean (this is usually\r
otherwise, <tt>$GIT_DIR/refs/remotes/<name>/HEAD</tt> if exists.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</li>\r
<li>\r
<p>\r
the branch being merged.\r
</p>\r
</li>\r
-</ul>\r
-<p>Here is an illustration, by Jon Loeliger. Both commit nodes B\r
+</ul></div>\r
+<div class="para"><p>Here is an illustration, by Jon Loeliger. Both commit nodes B\r
and C are parents of commit node A. Parent commits are ordered\r
-left-to-right.</p>\r
+left-to-right.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>G H I J\r
J = F^2 = B^3^2 = A^^3^2</tt></pre>\r
</div></div>\r
</div>\r
-<h2>SPECIFYING RANGES</h2>\r
+<h2 id="_specifying_ranges">SPECIFYING RANGES</h2>\r
<div class="sectionbody">\r
-<p>History traversing commands such as <tt>git-log</tt> operate on a set\r
+<div class="para"><p>History traversing commands such as <em>git-log</em> operate on a set\r
of commits, not just a single commit. To these commands,\r
specifying a single revision with the notation described in the\r
previous section means the set of commits reachable from that\r
-commit, following the commit ancestry chain.</p>\r
-<p>To exclude commits reachable from a commit, a prefix <tt>^</tt>\r
+commit, following the commit ancestry chain.</p></div>\r
+<div class="para"><p>To exclude commits reachable from a commit, a prefix <tt>^</tt>\r
notation is used. E.g. "<tt>^r1 r2</tt>" means commits reachable\r
-from <tt>r2</tt> but exclude the ones reachable from <tt>r1</tt>.</p>\r
-<p>This set operation appears so often that there is a shorthand\r
+from <tt>r2</tt> but exclude the ones reachable from <tt>r1</tt>.</p></div>\r
+<div class="para"><p>This set operation appears so often that there is a shorthand\r
for it. "<tt>r1..r2</tt>" is equivalent to "<tt>^r1 r2</tt>". It is\r
the difference of two sets (subtract the set of commits\r
reachable from <tt>r1</tt> from the set of commits reachable from\r
-<tt>r2</tt>).</p>\r
-<p>A similar notation "<tt>r1...r2</tt>" is called symmetric difference\r
+<tt>r2</tt>).</p></div>\r
+<div class="para"><p>A similar notation "<tt>r1...r2</tt>" is called symmetric difference\r
of <tt>r1</tt> and <tt>r2</tt> and is defined as\r
"<tt>r1 r2 --not $(git merge-base --all r1 r2)</tt>".\r
It is the set of commits that are reachable from either one of\r
-<tt>r1</tt> or <tt>r2</tt> but not from both.</p>\r
-<p>Two other shorthands for naming a set that is formed by a commit\r
+<tt>r1</tt> or <tt>r2</tt> but not from both.</p></div>\r
+<div class="para"><p>Two other shorthands for naming a set that is formed by a commit\r
and its parent commits exists. <tt>r1^@</tt> notation means all\r
parents of <tt>r1</tt>. <tt>r1^!</tt> includes commit <tt>r1</tt> but excludes\r
-its all parents.</p>\r
-<p>Here are a handful of examples:</p>\r
+its all parents.</p></div>\r
+<div class="para"><p>Here are a handful of examples:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>D G H D\r
F^! D G H D F</tt></pre>\r
</div></div>\r
</div>\r
-<h2>PARSEOPT</h2>\r
+<h2 id="_parseopt">PARSEOPT</h2>\r
<div class="sectionbody">\r
-<p>In <tt>--parseopt</tt> mode, <tt>git-rev-parse</tt> helps massaging options to bring to shell\r
+<div class="para"><p>In <tt>--parseopt</tt> mode, <em>git-rev-parse</em> helps massaging options to bring to shell\r
scripts the same facilities C builtins have. It works as an option normalizer\r
-(e.g. splits single switches aggregate values), a bit like <tt>getopt(1)</tt> does.</p>\r
-<p>It takes on the standard input the specification of the options to parse and\r
+(e.g. splits single switches aggregate values), a bit like <tt>getopt(1)</tt> does.</p></div>\r
+<div class="para"><p>It takes on the standard input the specification of the options to parse and\r
understand, and echoes on the standard output a line suitable for <tt>sh(1)</tt> <tt>eval</tt>\r
to replace the arguments with normalized ones. In case of error, it outputs\r
-usage on the standard error stream, and exits with code 129.</p>\r
-<h3>Input Format</h3>\r
-<p><tt>git-rev-parse --parseopt</tt> input format is fully text based. It has two parts,\r
+usage on the standard error stream, and exits with code 129.</p></div>\r
+<h3 id="_input_format">Input Format</h3><div style="clear:left"></div>\r
+<div class="para"><p><em>git-rev-parse --parseopt</em> input format is fully text based. It has two parts,\r
separated by a line that contains only <tt>--</tt>. The lines before the separator\r
(should be more than one) are used for the usage.\r
-The lines after the separator describe the options.</p>\r
-<p>Each line of options has this format:</p>\r
+The lines after the separator describe the options.</p></div>\r
+<div class="para"><p>Each line of options has this format:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt><opt_spec><flags>* SP+ help LF</tt></pre>\r
</div></div>\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<tt><opt_spec></tt>\r
</dt>\r
<p>\r
<tt><flags></tt> are of <tt>*</tt>, <tt>=</tt>, <tt>?</tt> or <tt>!</tt>.\r
</p>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Use <tt>=</tt> if the option takes an argument.\r
Use <tt>!</tt> to not make the corresponding negated long option available.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</dd>\r
-</dl>\r
-<p>The remainder of the line, after stripping the spaces, is used\r
-as the help associated to the option.</p>\r
-<p>Blank lines are ignored, and lines that don't match this specification are used\r
+</dl></div>\r
+<div class="para"><p>The remainder of the line, after stripping the spaces, is used\r
+as the help associated to the option.</p></div>\r
+<div class="para"><p>Blank lines are ignored, and lines that don't match this specification are used\r
as option group headers (start the line with a space to create such\r
-lines on purpose).</p>\r
-<h3>Example</h3>\r
+lines on purpose).</p></div>\r
+<h3 id="_example">Example</h3><div style="clear:left"></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>OPTS_SPEC="\\r
eval `echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?`</tt></pre>\r
</div></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Print the object name of the current commit:\r
<div class="content">\r
<pre><tt>$ git rev-parse --verify $REV</tt></pre>\r
</div></div>\r
-<p>This will error out if $REV is empty or not a valid revision.</p>\r
+<div class="para"><p>This will error out if $REV is empty or not a valid revision.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>$ git rev-parse --default master --verify $REV</tt></pre>\r
</div></div>\r
-<p>but if $REV is empty, the commit object name from master will be printed.</p>\r
+<div class="para"><p>but if $REV is empty, the commit object name from master will be printed.</p></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> .\r
-Junio C Hamano <junkio@cox.net> and Pierre Habouzit <madcoder@debian.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> .\r
+Junio C Hamano <junkio@cox.net> and Pierre Habouzit <madcoder@debian.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:00 UTC\r
+Last updated 2008-07-06 05:17:00 UTC\r
</div>\r
</div>\r
</body>\r
Many git porcelainish commands take mixture of flags
(i.e. parameters that begin with a dash '-') and parameters
-meant for the underlying `git-rev-list` command they use internally
+meant for the underlying 'git-rev-list' command they use internally
and flags and parameters for the other commands they use
-downstream of `git-rev-list`. This command is used to
+downstream of 'git-rev-list'. This command is used to
distinguish between them.
OPTIONS
-------
--parseopt::
- Use `git-rev-parse` in option parsing mode (see PARSEOPT section below).
+ Use 'git-rev-parse' in option parsing mode (see PARSEOPT section below).
--keep-dash-dash::
Only meaningful in `--parseopt` mode. Tells the option parser to echo
--revs-only::
Do not output flags and parameters not meant for
- `git-rev-list` command.
+ 'git-rev-list' command.
--no-revs::
Do not output flags and parameters meant for
- `git-rev-list` command.
+ 'git-rev-list' command.
--flags::
Do not output non-flag parameters.
properly quoted for consumption by shell. Useful when
you expect your parameter to contain whitespaces and
newlines (e.g. when using pickaxe `-S` with
- `git-diff-\*`).
+ 'git-diff-\*').
--not::
When showing object names, prefix them with '{caret}' and
--since=datestring::
--after=datestring::
Parse the date string, and output the corresponding
- --max-age= parameter for `git-rev-list`.
+ --max-age= parameter for 'git-rev-list'.
--until=datestring::
--before=datestring::
Parse the date string, and output the corresponding
- --min-age= parameter for `git-rev-list`.
+ --min-age= parameter for 'git-rev-list'.
<args>...::
Flags and parameters to be parsed.
name the same commit object if there are no other object in
your repository whose object name starts with dae86e.
-* An output from `git-describe`; i.e. a closest tag, followed by a
+* An output from 'git-describe'; i.e. a closest tag, followed by a
dash, a `g`, and an abbreviated object name.
* A symbolic ref name. E.g. 'master' typically means the commit
SPECIFYING RANGES
-----------------
-History traversing commands such as `git-log` operate on a set
+History traversing commands such as 'git-log' operate on a set
of commits, not just a single commit. To these commands,
specifying a single revision with the notation described in the
previous section means the set of commits reachable from that
PARSEOPT
--------
-In `--parseopt` mode, `git-rev-parse` helps massaging options to bring to shell
+In `--parseopt` mode, 'git-rev-parse' helps massaging options to bring to shell
scripts the same facilities C builtins have. It works as an option normalizer
(e.g. splits single switches aggregate values), a bit like `getopt(1)` does.
Input Format
~~~~~~~~~~~~
-`git-rev-parse --parseopt` input format is fully text based. It has two parts,
+'git-rev-parse --parseopt' input format is fully text based. It has two parts,
separated by a line that contains only `--`. The lines before the separator
(should be more than one) are used for the usage.
The lines after the separator describe the options.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-revert(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git revert</em> [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit></p>\r
+<div class="para"><p><em>git revert</em> [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Given one existing commit, revert the change the patch introduces, and record a\r
+<div class="para"><p>Given one existing commit, revert the change the patch introduces, and record a\r
new commit that records it. This requires your working tree to be clean (no\r
-modifications from the HEAD commit).</p>\r
+modifications from the HEAD commit).</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<commit>\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- With this option, <tt>git-revert</tt> will let you edit the commit\r
+ With this option, <em>git-revert</em> will let you edit the commit\r
message prior to committing the revert. This is the default if\r
you run the command from a terminal.\r
</p>\r
</dt>\r
<dd>\r
<p>\r
- With this option, <tt>git-revert</tt> will not start the commit\r
+ With this option, <em>git-revert</em> will not start the commit\r
message editor.\r
</p>\r
</dd>\r
The revert is done against the beginning state of your\r
working tree.\r
</p>\r
-<p>This is useful when reverting more than one commits'\r
-effect to your working tree in a row.</p>\r
+<div class="para"><p>This is useful when reverting more than one commits'\r
+effect to your working tree in a row.</p></div>\r
</dd>\r
<dt>\r
-s\r
Add Signed-off-by line at the end of the commit message.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:00 UTC\r
+Last updated 2008-07-06 05:17:00 UTC\r
</div>\r
</div>\r
</body>\r
-e::
--edit::
- With this option, `git-revert` will let you edit the commit
+ With this option, 'git-revert' will let you edit the commit
message prior to committing the revert. This is the default if
you run the command from a terminal.
relative to the specified parent.
--no-edit::
- With this option, `git-revert` will not start the commit
+ With this option, 'git-revert' will not start the commit
message editor.
-n::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-rm(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git rm</em> [-f] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…</p>\r
+<div class="para"><p><em>git rm</em> [-f] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Remove files from the index, or from the working tree and the index.\r
-<tt>git-rm</tt> will not remove a file from just your working directory.\r
+<div class="para"><p>Remove files from the index, or from the working tree and the index.\r
+<em>git-rm</em> will not remove a file from just your working directory.\r
(There is no option to remove a file only from the work tree\r
and yet keep it in the index; use <tt>/bin/rm</tt> if you want to do that.)\r
The files being removed have to be identical to the tip of the branch,\r
though that default behavior can be overridden with the <tt>-f</tt> option.\r
When <em>--cached</em> is given, the staged content has to\r
match either the tip of the branch or the file on disk,\r
-allowing the file to be removed from just the index.</p>\r
+allowing the file to be removed from just the index.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<file>…\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- <tt>git-rm</tt> normally outputs one line (in the form of an "rm" command)\r
+ <em>git-rm</em> normally outputs one line (in the form of an "rm" command)\r
for each file removed. This option suppresses that output.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DISCUSSION</h2>\r
+<h2 id="_discussion">DISCUSSION</h2>\r
<div class="sectionbody">\r
-<p>The <file> list given to the command can be exact pathnames,\r
+<div class="para"><p>The <file> list given to the command can be exact pathnames,\r
file glob patterns, or leading directory names. The command\r
removes only the paths that are known to git. Giving the name of\r
-a file that you have not told git about does not remove that file.</p>\r
-<p>File globbing matches across directory boundaries. Thus, given\r
+a file that you have not told git about does not remove that file.</p></div>\r
+<div class="para"><p>File globbing matches across directory boundaries. Thus, given\r
two directories <tt>d</tt> and <tt>d2</tt>, there is a difference between\r
using <tt>git rm 'd*'</tt> and <tt>git rm 'd/*'</tt>, as the former will\r
-also remove all of directory <tt>d2</tt>.</p>\r
+also remove all of directory <tt>d2</tt>.</p></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git rm Documentation/\*.txt\r
</dt>\r
Removes all <tt>*.txt</tt> files from the index that are under the\r
<tt>Documentation</tt> directory and any of its subdirectories.\r
</p>\r
-<p>Note that the asterisk <tt>*</tt> is quoted from the shell in this\r
+<div class="para"><p>Note that the asterisk <tt>*</tt> is quoted from the shell in this\r
example; this lets git, and not the shell, expand the pathnames\r
-of files and subdirectories under the <tt>Documentation/</tt> directory.</p>\r
+of files and subdirectories under the <tt>Documentation/</tt> directory.</p></div>\r
</dd>\r
<dt>\r
git rm -f git-*.sh\r
does not remove <tt>subdir/git-foo.sh</tt>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-add.html">git-add(1)</a></p>\r
+<div class="para"><p><a href="git-add.html">git-add(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:01 UTC\r
+Last updated 2008-07-06 05:17:01 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
Remove files from the index, or from the working tree and the index.
-`git-rm` will not remove a file from just your working directory.
+'git-rm' will not remove a file from just your working directory.
(There is no option to remove a file only from the work tree
and yet keep it in the index; use `/bin/rm` if you want to do that.)
The files being removed have to be identical to the tip of the branch,
-q::
--quiet::
- `git-rm` normally outputs one line (in the form of an "rm" command)
+ 'git-rm' normally outputs one line (in the form of an "rm" command)
for each file removed. This option suppresses that output.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-send-pack(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git send-pack</em> [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [<host>:]<directory> [<ref>…]</p>\r
+<div class="para"><p><em>git send-pack</em> [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [<host>:]<directory> [<ref>…]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Usually you would want to use <tt>git-push</tt>, which is a\r
-higher-level wrapper of this command, instead. See <a href="git-push.html">git-push(1)</a>.</p>\r
-<p>Invokes <tt>git-receive-pack</tt> on a possibly remote repository, and\r
-updates it from the current repository, sending named refs.</p>\r
+<div class="para"><p>Usually you would want to use <em>git-push</em>, which is a\r
+higher-level wrapper of this command, instead. See <a href="git-push.html">git-push(1)</a>.</p></div>\r
+<div class="para"><p>Invokes <em>git-receive-pack</em> on a possibly remote repository, and\r
+updates it from the current repository, sending named refs.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--receive-pack=<git-receive-pack>\r
</dt>\r
<dd>\r
<p>\r
- Path to the <tt>git-receive-pack</tt> program on the remote\r
+ Path to the <em>git-receive-pack</em> program on the remote\r
end. Sometimes useful when pushing to a remote\r
repository over ssh, and you do not have the program in\r
a directory on the default $PATH.\r
<dd>\r
<p>\r
A remote host to house the repository. When this\r
- part is specified, <tt>git-receive-pack</tt> is invoked via\r
+ part is specified, <em>git-receive-pack</em> is invoked via\r
ssh.\r
</p>\r
</dd>\r
The remote refs to update.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Specifying the Refs</h2>\r
+<h2 id="_specifying_the_refs">Specifying the Refs</h2>\r
<div class="sectionbody">\r
-<p>There are three ways to specify which refs to update on the\r
-remote end.</p>\r
-<p>With <em>--all</em> flag, all refs that exist locally are transferred to\r
+<div class="para"><p>There are three ways to specify which refs to update on the\r
+remote end.</p></div>\r
+<div class="para"><p>With <em>--all</em> flag, all refs that exist locally are transferred to\r
the remote side. You cannot specify any <em><ref></em> if you use\r
-this flag.</p>\r
-<p>Without <em>--all</em> and without any <em><ref></em>, the heads that exist\r
-both on the local side and on the remote side are updated.</p>\r
-<p>When one or more <em><ref></em> are specified explicitly, it can be either a\r
+this flag.</p></div>\r
+<div class="para"><p>Without <em>--all</em> and without any <em><ref></em>, the heads that exist\r
+both on the local side and on the remote side are updated.</p></div>\r
+<div class="para"><p>When one or more <em><ref></em> are specified explicitly, it can be either a\r
single pattern, or a pair of such pattern separated by a colon\r
":" (this means that a ref name cannot have a colon in it). A\r
-single pattern <em><name></em> is just a shorthand for <em><name>:<name></em>.</p>\r
-<p>Each pattern pair consists of the source side (before the colon)\r
+single pattern <em><name></em> is just a shorthand for <em><name>:<name></em>.</p></div>\r
+<div class="para"><p>Each pattern pair consists of the source side (before the colon)\r
and the destination side (after the colon). The ref to be\r
pushed is determined by finding a match that matches the source\r
side, and where it is pushed is determined by using the\r
destination side. The rules used to match a ref are the same\r
-rules used by <tt>git-rev-parse</tt> to resolve a symbolic ref\r
-name. See <a href="git-rev-parse.html">git-rev-parse(1)</a>.</p>\r
-<ul>\r
+rules used by <em>git-rev-parse</em> to resolve a symbolic ref\r
+name. See <a href="git-rev-parse.html">git-rev-parse(1)</a>.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
It is an error if <src> does not match exactly one of the\r
<p>\r
If <dst> does not match any remote ref, either\r
</p>\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
it has to start with "refs/"; <dst> is used as the\r
locally is used as the name of the destination.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</li>\r
-</ul>\r
-<p>Without <em>--force</em>, the <src> ref is stored at the remote only if\r
+</ul></div>\r
+<div class="para"><p>Without <em>--force</em>, the <src> ref is stored at the remote only if\r
<dst> does not exist, or <dst> is a proper subset (i.e. an\r
ancestor) of <src>. This check, known as "fast forward check",\r
is performed in order to avoid accidentally overwriting the\r
-remote ref and lose other peoples' commits from there.</p>\r
-<p>With <em>--force</em>, the fast forward check is disabled for all refs.</p>\r
-<p>Optionally, a <ref> parameter can be prefixed with a plus <em>+</em> sign\r
-to disable the fast-forward check only on that ref.</p>\r
+remote ref and lose other peoples' commits from there.</p></div>\r
+<div class="para"><p>With <em>--force</em>, the fast forward check is disabled for all refs.</p></div>\r
+<div class="para"><p>Optionally, a <ref> parameter can be prefixed with a plus <em>+</em> sign\r
+to disable the fast-forward check only on that ref.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:02 UTC\r
+Last updated 2008-07-06 05:17:01 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Usually you would want to use `git-push`, which is a
+Usually you would want to use 'git-push', which is a
higher-level wrapper of this command, instead. See linkgit:git-push[1].
-Invokes `git-receive-pack` on a possibly remote repository, and
+Invokes 'git-receive-pack' on a possibly remote repository, and
updates it from the current repository, sending named refs.
OPTIONS
-------
--receive-pack=<git-receive-pack>::
- Path to the `git-receive-pack` program on the remote
+ Path to the 'git-receive-pack' program on the remote
end. Sometimes useful when pushing to a remote
repository over ssh, and you do not have the program in
a directory on the default $PATH.
<host>::
A remote host to house the repository. When this
- part is specified, `git-receive-pack` is invoked via
+ part is specified, 'git-receive-pack' is invoked via
ssh.
<directory>::
pushed is determined by finding a match that matches the source
side, and where it is pushed is determined by using the
destination side. The rules used to match a ref are the same
-rules used by `git-rev-parse` to resolve a symbolic ref
+rules used by 'git-rev-parse' to resolve a symbolic ref
name. See linkgit:git-rev-parse[1].
- It is an error if <src> does not match exactly one of the
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-sh-setup(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>. "$(git --exec-path)/git-sh-setup"</em></p>\r
+<div class="para"><p><em>. "$(git --exec-path)/git-sh-setup"</em></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This is not a command the end user would want to run. Ever.\r
+<div class="para"><p>This is not a command the end user would want to run. Ever.\r
This documentation is meant for people who are studying the\r
-Porcelain-ish scripts and/or are writing new ones.</p>\r
-<p>The <tt>git-sh-setup</tt> scriptlet is designed to be sourced (using\r
+Porcelain-ish scripts and/or are writing new ones.</p></div>\r
+<div class="para"><p>The <em>git-sh-setup</em> scriptlet is designed to be sourced (using\r
<tt>.</tt>) by other shell scripts to set up some variables pointing at\r
-the normal git directories and a few helper shell functions.</p>\r
-<p>Before sourcing it, your script should set up a few variables;\r
+the normal git directories and a few helper shell functions.</p></div>\r
+<div class="para"><p>Before sourcing it, your script should set up a few variables;\r
<tt>USAGE</tt> (and <tt>LONG_USAGE</tt>, if any) is used to define message\r
given by <tt>usage()</tt> shell function. <tt>SUBDIRECTORY_OK</tt> can be set\r
if the script can run from a subdirectory of the working tree\r
-(some commands do not).</p>\r
-<p>The scriptlet sets <tt>GIT_DIR</tt> and <tt>GIT_OBJECT_DIRECTORY</tt> shell\r
-variables, but does <strong>not</strong> export them to the environment.</p>\r
+(some commands do not).</p></div>\r
+<div class="para"><p>The scriptlet sets <tt>GIT_DIR</tt> and <tt>GIT_OBJECT_DIRECTORY</tt> shell\r
+variables, but does <strong>not</strong> export them to the environment.</p></div>\r
</div>\r
-<h2>FUNCTIONS</h2>\r
+<h2 id="_functions">FUNCTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
die\r
</dt>\r
GIT_AUTHOR_EMAIL and GIT_AUTHOR_DATE variables for a given commit.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:03 UTC\r
+Last updated 2008-07-06 05:17:03 UTC\r
</div>\r
</div>\r
</body>\r
This documentation is meant for people who are studying the
Porcelain-ish scripts and/or are writing new ones.
-The `git-sh-setup` scriptlet is designed to be sourced (using
+The 'git-sh-setup' scriptlet is designed to be sourced (using
`.`) by other shell scripts to set up some variables pointing at
the normal git directories and a few helper shell functions.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-shell(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>$(git --exec-path)/git-shell</em> -c <command> <argument></p>\r
+<div class="para"><p><em>$(git --exec-path)/git-shell</em> -c <command> <argument></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This is meant to be used as a login shell for SSH accounts you want\r
+<div class="para"><p>This is meant to be used as a login shell for SSH accounts you want\r
to restrict to GIT pull/push access only. It permits execution only\r
of server-side GIT commands implementing the pull/push functionality.\r
The commands can be executed only by the <em>-c</em> option; the shell is not\r
-interactive.</p>\r
-<p>Currently, only the <tt>git-receive-pack</tt> and <tt>git-upload-pack</tt> commands\r
-are permitted to be called, with a single required argument.</p>\r
+interactive.</p></div>\r
+<div class="para"><p>Currently, only the <em>git-receive-pack</em> and <em>git-upload-pack</em> commands\r
+are permitted to be called, with a single required argument.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Petr Baudis and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Petr Baudis and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:02 UTC\r
+Last updated 2008-07-06 05:17:02 UTC\r
</div>\r
</div>\r
</body>\r
The commands can be executed only by the '-c' option; the shell is not
interactive.
-Currently, only the `git-receive-pack` and `git-upload-pack` commands
+Currently, only the 'git-receive-pack' and 'git-upload-pack' commands
are permitted to be called, with a single required argument.
Author
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-shortlog(1)</title>\r
</head>\r
<h2>NAME</h2>\r
<div class="sectionbody">\r
<p>git-shortlog -\r
- Summarize 'git log' output\r
+ Summarize 'git-log' output\r
</p>\r
</div>\r
</div>\r
<div class="content">git log --pretty=short | <em>git shortlog</em> [-h] [-n] [-s] [-e] [-w]\r
git shortlog [-n|--numbered] [-s|--summary] [-e|--email] [-w[<width>[,<indent1>[,<indent2>]]]] [<committish>…]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Summarizes <tt>git-log</tt> output in a format suitable for inclusion\r
+<div class="para"><p>Summarizes <em>git-log</em> output in a format suitable for inclusion\r
in release announcements. Each commit will be grouped by author and\r
-the first line of the commit message will be shown.</p>\r
-<p>Additionally, "[PATCH]" will be stripped from the commit description.</p>\r
+the first line of the commit message will be shown.</p></div>\r
+<div class="para"><p>Additionally, "[PATCH]" will be stripped from the commit description.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-h\r
</dt>\r
<tt>indent1</tt>, and <tt>indent2</tt> default to 76, 6 and 9 respectively.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>FILES</h2>\r
+<h2 id="_files">FILES</h2>\r
<div class="sectionbody">\r
-<p>If the file <tt>.mailmap</tt> exists, it will be used for mapping author\r
+<div class="para"><p>If the file <tt>.mailmap</tt> exists, it will be used for mapping author\r
email addresses to a real author name. One mapping per line, first\r
the author name followed by the email address enclosed by\r
-<em><</em> and <em>></em>. Use hash <em>#</em> for comments. Example:</p>\r
+<em><</em> and <em>></em>. Use hash <em>#</em> for comments. Example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt># Keep alphabetized\r
Eve Jones <eve@laptop.(none)></tt></pre>\r
</div></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Jeff Garzik <jgarzik@pobox.com></p>\r
+<div class="para"><p>Written by Jeff Garzik <jgarzik@pobox.com></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:02 UTC\r
+Last updated 2008-07-06 05:17:02 UTC\r
</div>\r
</div>\r
</body>\r
NAME
----
-git-shortlog - Summarize 'git log' output
+git-shortlog - Summarize 'git-log' output
SYNOPSIS
--------
DESCRIPTION
-----------
-Summarizes `git-log` output in a format suitable for inclusion
+Summarizes 'git-log' output in a format suitable for inclusion
in release announcements. Each commit will be grouped by author and
the first line of the commit message will be shown.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-show-branch(1)</title>\r
</head>\r
[--no-name | --sha1-name] [--topics] [<rev> | <glob>]…\r
<em>git show-branch</em> (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Shows the commit ancestry graph starting from the commits named\r
+<div class="para"><p>Shows the commit ancestry graph starting from the commits named\r
with <rev>s or <globs>s (or all refs under $GIT_DIR/refs/heads\r
-and/or $GIT_DIR/refs/tags) semi-visually.</p>\r
-<p>It cannot show more than 29 branches and commits at a time.</p>\r
-<p>It uses <tt>showbranch.default</tt> multi-valued configuration items if\r
-no <rev> nor <glob> is given on the command line.</p>\r
+and/or $GIT_DIR/refs/tags) semi-visually.</p></div>\r
+<div class="para"><p>It cannot show more than 29 branches and commits at a time.</p></div>\r
+<div class="para"><p>It uses <tt>showbranch.default</tt> multi-valued configuration items if\r
+no <rev> nor <glob> is given on the command line.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<rev>\r
</dt>\r
<dd>\r
<p>\r
Instead of showing the commit list, just act like the\r
- <tt>git-merge-base -a</tt> command, except that it can accept\r
+ <em>git-merge-base -a</em> command, except that it can accept\r
more than two heads.\r
</p>\r
</dd>\r
current branch (or <tt>HEAD</tt> if it is detached).\r
</p>\r
</dd>\r
-</dl>\r
-<p>Note that --more, --list, --independent and --merge-base options\r
-are mutually exclusive.</p>\r
+</dl></div>\r
+<div class="para"><p>Note that --more, --list, --independent and --merge-base options\r
+are mutually exclusive.</p></div>\r
</div>\r
-<h2>OUTPUT</h2>\r
+<h2 id="_output">OUTPUT</h2>\r
<div class="sectionbody">\r
-<p>Given N <references>, the first N lines are the one-line\r
+<div class="para"><p>Given N <references>, the first N lines are the one-line\r
description from their commit message. The branch head that is\r
pointed at by $GIT_DIR/HEAD is prefixed with an asterisk <tt>*</tt>\r
-character while other heads are prefixed with a <tt>!</tt> character.</p>\r
-<p>Following these N lines, one-line log for each commit is\r
+character while other heads are prefixed with a <tt>!</tt> character.</p></div>\r
+<div class="para"><p>Following these N lines, one-line log for each commit is\r
displayed, indented N places. If a commit is on the I-th\r
branch, the I-th indentation character shows a <tt>+</tt> sign;\r
otherwise it shows a space. Merge commits are denoted by\r
a <tt>-</tt> sign. Each commit shows a short name that\r
-can be used as an extended SHA1 to name that commit.</p>\r
-<p>The following example shows three branches, "master", "fixes"\r
-and "mhf":</p>\r
+can be used as an extended SHA1 to name that commit.</p></div>\r
+<div class="para"><p>The following example shows three branches, "master", "fixes"\r
+and "mhf":</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch master fixes mhf\r
+ [mhf~8] Start adding the $GIT_DIR/remotes/ support.\r
*++ [master] Add 'git show-branch'.</tt></pre>\r
</div></div>\r
-<p>These three branches all forked from a common commit, [master],\r
+<div class="para"><p>These three branches all forked from a common commit, [master],\r
whose commit message is "Add <em>git show-branch</em>. "fixes" branch\r
adds one commit <em>Introduce "reset type"</em>. "mhf" branch has many\r
-other commits. The current branch is "master".</p>\r
+other commits. The current branch is "master".</p></div>\r
</div>\r
-<h2>EXAMPLE</h2>\r
+<h2 id="_example">EXAMPLE</h2>\r
<div class="sectionbody">\r
-<p>If you keep your primary branches immediately under\r
+<div class="para"><p>If you keep your primary branches immediately under\r
<tt>$GIT_DIR/refs/heads</tt>, and topic branches in subdirectories of\r
-it, having the following in the configuration file may help:</p>\r
+it, having the following in the configuration file may help:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[showbranch]\r
default = heads/*\r
</tt></pre>\r
</div></div>\r
-<p>With this, <tt>git show-branch</tt> without extra parameters would show\r
+<div class="para"><p>With this, <tt>git show-branch</tt> without extra parameters would show\r
only the primary branches. In addition, if you happen to be on\r
-your topic branch, it is shown as well.</p>\r
+your topic branch, it is shown as well.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch --reflog='10,1 hour ago' --list master</tt></pre>\r
</div></div>\r
-<p>shows 10 reflog entries going back from the tip as of 1 hour ago.\r
+<div class="para"><p>shows 10 reflog entries going back from the tip as of 1 hour ago.\r
Without <tt>--list</tt>, the output also shows how these tips are\r
-topologically related with each other.</p>\r
+topologically related with each other.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:02 UTC\r
+Last updated 2008-07-06 05:17:02 UTC\r
</div>\r
</div>\r
</body>\r
--merge-base::
Instead of showing the commit list, just act like the
- `git-merge-base -a` command, except that it can accept
+ 'git-merge-base -a' command, except that it can accept
more than two heads.
--independent::
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-show-index(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git show-index</em> < idx-file</p>\r
+<div class="para"><p><em>git show-index</em> < idx-file</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Reads given idx file for packed git archive created with\r
-<tt>git-pack-objects</tt> command, and dumps its contents.</p>\r
-<p>The information it outputs is subset of what you can get from\r
-<tt>git-verify-pack -v</tt>; this command only shows the packfile\r
-offset and SHA1 of each object.</p>\r
+<div class="para"><p>Reads given idx file for packed git archive created with\r
+<em>git-pack-objects</em> command, and dumps its contents.</p></div>\r
+<div class="para"><p>The information it outputs is subset of what you can get from\r
+<em>git-verify-pack -v</em>; this command only shows the packfile\r
+offset and SHA1 of each object.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano</p>\r
+<div class="para"><p>Documentation by Junio C Hamano</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:02 UTC\r
+Last updated 2008-07-06 05:17:02 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
Reads given idx file for packed git archive created with
-`git-pack-objects` command, and dumps its contents.
+'git-pack-objects' command, and dumps its contents.
The information it outputs is subset of what you can get from
-`git-verify-pack -v`; this command only shows the packfile
+'git-verify-pack -v'; this command only shows the packfile
offset and SHA1 of each object.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-show-ref(1)</title>\r
</head>\r
[-s|--hash] [--abbrev] [--tags] [--heads] [--] <pattern>…\r
<em>git show-ref</em> --exclude-existing[=pattern]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Displays references available in a local repository along with the associated\r
+<div class="para"><p>Displays references available in a local repository along with the associated\r
commit IDs. Results can be filtered using a pattern and tags can be\r
dereferenced into object IDs. Additionally, it can be used to test whether a\r
-particular ref exists.</p>\r
-<p>The --exclude-existing form is a filter that does the inverse, it shows the\r
-refs from stdin that don't exist in the local repository.</p>\r
-<p>Use of this utility is encouraged in favor of directly accessing files under\r
-in the <tt>.git</tt> directory.</p>\r
+particular ref exists.</p></div>\r
+<div class="para"><p>The --exclude-existing form is a filter that does the inverse, it shows the\r
+refs from stdin that don't exist in the local repository.</p></div>\r
+<div class="para"><p>Use of this utility is encouraged in favor of directly accessing files under\r
+in the <tt>.git</tt> directory.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-h\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Make <tt>git-show-ref</tt> act as a filter that reads refs from stdin of the\r
+ Make <em>git-show-ref</em> act as a filter that reads refs from stdin of the\r
form "<sup>(?:<anything>\s)?<refname>(?:\</sup>{})?$" and performs the\r
following actions on each:\r
(1) strip "^{}" at the end of line if any;\r
Show references matching one or more patterns.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>OUTPUT</h2>\r
+<h2 id="_output">OUTPUT</h2>\r
<div class="sectionbody">\r
-<p>The output is in the format: <em><SHA-1 ID></em> <em><space></em> <em><reference name></em>.</p>\r
+<div class="para"><p>The output is in the format: <em><SHA-1 ID></em> <em><space></em> <em><reference name></em>.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-ref --head --dereference\r
423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}\r
...</tt></pre>\r
</div></div>\r
-<p>When using --hash (and not --dereference) the output format is: <em><SHA-1 ID></em></p>\r
+<div class="para"><p>When using --hash (and not --dereference) the output format is: <em><SHA-1 ID></em></p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-ref --heads --hash\r
...</tt></pre>\r
</div></div>\r
</div>\r
-<h2>EXAMPLE</h2>\r
+<h2 id="_example">EXAMPLE</h2>\r
<div class="sectionbody">\r
-<p>To show all references called "master", whether tags or heads or anything\r
+<div class="para"><p>To show all references called "master", whether tags or heads or anything\r
else, and regardless of how deep in the reference naming hierarchy they are,\r
-use:</p>\r
+use:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> git show-ref master</tt></pre>\r
</div></div>\r
-<p>This will show "refs/heads/master" but also "refs/remote/other-repo/master",\r
-if such references exists.</p>\r
-<p>When using the <em>--verify</em> flag, the command requires an exact path:</p>\r
+<div class="para"><p>This will show "refs/heads/master" but also "refs/remote/other-repo/master",\r
+if such references exists.</p></div>\r
+<div class="para"><p>When using the <em>--verify</em> flag, the command requires an exact path:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> git show-ref --verify refs/heads/master</tt></pre>\r
</div></div>\r
-<p>will only match the exact branch called "master".</p>\r
-<p>If nothing matches, <tt>git-show-ref</tt> will return an error code of 1,\r
-and in the case of verification, it will show an error message.</p>\r
-<p>For scripting, you can ask it to be quiet with the "--quiet" flag, which\r
-allows you to do things like</p>\r
+<div class="para"><p>will only match the exact branch called "master".</p></div>\r
+<div class="para"><p>If nothing matches, <em>git-show-ref</em> will return an error code of 1,\r
+and in the case of verification, it will show an error message.</p></div>\r
+<div class="para"><p>For scripting, you can ask it to be quiet with the "--quiet" flag, which\r
+allows you to do things like</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> git show-ref --quiet --verify -- "refs/heads/$headname" ||\r
echo "$headname is not a valid branch"</tt></pre>\r
</div></div>\r
-<p>to check whether a particular branch exists or not (notice how we don't\r
+<div class="para"><p>to check whether a particular branch exists or not (notice how we don't\r
actually want to show any results, and we want to use the full refname for it\r
-in order to not trigger the problem with ambiguous partial matches).</p>\r
-<p>To show only tags, or only proper branch heads, use "--tags" and/or "--heads"\r
+in order to not trigger the problem with ambiguous partial matches).</p></div>\r
+<div class="para"><p>To show only tags, or only proper branch heads, use "--tags" and/or "--heads"\r
respectively (using both means that it shows tags and heads, but not other\r
-random references under the refs/ subdirectory).</p>\r
-<p>To do automatic tag object dereferencing, use the "-d" or "--dereference"\r
-flag, so you can do</p>\r
+random references under the refs/ subdirectory).</p></div>\r
+<div class="para"><p>To do automatic tag object dereferencing, use the "-d" or "--dereference"\r
+flag, so you can do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> git show-ref --tags --dereference</tt></pre>\r
</div></div>\r
-<p>to get a listing of all tags together with what they dereference.</p>\r
+<div class="para"><p>to get a listing of all tags together with what they dereference.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-ls-remote.html">git-ls-remote(1)</a></p>\r
+<div class="para"><p><a href="git-ls-remote.html">git-ls-remote(1)</a></p></div>\r
</div>\r
-<h2>AUTHORS</h2>\r
+<h2 id="_authors">AUTHORS</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org>.\r
-Man page by Jonas Fonseca <fonseca@diku.dk>.</p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org>.\r
+Man page by Jonas Fonseca <fonseca@diku.dk>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:03 UTC\r
+Last updated 2008-07-06 05:17:03 UTC\r
</div>\r
</div>\r
</body>\r
--exclude-existing::
--exclude-existing=pattern::
- Make `git-show-ref` act as a filter that reads refs from stdin of the
+ Make 'git-show-ref' act as a filter that reads refs from stdin of the
form "^(?:<anything>\s)?<refname>(?:\^\{\})?$" and performs the
following actions on each:
(1) strip "^{}" at the end of line if any;
will only match the exact branch called "master".
-If nothing matches, `git-show-ref` will return an error code of 1,
+If nothing matches, 'git-show-ref' will return an error code of 1,
and in the case of verification, it will show an error message.
For scripting, you can ask it to be quiet with the "--quiet" flag, which
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-show(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git show</em> [options] <object>…</p>\r
+<div class="para"><p><em>git show</em> [options] <object>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Shows one or more objects (blobs, trees, tags and commits).</p>\r
-<p>For commits it shows the log message and textual diff. It also\r
+<div class="para"><p>Shows one or more objects (blobs, trees, tags and commits).</p></div>\r
+<div class="para"><p>For commits it shows the log message and textual diff. It also\r
presents the merge commit in a special format as produced by\r
-<tt>git-diff-tree --cc</tt>.</p>\r
-<p>For tags, it shows the tag message and the referenced objects.</p>\r
-<p>For trees, it shows the names (equivalent to <tt>git-ls-tree</tt>\r
-with --name-only).</p>\r
-<p>For plain blobs, it shows the plain contents.</p>\r
-<p>The command takes options applicable to the <tt>git-diff-tree</tt> command to\r
-control how the changes the commit introduces are shown.</p>\r
-<p>This manual page describes only the most frequently used options.</p>\r
+<em>git-diff-tree --cc</em>.</p></div>\r
+<div class="para"><p>For tags, it shows the tag message and the referenced objects.</p></div>\r
+<div class="para"><p>For trees, it shows the names (equivalent to <em>git-ls-tree</em>\r
+with --name-only).</p></div>\r
+<div class="para"><p>For plain blobs, it shows the plain contents.</p></div>\r
+<div class="para"><p>The command takes options applicable to the <em>git-diff-tree</em> command to\r
+control how the changes the commit introduces are shown.</p></div>\r
+<div class="para"><p>This manual page describes only the most frequently used options.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<object>\r
</dt>\r
<em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
When omitted, the format defaults to <em>medium</em>.\r
</p>\r
-<p>Note: you can specify the default pretty format in the repository\r
-configuration (see <a href="git-config.html">git-config(1)</a>).</p>\r
+<div class="para"><p>Note: you can specify the default pretty format in the repository\r
+configuration (see <a href="git-config.html">git-config(1)</a>).</p></div>\r
</dd>\r
<dt>\r
--abbrev-commit\r
digits can be specified with "--abbrev=<n>" (which also modifies\r
diff output, if it is displayed).\r
</p>\r
-<p>This should make "--pretty=oneline" a whole lot more readable for\r
-people using 80-column terminals.</p>\r
+<div class="para"><p>This should make "--pretty=oneline" a whole lot more readable for\r
+people using 80-column terminals.</p></div>\r
</dd>\r
<dt>\r
--encoding[=<encoding>]\r
defaults to UTF-8.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>PRETTY FORMATS</h2>\r
+<h2 id="_pretty_formats">PRETTY FORMATS</h2>\r
<div class="sectionbody">\r
-<p>If the commit is a merge, and if the pretty-format\r
+<div class="para"><p>If the commit is a merge, and if the pretty-format\r
is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
inserted before the <em>Author:</em> line. This line begins with\r
"Merge: " and the sha1s of ancestral commits are printed,\r
necessarily be the list of the <strong>direct</strong> parent commits if you\r
have limited your view of history: for example, if you are\r
only interested in changes related to a certain directory or\r
-file.</p>\r
-<p>Here are some additional details for each format:</p>\r
-<ul>\r
+file.</p></div>\r
+<div class="para"><p>Here are some additional details for each format:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>oneline</em>\r
<div class="content">\r
<pre><tt><sha1> <title line></tt></pre>\r
</div></div>\r
-<p>This is designed to be as compact as possible.</p>\r
+<div class="para"><p>This is designed to be as compact as possible.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-Date: <date></tt></pre>\r
+Date: <author date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-AuthorDate: <date & time>\r
+AuthorDate: <author date>\r
Commit: <committer>\r
-CommitDate: <date & time></tt></pre>\r
+CommitDate: <committer date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>From <sha1> <date>\r
From: <author>\r
-Date: <date & time>\r
+Date: <author date>\r
Subject: [PATCH] <title line></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<p>\r
<em>raw</em>\r
</p>\r
-<p>The <em>raw</em> format shows the entire commit exactly as\r
+<div class="para"><p>The <em>raw</em> format shows the entire commit exactly as\r
stored in the commit object. Notably, the SHA1s are\r
displayed in full, regardless of whether --abbrev or\r
--no-abbrev are used, and <em>parents</em> information show the\r
true parent commits, without taking grafts nor history\r
-simplification into account.</p>\r
+simplification into account.</p></div>\r
</li>\r
<li>\r
<p>\r
<em>format:</em>\r
</p>\r
-<p>The <em>format:</em> format allows you to specify which information\r
+<div class="para"><p>The <em>format:</em> format allows you to specify which information\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
-instead of <em>\n</em>.</p>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
-would show something like this:</p>\r
+instead of <em>\n</em>.</p></div>\r
+<div class="para"><p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
+would show something like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
</tt></pre>\r
</div></div>\r
-<p>The placeholders are:</p>\r
-<ul>\r
+<div class="para"><p>The placeholders are:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>%H</em>: commit hash\r
<em>%x00</em>: print a byte from a hex code\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</li>\r
<li>\r
<p>\r
<em>tformat:</em>\r
</p>\r
-<p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
+<div class="para"><p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
provides "terminator" semantics instead of "separator" semantics. In\r
other words, each commit has the message terminator character (usually a\r
newline) appended, rather than a separator placed between entries.\r
This means that the final entry of a single-line format will be properly\r
terminated with a new line, just as the "oneline" format does.\r
-For example:</p>\r
+For example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -2 --pretty=format:%h 4da45bef \\r
7134973</tt></pre>\r
</div></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git show v1.0.0\r
</dt>\r
of the branch <tt>master</tt>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Discussion</h2>\r
+<h2 id="_discussion">Discussion</h2>\r
<div class="sectionbody">\r
-<p>At the core level, git is character encoding agnostic.</p>\r
-<ul>\r
+<div class="para"><p>At the core level, git is character encoding agnostic.</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
The pathnames recorded in the index and in the tree objects\r
bytes.\r
</p>\r
</li>\r
-</ul>\r
-<p>Although we encourage that the commit log messages are encoded\r
+</ul></div>\r
+<div class="para"><p>Although we encourage that the commit log messages are encoded\r
in UTF-8, both the core and git Porcelain are designed not to\r
force UTF-8 on projects. If all participants of a particular\r
project find it more convenient to use legacy encodings, git\r
does not forbid it. However, there are a few things to keep in\r
-mind.</p>\r
-<ol>\r
+mind.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
-<tt>git-commit-tree</tt> (hence, <tt>git-commit</tt> which uses it) issues\r
+<em>git-commit-tree</em> (hence, <em>git-commit</em> which uses it) issues\r
a warning if the commit log message given to it does not look\r
like a valid UTF-8 string, unless you explicitly say your\r
project uses a legacy encoding. The way to say this is to\r
<pre><tt>[i18n]\r
commitencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>Commit objects created with the above setting record the value\r
+<div class="para"><p>Commit objects created with the above setting record the value\r
of <tt>i18n.commitencoding</tt> in its <tt>encoding</tt> header. This is to\r
help other people who look at them later. Lack of this header\r
-implies that the commit log message is encoded in UTF-8.</p>\r
+implies that the commit log message is encoded in UTF-8.</p></div>\r
</li>\r
<li>\r
<p>\r
-<tt>git-log</tt>, <tt>git-show</tt> and friends looks at the <tt>encoding</tt>\r
+<em>git-log</em>, <em>git-show</em> and friends looks at the <tt>encoding</tt>\r
header of a commit object, and tries to re-code the log\r
message into UTF-8 unless otherwise specified. You can\r
specify the desired output encoding with\r
<pre><tt>[i18n]\r
logoutputencoding = ISO-8859-1</tt></pre>\r
</div></div>\r
-<p>If you do not have this configuration variable, the value of\r
-<tt>i18n.commitencoding</tt> is used instead.</p>\r
+<div class="para"><p>If you do not have this configuration variable, the value of\r
+<tt>i18n.commitencoding</tt> is used instead.</p></div>\r
</li>\r
-</ol>\r
-<p>Note that we deliberately chose not to re-code the commit log\r
+</ol></div>\r
+<div class="para"><p>Note that we deliberately chose not to re-code the commit log\r
message when a commit is made to force UTF-8 at the commit\r
object level, because re-coding to UTF-8 is not necessarily a\r
-reversible operation.</p>\r
+reversible operation.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> and\r
Junio C Hamano <junkio@cox.net>. Significantly enhanced by\r
-Johannes Schindelin <Johannes.Schindelin@gmx.de>.</p>\r
+Johannes Schindelin <Johannes.Schindelin@gmx.de>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Petr Baudis and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Petr Baudis and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:03 UTC\r
+Last updated 2008-07-06 05:17:03 UTC\r
</div>\r
</div>\r
</body>\r
For commits it shows the log message and textual diff. It also
presents the merge commit in a special format as produced by
-`git-diff-tree --cc`.
+'git-diff-tree --cc'.
For tags, it shows the tag message and the referenced objects.
-For trees, it shows the names (equivalent to `git-ls-tree`
+For trees, it shows the names (equivalent to 'git-ls-tree'
with \--name-only).
For plain blobs, it shows the plain contents.
-The command takes options applicable to the `git-diff-tree` command to
+The command takes options applicable to the 'git-diff-tree' command to
control how the changes the commit introduces are shown.
This manual page describes only the most frequently used options.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-stash(1)</title>\r
</head>\r
<div class="content"><em>git stash</em> (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>] | pop [<stash>])\r
<em>git stash</em> [save [<message>]]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Use <em>git stash</em> when you want to record the current state of the\r
+<div class="para"><p>Use <em>git stash</em> when you want to record the current state of the\r
working directory and the index, but want to go back to a clean\r
working directory. The command saves your local modifications away\r
-and reverts the working directory to match the <tt>HEAD</tt> commit.</p>\r
-<p>The modifications stashed away by this command can be listed with\r
+and reverts the working directory to match the <tt>HEAD</tt> commit.</p></div>\r
+<div class="para"><p>The modifications stashed away by this command can be listed with\r
<tt>git stash list</tt>, inspected with <tt>git stash show</tt>, and restored\r
(potentially on top of a different commit) with <tt>git stash apply</tt>.\r
Calling <tt>git stash</tt> without any arguments is equivalent to <tt>git stash save</tt>.\r
A stash is by default listed as "WIP on <em>branchname</em> …", but\r
you can give a more descriptive message on the command line when\r
-you create one.</p>\r
-<p>The latest stash you created is stored in <tt>$GIT_DIR/refs/stash</tt>; older\r
+you create one.</p></div>\r
+<div class="para"><p>The latest stash you created is stored in <tt>$GIT_DIR/refs/stash</tt>; older\r
stashes are found in the reflog of this reference and can be named using\r
the usual reflog syntax (e.g. <tt>stash@{0}</tt> is the most recently\r
created stash, <tt>stash@{1}</tt> is the one before it, <tt>stash@{2.hours.ago}</tt>\r
-is also possible).</p>\r
+is also possible).</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
save [<message>]\r
</dt>\r
<pre><tt>stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation\r
stash@{1}: On master: 9cc0589... Add git-stash</tt></pre>\r
</div></div>\r
-<p>The command takes options applicable to the <tt>git-log</tt>\r
-command to control what is shown and how. See <a href="git-log.html">git-log(1)</a>.</p>\r
+<div class="para"><p>The command takes options applicable to the <em>git-log</em>\r
+command to control what is shown and how. See <a href="git-log.html">git-log(1)</a>.</p></div>\r
</dd>\r
<dt>\r
show [<stash>]\r
Show the changes recorded in the stash as a diff between the\r
stashed state and its original parent. When no <tt><stash></tt> is given,\r
shows the latest one. By default, the command shows the diffstat, but\r
- it will accept any format known to <tt>git-diff</tt> (e.g., <tt>git stash show\r
+ it will accept any format known to <em>git-diff</em> (e.g., <tt>git stash show\r
-p stash@{1}</tt> to view the second most recent stash in patch form).\r
</p>\r
</dd>\r
working tree state. When no <tt><stash></tt> is given, applies the latest\r
one. The working directory must match the index.\r
</p>\r
-<p>This operation can fail with conflicts; you need to resolve them\r
-by hand in the working tree.</p>\r
-<p>If the <tt>--index</tt> option is used, then tries to reinstate not only the working\r
+<div class="para"><p>This operation can fail with conflicts; you need to resolve them\r
+by hand in the working tree.</p></div>\r
+<div class="para"><p>If the <tt>--index</tt> option is used, then tries to reinstate not only the working\r
tree's changes, but also the index's ones. However, this can fail, when you\r
have conflicts (which are stored in the index, where you therefore can no\r
-longer apply the changes as they were originally).</p>\r
+longer apply the changes as they were originally).</p></div>\r
</dd>\r
<dt>\r
clear\r
<tt>stash@{0}</tt> is assumed. See also <tt>apply</tt>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>DISCUSSION</h2>\r
+<h2 id="_discussion">DISCUSSION</h2>\r
<div class="sectionbody">\r
-<p>A stash is represented as a commit whose tree records the state of the\r
+<div class="para"><p>A stash is represented as a commit whose tree records the state of the\r
working directory, and its first parent is the commit at <tt>HEAD</tt> when\r
the stash was created. The tree of the second parent records the\r
state of the index when the stash is made, and it is made a child of\r
-the <tt>HEAD</tt> commit. The ancestry graph looks like this:</p>\r
+the <tt>HEAD</tt> commit. The ancestry graph looks like this:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> .----W\r
/ /\r
-----H----I</tt></pre>\r
</div></div>\r
-<p>where <tt>H</tt> is the <tt>HEAD</tt> commit, <tt>I</tt> is a commit that records the state\r
+<div class="para"><p>where <tt>H</tt> is the <tt>HEAD</tt> commit, <tt>I</tt> is a commit that records the state\r
of the index, and <tt>W</tt> is a commit that records the state of the working\r
-tree.</p>\r
+tree.</p></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
Pulling into a dirty tree\r
</dt>\r
doing. When your local changes do not conflict with the changes in\r
the upstream, a simple <tt>git pull</tt> will let you move forward.\r
</p>\r
-<p>However, there are cases in which your local changes do conflict with\r
+<div class="para"><p>However, there are cases in which your local changes do conflict with\r
the upstream changes, and <tt>git pull</tt> refuses to overwrite your\r
changes. In such a case, you can stash your changes away,\r
-perform a pull, and then unstash, like this:</p>\r
+perform a pull, and then unstash, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git pull\r
$ git reset --soft HEAD^\r
... continue hacking ...</tt></pre>\r
</div></div>\r
-<p>You can use <tt>git-stash</tt> to simplify the above, like this:</p>\r
+<div class="para"><p>You can use <em>git-stash</em> to simplify the above, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>... hack hack hack ...\r
... continue hacking ...</tt></pre>\r
</div></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-checkout.html">git-checkout(1)</a>,\r
+<div class="para"><p><a href="git-checkout.html">git-checkout(1)</a>,\r
<a href="git-commit.html">git-commit(1)</a>,\r
<a href="git-reflog.html">git-reflog(1)</a>,\r
-<a href="git-reset.html">git-reset(1)</a></p>\r
+<a href="git-reset.html">git-reset(1)</a></p></div>\r
</div>\r
-<h2>AUTHOR</h2>\r
+<h2 id="_author">AUTHOR</h2>\r
<div class="sectionbody">\r
-<p>Written by Nanako Shiraishi <nanako3@bluebottle.com></p>\r
+<div class="para"><p>Written by Nanako Shiraishi <nanako3@bluebottle.com></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:03 UTC\r
+Last updated 2008-07-06 05:17:03 UTC\r
</div>\r
</div>\r
</body>\r
stash@{1}: On master: 9cc0589... Add git-stash
----------------------------------------------------------------
+
-The command takes options applicable to the `git-log`
+The command takes options applicable to the 'git-log'
command to control what is shown and how. See linkgit:git-log[1].
show [<stash>]::
Show the changes recorded in the stash as a diff between the
stashed state and its original parent. When no `<stash>` is given,
shows the latest one. By default, the command shows the diffstat, but
- it will accept any format known to `git-diff` (e.g., `git stash show
+ it will accept any format known to 'git-diff' (e.g., `git stash show
-p stash@\{1}` to view the second most recent stash in patch form).
apply [--index] [<stash>]::
... continue hacking ...
----------------------------------------------------------------
+
-You can use `git-stash` to simplify the above, like this:
+You can use 'git-stash' to simplify the above, like this:
+
----------------------------------------------------------------
... hack hack hack ...
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-status(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git status</em> <options>…</p>\r
+<div class="para"><p><em>git status</em> <options>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Displays paths that have differences between the index file and the\r
+<div class="para"><p>Displays paths that have differences between the index file and the\r
current HEAD commit, paths that have differences between the working\r
tree and the index file, and paths in the working tree that are not\r
tracked by git (and are not ignored by <a href="gitignore.html">gitignore(5)</a>). The first\r
-are what you _would_ commit by running <tt>git commit</tt>; the second and\r
-third are what you _could_ commit by running <tt>git-add</tt> before running\r
-<tt>git commit</tt>.</p>\r
-<p>The command takes the same set of options as <tt>git-commit</tt>; it\r
+are what you <em>would</em> commit by running <tt>git commit</tt>; the second and\r
+third are what you <em>could</em> commit by running <em>git-add</em> before running\r
+<tt>git commit</tt>.</p></div>\r
+<div class="para"><p>The command takes the same set of options as <em>git-commit</em>; it\r
shows what would be committed if the same options are given to\r
-<tt>git-commit</tt>.</p>\r
-<p>If there is no path that is different between the index file and\r
+<em>git-commit</em>.</p></div>\r
+<div class="para"><p>If there is no path that is different between the index file and\r
the current HEAD commit (i.e., there is nothing to commit by running\r
-<tt>git commit</tt>), the command exits with non-zero status.</p>\r
+<tt>git commit</tt>), the command exits with non-zero status.</p></div>\r
</div>\r
-<h2>OUTPUT</h2>\r
+<h2 id="_output">OUTPUT</h2>\r
<div class="sectionbody">\r
-<p>The output from this command is designed to be used as a commit\r
-template comment, and all the output lines are prefixed with <em>#</em>.</p>\r
-<p>The paths mentioned in the output, unlike many other git commands, are\r
+<div class="para"><p>The output from this command is designed to be used as a commit\r
+template comment, and all the output lines are prefixed with <em>#</em>.</p></div>\r
+<div class="para"><p>The paths mentioned in the output, unlike many other git commands, are\r
made relative to the current directory if you are working in a\r
subdirectory (this is on purpose, to help cutting and pasting). See\r
-the status.relativePaths config option below.</p>\r
+the status.relativePaths config option below.</p></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<p>The command honors <tt>color.status</tt> (or <tt>status.color</tt> — they\r
+<div class="para"><p>The command honors <tt>color.status</tt> (or <tt>status.color</tt> — they\r
mean the same thing and the latter is kept for backward\r
compatibility) and <tt>color.status.<slot></tt> configuration variables\r
-to colorize its output.</p>\r
-<p>If the config variable <tt>status.relativePaths</tt> is set to false, then all\r
+to colorize its output.</p></div>\r
+<div class="para"><p>If the config variable <tt>status.relativePaths</tt> is set to false, then all\r
paths shown are relative to the repository root, not to the current\r
-directory.</p>\r
-<p>If <tt>status.submodulesummary</tt> is set to a non zero number or true (identical\r
+directory.</p></div>\r
+<div class="para"><p>If <tt>status.submodulesummary</tt> is set to a non zero number or true (identical\r
to -1 or an unlimited number), the submodule summary will be enabled and a\r
summary of commits for modified submodules will be shown (see --summary-limit\r
-option of <a href="git-submodule.html">git-submodule(1)</a>).</p>\r
+option of <a href="git-submodule.html">git-submodule(1)</a>).</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="gitignore.html">gitignore(5)</a></p>\r
+<div class="para"><p><a href="gitignore.html">gitignore(5)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and\r
-Junio C Hamano <junkio@cox.net>.</p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> and\r
+Junio C Hamano <junkio@cox.net>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:04 UTC\r
+Last updated 2008-07-06 05:17:04 UTC\r
</div>\r
</div>\r
</body>\r
tree and the index file, and paths in the working tree that are not
tracked by git (and are not ignored by linkgit:gitignore[5]). The first
are what you _would_ commit by running `git commit`; the second and
-third are what you _could_ commit by running `git-add` before running
+third are what you _could_ commit by running 'git-add' before running
`git commit`.
-The command takes the same set of options as `git-commit`; it
+The command takes the same set of options as 'git-commit'; it
shows what would be committed if the same options are given to
-`git-commit`.
+'git-commit'.
If there is no path that is different between the index file and
the current HEAD commit (i.e., there is nothing to commit by running
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-submodule(1)</title>\r
</head>\r
<em>git submodule</em> [--quiet] update [--init] [--] [<path>…]\r
<em>git submodule</em> [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>…]</div></div>\r
</div>\r
-<h2>COMMANDS</h2>\r
+<h2 id="_commands">COMMANDS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
add\r
</dt>\r
<p>\r
Show the status of the submodules. This will print the SHA-1 of the\r
currently checked out commit for each submodule, along with the\r
- submodule path and the output of <tt>git-describe</tt> for the\r
+ submodule path and the output of <em>git-describe</em> for the\r
SHA-1. Each SHA-1 will be prefixed with <tt>-</tt> if the submodule is not\r
initialized and <tt>+</tt> if the currently checked out submodule commit\r
does not match the SHA-1 found in the index of the containing\r
- repository. This command is the default command for <tt>git-submodule</tt>.\r
+ repository. This command is the default command for <em>git-submodule</em>.\r
</p>\r
</dd>\r
<dt>\r
checkout the commit specified in the index of the containing repository.\r
This will make the submodules HEAD be detached.\r
</p>\r
-<p>If the submodule is not yet initialized, and you just want to use the\r
+<div class="para"><p>If the submodule is not yet initialized, and you just want to use the\r
setting as stored in .gitmodules, you can automatically initialize the\r
-submodule with the --init option.</p>\r
+submodule with the --init option.</p></div>\r
</dd>\r
<dt>\r
summary\r
index or working tree (switched by --cached) are shown.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-q\r
</dt>\r
to only operate on the submodules found at the specified paths.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>FILES</h2>\r
+<h2 id="_files">FILES</h2>\r
<div class="sectionbody">\r
-<p>When initializing submodules, a .gitmodules file in the top-level directory\r
+<div class="para"><p>When initializing submodules, a .gitmodules file in the top-level directory\r
of the containing repository is used to find the url of each submodule.\r
This file should be formatted in the same way as <tt>$GIT_DIR/config</tt>. The key\r
to each submodule url is "submodule.$name.url". See <a href="gitmodules.html">gitmodules(5)</a>\r
-for details.</p>\r
+for details.</p></div>\r
</div>\r
-<h2>AUTHOR</h2>\r
+<h2 id="_author">AUTHOR</h2>\r
<div class="sectionbody">\r
-<p>Written by Lars Hjemli <hjemli@gmail.com></p>\r
+<div class="para"><p>Written by Lars Hjemli <hjemli@gmail.com></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:04 UTC\r
+Last updated 2008-07-06 05:17:04 UTC\r
</div>\r
</div>\r
</body>\r
status::
Show the status of the submodules. This will print the SHA-1 of the
currently checked out commit for each submodule, along with the
- submodule path and the output of `git-describe` for the
+ submodule path and the output of 'git-describe' for the
SHA-1. Each SHA-1 will be prefixed with `-` if the submodule is not
initialized and `+` if the currently checked out submodule commit
does not match the SHA-1 found in the index of the containing
- repository. This command is the default command for `git-submodule`.
+ repository. This command is the default command for 'git-submodule'.
init::
Initialize the submodules, i.e. register in .git/config each submodule
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-svn(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git svn</em> <command> [options] [arguments]</p>\r
+<div class="para"><p><em>git svn</em> <command> [options] [arguments]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p><tt>git-svn</tt> is a simple conduit for changesets between Subversion and git.\r
+<div class="para"><p><em>git-svn</em> is a simple conduit for changesets between Subversion and git.\r
It is not to be confused with <a href="git-svnimport.html">git-svnimport(1)</a>, which is\r
-read-only.</p>\r
-<p><tt>git-svn</tt> was originally designed for an individual developer who wants a\r
+read-only.</p></div>\r
+<div class="para"><p><em>git-svn</em> was originally designed for an individual developer who wants a\r
bidirectional flow of changesets between a single branch in Subversion\r
and an arbitrary number of branches in git. Since its inception,\r
-<tt>git-svn</tt> has gained the ability to track multiple branches in a manner\r
-similar to <tt>git-svnimport</tt>.</p>\r
-<p><tt>git-svn</tt> is especially useful when it comes to tracking repositories\r
+<em>git-svn</em> has gained the ability to track multiple branches in a manner\r
+similar to <em>git-svnimport</em>.</p></div>\r
+<div class="para"><p><em>git-svn</em> is especially useful when it comes to tracking repositories\r
not organized in the way Subversion developers recommend (trunk,\r
-branches, tags directories).</p>\r
+branches, tags directories).</p></div>\r
</div>\r
-<h2>COMMANDS</h2>\r
+<h2 id="_commands">COMMANDS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>init</em>\r
</dt>\r
<dd>\r
<p>\r
Initializes an empty git repository with additional\r
- metadata directories for <tt>git-svn</tt>. The Subversion URL\r
+ metadata directories for <em>git-svn</em>. The Subversion URL\r
may be specified as a command-line argument, or as full\r
URL arguments to -T/-t/-b. Optionally, the target\r
directory to operate on can be specified as a second\r
argument. Normally this command initializes the current\r
directory.\r
</p>\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-T<trunk_subdir>\r
</dt>\r
projects that share a common repository.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</dd>\r
<dt>\r
<em>fetch</em>\r
This fetches revisions from the SVN parent of the current HEAD\r
and rebases the current (uncommitted to SVN) work against it.\r
</p>\r
-<p>This works similarly to <tt>svn update</tt> or <tt>git-pull</tt> except that\r
-it preserves linear history with <tt>git-rebase</tt> instead of\r
-<tt>git-merge</tt> for ease of dcommiting with <tt>git-svn</tt>.</p>\r
-<p>This accepts all options that <tt>git-svn fetch</tt> and <tt>git-rebase</tt>\r
+<div class="para"><p>This works similarly to <tt>svn update</tt> or <em>git-pull</em> except that\r
+it preserves linear history with <em>git-rebase</em> instead of\r
+<em>git-merge</em> for ease of dcommiting with <em>git-svn</em>.</p></div>\r
+<div class="para"><p>This accepts all options that <em>git-svn fetch</em> and <em>git-rebase</em>\r
accept. However, <em>--fetch-all</em> only fetches from the current\r
-[svn-remote], and not all [svn-remote] definitions.</p>\r
-<p>Like <tt>git-rebase</tt>; this requires that the working tree be clean\r
-and have no uncommitted changes.</p>\r
-<dl>\r
+[svn-remote], and not all [svn-remote] definitions.</p></div>\r
+<div class="para"><p>Like <em>git-rebase</em>; this requires that the working tree be clean\r
+and have no uncommitted changes.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-l\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Do not fetch remotely; only run <tt>git-rebase</tt> against the\r
+ Do not fetch remotely; only run <em>git-rebase</em> against the\r
last fetched commit from the upstream SVN.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</dd>\r
<dt>\r
<em>dcommit</em>\r
repository, and then rebase or reset (depending on whether or\r
not there is a diff between SVN and head). This will create\r
a revision in SVN for each commit in git.\r
- It is recommended that you run <tt>git-svn</tt> fetch and rebase (not\r
+ It is recommended that you run <em>git-svn</em> fetch and rebase (not\r
pull or merge) your commits against the latest changes in the\r
SVN repository.\r
An optional command-line argument may be specified as an\r
This is advantageous over <em>set-tree</em> (below) because it produces\r
cleaner, more linear history.<br />\r
</p>\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--no-rebase\r
</dt>\r
After committing, do not rebase or reset.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</dd>\r
-</dl>\r
-<dl>\r
+</dl></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>log</em>\r
</dt>\r
This should make it easy to look up svn log messages when svn\r
users refer to -r/--revision numbers.\r
</p>\r
-<p>The following features from `svn log' are supported:</p>\r
-<dl>\r
+<div class="para"><p>The following features from `svn log' are supported:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--revision=<n>[:<n>]\r
</dt>\r
supported\r
</p>\r
</dd>\r
-</dl>\r
-<p>New features:</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>New features:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--show-commit\r
</dt>\r
our version of --pretty=oneline\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
environment). This command has the same behaviour.</td>\r
</tr></table>\r
</div>\r
-<p>Any other arguments are passed directly to <tt>git-log</tt></p>\r
+<div class="para"><p>Any other arguments are passed directly to <em>git-log</em></p></div>\r
</dd>\r
<dt>\r
<em>blame</em>\r
<p>\r
Show what revision and author last modified each line of a file. The\r
output of this mode is format-compatible with the output of\r
- <tt>svn blame' by default. Like the SVN blame command,\r
+ `svn blame' by default. Like the SVN blame command,\r
local uncommitted changes in the working copy are ignored;\r
the version of the file in the HEAD revision is annotated. Unknown\r
- arguments are passed directly to `git-blame</tt>.\r
+ arguments are passed directly to <em>git-blame</em>.\r
</p>\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--git-format\r
</dt>\r
<dd>\r
<p>\r
- Produce output in the same format as <tt>git-blame</tt>, but with\r
+ Produce output in the same format as <em>git-blame</em>, but with\r
SVN revision numbers instead of git commit hashes. In this mode,\r
changes that haven't been committed to SVN (including local\r
working-copy edits) are shown as revision 0.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</dd>\r
-</dl>\r
-<dl>\r
+</dl></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>find-rev</em>\r
</dt>\r
absolutely no attempts to do patching when committing to SVN, it\r
simply overwrites files with those specified in the tree or\r
commit. All merging is assumed to have taken place\r
- independently of <tt>git-svn</tt> functions.\r
+ independently of <em>git-svn</em> functions.\r
</p>\r
</dd>\r
<dt>\r
<p>\r
Commits the diff of two tree-ish arguments from the\r
command-line. This command is intended for interoperability with\r
- <tt>git-svnimport</tt> and does not rely on being inside an <tt>git-svn\r
+ <em>git-svnimport</em> and does not rely on being inside an <tt>git-svn\r
init</tt>-ed repository. This command takes three arguments, (a) the\r
original tree to diff against, (b) the new tree result, (c) the\r
URL of the target Subversion repository. The final argument\r
- (URL) may be omitted if you are working from a <tt>git-svn</tt>-aware\r
- repository (that has been <tt>init</tt>-ed with <tt>git-svn</tt>).\r
+ (URL) may be omitted if you are working from a <em>git-svn</em>-aware\r
+ repository (that has been <tt>init</tt>-ed with <em>git-svn</em>).\r
The -r<revision> option is required for this.\r
</p>\r
</dd>\r
specific revision.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--shared[={false|true|umask|group|all|world|everybody}]\r
</dt>\r
<dd>\r
<p>\r
Only used with the <em>init</em> command.\r
- These are passed directly to <tt>git-init</tt>.\r
+ These are passed directly to <em>git-init</em>.\r
</p>\r
</dd>\r
<dt>\r
<p>\r
Used with the <em>fetch</em> command.\r
</p>\r
-<p>This allows revision ranges for partial/cauterized history\r
+<div class="para"><p>This allows revision ranges for partial/cauterized history\r
to be supported. $NUMBER, $NUMBER1:$NUMBER2 (numeric ranges),\r
-$NUMBER:HEAD, and BASE:$NUMBER are all supported.</p>\r
-<p>This can allow you to make partial mirrors when running fetch;\r
+$NUMBER:HEAD, and BASE:$NUMBER are all supported.</p></div>\r
+<div class="para"><p>This can allow you to make partial mirrors when running fetch;\r
but is generally not recommended because history will be skipped\r
-and lost.</p>\r
+and lost.</p></div>\r
</dd>\r
<dt>\r
-\r
<p>\r
Only used with the <em>set-tree</em> command.\r
</p>\r
-<p>Read a list of commits from stdin and commit them in reverse\r
+<div class="para"><p>Read a list of commits from stdin and commit them in reverse\r
order. Only the leading sha1 is read from each line, so\r
-<tt>git-rev-list --pretty=oneline</tt> output can be used.</p>\r
+<em>git-rev-list --pretty=oneline</em> output can be used.</p></div>\r
</dd>\r
<dt>\r
--rmdir\r
<p>\r
Only used with the <em>dcommit</em>, <em>set-tree</em> and <em>commit-diff</em> commands.\r
</p>\r
-<p>Remove directories from the SVN tree if there are no files left\r
+<div class="para"><p>Remove directories from the SVN tree if there are no files left\r
behind. SVN can version empty directories, and they are not\r
removed by default if there are no files left in them. git\r
cannot version empty directories. Enabling this flag will make\r
-the commit to SVN act like git.</p>\r
-<p>config key: svn.rmdir</p>\r
+the commit to SVN act like git.</p></div>\r
+<div class="para"><p>config key: svn.rmdir</p></div>\r
</dd>\r
<dt>\r
-e\r
<p>\r
Only used with the <em>dcommit</em>, <em>set-tree</em> and <em>commit-diff</em> commands.\r
</p>\r
-<p>Edit the commit message before committing to SVN. This is off by\r
+<div class="para"><p>Edit the commit message before committing to SVN. This is off by\r
default for objects that are commits, and forced on when committing\r
-tree objects.</p>\r
-<p>config key: svn.edit</p>\r
+tree objects.</p></div>\r
+<div class="para"><p>config key: svn.edit</p></div>\r
</dd>\r
<dt>\r
-l<num>\r
<p>\r
Only used with the <em>dcommit</em>, <em>set-tree</em> and <em>commit-diff</em> commands.\r
</p>\r
-<p>They are both passed directly to <tt>git-diff-tree</tt>; see\r
-<a href="git-diff-tree.html">git-diff-tree(1)</a> for more information.</p>\r
+<div class="para"><p>They are both passed directly to <em>git-diff-tree</em>; see\r
+<a href="git-diff-tree.html">git-diff-tree(1)</a> for more information.</p></div>\r
<div class="verseblock">\r
<div class="content">config key: svn.l\r
config key: svn.findcopiesharder</div></div>\r
</dt>\r
<dd>\r
<p>\r
-Syntax is compatible with the files used by <tt>git-svnimport</tt> and\r
-<tt>git-cvsimport</tt>:\r
+Syntax is compatible with the files used by <em>git-svnimport</em> and\r
+<em>git-cvsimport</em>:\r
</p>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> loginname = Joe User <user@example.com></tt></pre>\r
</div></div>\r
-<p>If this option is specified and <tt>git-svn</tt> encounters an SVN\r
-committer name that does not exist in the authors-file, <tt>git-svn</tt>\r
+<div class="para"><p>If this option is specified and <em>git-svn</em> encounters an SVN\r
+committer name that does not exist in the authors-file, <em>git-svn</em>\r
will abort operation. The user will then have to add the\r
-appropriate entry. Re-running the previous <tt>git-svn</tt> command\r
-after the authors-file is modified should continue operation.</p>\r
-<p>config key: svn.authorsfile</p>\r
+appropriate entry. Re-running the previous <em>git-svn</em> command\r
+after the authors-file is modified should continue operation.</p></div>\r
+<div class="para"><p>config key: svn.authorsfile</p></div>\r
</dd>\r
<dt>\r
-q\r
</dt>\r
<dd>\r
<p>\r
- Make <tt>git-svn</tt> less verbose.\r
+ Make <em>git-svn</em> less verbose.\r
</p>\r
</dd>\r
<dt>\r
These should help keep disk usage sane for large fetches\r
with many revisions.\r
</p>\r
-<p>--repack takes an optional argument for the number of revisions\r
+<div class="para"><p>--repack takes an optional argument for the number of revisions\r
to fetch before repacking. This defaults to repacking every\r
-1000 commits fetched if no argument is specified.</p>\r
-<p>--repack-flags are passed directly to <tt>git-repack</tt>.</p>\r
+1000 commits fetched if no argument is specified.</p></div>\r
+<div class="para"><p>--repack-flags are passed directly to <em>git-repack</em>.</p></div>\r
<div class="verseblock">\r
<div class="content">config key: svn.repack\r
config key: svn.repackflags</div></div>\r
<p>\r
These are only used with the <em>dcommit</em> and <em>rebase</em> commands.\r
</p>\r
-<p>Passed directly to <tt>git-rebase</tt> when using <em>dcommit</em> if a\r
-<tt>git-reset</tt> cannot be used (see <em>dcommit</em>).</p>\r
+<div class="para"><p>Passed directly to <em>git-rebase</em> when using <em>dcommit</em> if a\r
+<em>git-reset</em> cannot be used (see <em>dcommit</em>).</p></div>\r
</dd>\r
<dt>\r
-n\r
<p>\r
This can be used with the <em>dcommit</em> and <em>rebase</em> commands.\r
</p>\r
-<p>For <em>dcommit</em>, print out the series of git arguments that would show\r
-which diffs would be committed to SVN.</p>\r
-<p>For <em>rebase</em>, display the local branch associated with the upstream svn\r
+<div class="para"><p>For <em>dcommit</em>, print out the series of git arguments that would show\r
+which diffs would be committed to SVN.</p></div>\r
+<div class="para"><p>For <em>rebase</em>, display the local branch associated with the upstream svn\r
repository associated with the current branch and the URL of svn\r
-repository that will be fetched from.</p>\r
+repository that will be fetched from.</p></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>ADVANCED OPTIONS</h2>\r
+<h2 id="_advanced_options">ADVANCED OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-i<GIT_SVN_ID>\r
</dt>\r
descended from. This feature is enabled by default, use\r
--no-follow-parent to disable it.\r
</p>\r
-<p>config key: svn.followparent</p>\r
+<div class="para"><p>config key: svn.followparent</p></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIG FILE-ONLY OPTIONS</h2>\r
+<h2 id="_config_file_only_options">CONFIG FILE-ONLY OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
svn.noMetadata\r
</dt>\r
<p>\r
This gets rid of the <em>git-svn-id:</em> lines at the end of every commit.\r
</p>\r
-<p>If you lose your .git/svn/git-svn/.rev_db file, <tt>git-svn</tt> will not\r
+<div class="para"><p>If you lose your .git/svn/git-svn/.rev_db file, <em>git-svn</em> will not\r
be able to rebuild it and you won't be able to fetch again,\r
-either. This is fine for one-shot imports.</p>\r
-<p>The <tt>git-svn log</tt> command will not work on repositories using\r
+either. This is fine for one-shot imports.</p></div>\r
+<div class="para"><p>The <em>git-svn log</em> command will not work on repositories using\r
this, either. Using this conflicts with the <em>useSvmProps</em>\r
-option for (hopefully) obvious reasons.</p>\r
+option for (hopefully) obvious reasons.</p></div>\r
</dd>\r
<dt>\r
svn.useSvmProps\r
</dt>\r
<dd>\r
<p>\r
-This allows <tt>git-svn</tt> to re-map repository URLs and UUIDs from\r
+This allows <em>git-svn</em> to re-map repository URLs and UUIDs from\r
mirrors created using SVN::Mirror (or svk) for metadata.\r
</p>\r
-<p>If an SVN revision has a property, "svm:headrev", it is likely\r
+<div class="para"><p>If an SVN revision has a property, "svm:headrev", it is likely\r
that the revision was created by SVN::Mirror (also used by SVK).\r
The property contains a repository UUID and a revision. We want\r
to make it look like we are mirroring the original URL, so\r
introduce a helper function that returns the original identity\r
URL and UUID, and use it when generating metadata in commit\r
-messages.</p>\r
+messages.</p></div>\r
</dd>\r
<dt>\r
svn.useSvnsyncProps\r
<dd>\r
<p>\r
This allows users to create repositories from alternate\r
- URLs. For example, an administrator could run <tt>git-svn</tt> on the\r
+ URLs. For example, an administrator could run <em>git-svn</em> on the\r
server locally (accessing via file://) but wish to distribute\r
the repository with a public http:// or svn:// URL in the\r
metadata so users of it will see the public URL.\r
</p>\r
</dd>\r
-</dl>\r
-<p>Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps\r
-options all affect the metadata generated and used by <tt>git-svn</tt>; they\r
+</dl></div>\r
+<div class="para"><p>Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps\r
+options all affect the metadata generated and used by <em>git-svn</em>; they\r
<strong>must</strong> be set in the configuration file before any history is imported\r
-and these settings should never be changed once they are set.</p>\r
-<p>Additionally, only one of these four options can be used per-svn-remote\r
-section because they affect the <em>git-svn-id:</em> metadata line.</p>\r
+and these settings should never be changed once they are set.</p></div>\r
+<div class="para"><p>Additionally, only one of these four options can be used per-svn-remote\r
+section because they affect the <em>git-svn-id:</em> metadata line.</p></div>\r
</div>\r
-<h2>BASIC EXAMPLES</h2>\r
+<h2 id="_basic_examples">BASIC EXAMPLES</h2>\r
<div class="sectionbody">\r
-<p>Tracking and contributing to the trunk of a Subversion-managed project:</p>\r
+<div class="para"><p>Tracking and contributing to the trunk of a Subversion-managed project:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt># Clone a repo (like git clone):\r
# Append svn:ignore settings to the default git exclude file:\r
git svn show-ignore >> .git/info/exclude</tt></pre>\r
</div></div>\r
-<p>Tracking and contributing to an entire Subversion-managed project\r
-(complete with a trunk, tags and branches):</p>\r
+<div class="para"><p>Tracking and contributing to an entire Subversion-managed project\r
+(complete with a trunk, tags and branches):</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt># Clone a repo (like git clone):\r
# You may only dcommit to one branch/tag/trunk at a time. The usage\r
# of dcommit/rebase/show-ignore should be the same as above.</tt></pre>\r
</div></div>\r
-<p>The initial <tt>git-svn clone</tt> can be quite time-consuming\r
+<div class="para"><p>The initial <em>git-svn clone</em> can be quite time-consuming\r
(especially for large Subversion repositories). If multiple\r
people (or one person with multiple machines) want to use\r
-<tt>git-svn</tt> to interact with the same Subversion repository, you can\r
-do the initial <tt>git-svn clone</tt> to a repository on a server and\r
-have each person clone that repository with <tt>git-clone</tt>:</p>\r
+<em>git-svn</em> to interact with the same Subversion repository, you can\r
+do the initial <em>git-svn clone</em> to a repository on a server and\r
+have each person clone that repository with <em>git-clone</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt># Do the initial import on a server\r
git svn rebase</tt></pre>\r
</div></div>\r
</div>\r
-<h2>REBASE VS. PULL/MERGE</h2>\r
+<h2 id="_rebase_vs_pull_merge">REBASE VS. PULL/MERGE</h2>\r
<div class="sectionbody">\r
-<p>Originally, <tt>git-svn</tt> recommended that the <em>remotes/git-svn</em> branch be\r
+<div class="para"><p>Originally, <em>git-svn</em> recommended that the <em>remotes/git-svn</em> branch be\r
pulled or merged from. This is because the author favored\r
<tt>git svn set-tree B</tt> to commit a single head rather than the\r
-<tt>git svn set-tree A..B</tt> notation to commit multiple commits.</p>\r
-<p>If you use <tt>git svn set-tree A..B</tt> to commit several diffs and you do\r
+<tt>git svn set-tree A..B</tt> notation to commit multiple commits.</p></div>\r
+<div class="para"><p>If you use <tt>git svn set-tree A..B</tt> to commit several diffs and you do\r
not have the latest remotes/git-svn merged into my-branch, you should\r
use <tt>git svn rebase</tt> to update your work branch instead of <tt>git pull</tt> or\r
<tt>git merge</tt>. <tt>pull</tt>/`merge' can cause non-linear history to be flattened\r
when committing into SVN, which can lead to merge commits reversing\r
-previous commits in SVN.</p>\r
+previous commits in SVN.</p></div>\r
</div>\r
-<h2>DESIGN PHILOSOPHY</h2>\r
+<h2 id="_design_philosophy">DESIGN PHILOSOPHY</h2>\r
<div class="sectionbody">\r
-<p>Merge tracking in Subversion is lacking and doing branched development\r
-with Subversion can be cumbersome as a result. While <tt>git-svn</tt> can track\r
+<div class="para"><p>Merge tracking in Subversion is lacking and doing branched development\r
+with Subversion can be cumbersome as a result. While <em>git-svn</em> can track\r
copy history (including branches and tags) for repositories adopting a\r
standard layout, it cannot yet represent merge history that happened\r
inside git back upstream to SVN users. Therefore it is advised that\r
users keep history as linear as possible inside git to ease\r
-compatibility with SVN (see the CAVEATS section below).</p>\r
+compatibility with SVN (see the CAVEATS section below).</p></div>\r
</div>\r
-<h2>CAVEATS</h2>\r
+<h2 id="_caveats">CAVEATS</h2>\r
<div class="sectionbody">\r
-<p>For the sake of simplicity and interoperating with a less-capable system\r
-(SVN), it is recommended that all <tt>git-svn</tt> users clone, fetch and dcommit\r
-directly from the SVN server, and avoid all <tt>git-clone</tt>/<tt>pull</tt>/<tt>merge</tt>/<tt>push</tt>\r
+<div class="para"><p>For the sake of simplicity and interoperating with a less-capable system\r
+(SVN), it is recommended that all <em>git-svn</em> users clone, fetch and dcommit\r
+directly from the SVN server, and avoid all <em>git-clone</em>/<em>pull</em>/<em>merge</em>/<em>push</em>\r
operations between git repositories and branches. The recommended\r
method of exchanging code between git branches and users is\r
-<tt>git-format-patch</tt> and <tt>git-am</tt>, or just 'dcommit'ing to the SVN repository.</p>\r
-<p>Running <tt>git-merge</tt> or <tt>git-pull</tt> is NOT recommended on a branch you\r
+<em>git-format-patch</em> and <em>git-am</em>, or just 'dcommit'ing to the SVN repository.</p></div>\r
+<div class="para"><p>Running <em>git-merge</em> or <em>git-pull</em> is NOT recommended on a branch you\r
plan to <em>dcommit</em> from. Subversion does not represent merges in any\r
reasonable or useful fashion; so users using Subversion cannot see any\r
merges you've made. Furthermore, if you merge or pull from a git branch\r
that is a mirror of an SVN branch, <em>dcommit</em> may commit to the wrong\r
-branch.</p>\r
-<p><tt>git-clone</tt> does not clone branches under the refs/remotes/ hierarchy or\r
-any <tt>git-svn</tt> metadata, or config. So repositories created and managed with\r
-using <tt>git-svn</tt> should use <tt>rsync</tt> for cloning, if cloning is to be done\r
-at all.</p>\r
-<p>Since <em>dcommit</em> uses rebase internally, any git branches you <tt>git-push</tt> to\r
+branch.</p></div>\r
+<div class="para"><p><em>git-clone</em> does not clone branches under the refs/remotes/ hierarchy or\r
+any <em>git-svn</em> metadata, or config. So repositories created and managed with\r
+using <em>git-svn</em> should use <em>rsync</em> for cloning, if cloning is to be done\r
+at all.</p></div>\r
+<div class="para"><p>Since <em>dcommit</em> uses rebase internally, any git branches you <em>git-push</em> to\r
before <em>dcommit</em> on will require forcing an overwrite of the existing ref\r
on the remote repository. This is generally considered bad practice,\r
-see the <a href="git-push.html">git-push(1)</a> documentation for details.</p>\r
-<p>Do not use the --amend option of <a href="git-commit.html">git-commit(1)</a> on a change you've\r
+see the <a href="git-push.html">git-push(1)</a> documentation for details.</p></div>\r
+<div class="para"><p>Do not use the --amend option of <a href="git-commit.html">git-commit(1)</a> on a change you've\r
already dcommitted. It is considered bad practice to --amend commits\r
you've already pushed to a remote repository for other users, and\r
-dcommit with SVN is analogous to that.</p>\r
+dcommit with SVN is analogous to that.</p></div>\r
</div>\r
-<h2>BUGS</h2>\r
+<h2 id="_bugs">BUGS</h2>\r
<div class="sectionbody">\r
-<p>We ignore all SVN properties except svn:executable. Any unhandled\r
-properties are logged to $GIT_DIR/svn/<refname>/unhandled.log</p>\r
-<p>Renamed and copied directories are not detected by git and hence not\r
+<div class="para"><p>We ignore all SVN properties except svn:executable. Any unhandled\r
+properties are logged to $GIT_DIR/svn/<refname>/unhandled.log</p></div>\r
+<div class="para"><p>Renamed and copied directories are not detected by git and hence not\r
tracked when committing to SVN. I do not plan on adding support for\r
this as it's quite difficult and time-consuming to get working for all\r
the possible corner cases (git doesn't do it, either). Committing\r
renamed and copied files are fully supported if they're similar enough\r
-for git to detect them.</p>\r
+for git to detect them.</p></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<p><tt>git-svn</tt> stores [svn-remote] configuration information in the\r
+<div class="para"><p><em>git-svn</em> stores [svn-remote] configuration information in the\r
repository .git/config file. It is similar the core git\r
[remote] sections except <em>fetch</em> keys do not accept glob\r
arguments; but they are instead handled by the <em>branches</em>\r
and <em>tags</em> keys. Since some SVN repositories are oddly\r
configured with multiple projects glob expansions such those\r
-listed below are allowed:</p>\r
+listed below are allowed:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[svn-remote "project-a"]\r
tags = tags/*/project-a:refs/remotes/project-a/tags/*\r
trunk = trunk/project-a:refs/remotes/project-a/trunk</tt></pre>\r
</div></div>\r
-<p>Keep in mind that the <em><strong></em> (asterisk) wildcard of the local ref\r
+<div class="para"><p>Keep in mind that the <em><strong></em> (asterisk) wildcard of the local ref\r
(right of the <em>:</em>) *must</strong> be the farthest right path component;\r
however the remote wildcard may be anywhere as long as it's own\r
independent path component (surrounded by <em>/</em> or EOL). This\r
type of configuration is not automatically created by <em>init</em> and\r
-should be manually entered with a text-editor or using <tt>git-config</tt>.</p>\r
+should be manually entered with a text-editor or using <em>git-config</em>.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-rebase.html">git-rebase(1)</a></p>\r
+<div class="para"><p><a href="git-rebase.html">git-rebase(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Eric Wong <normalperson@yhbt.net>.</p>\r
+<div class="para"><p>Written by Eric Wong <normalperson@yhbt.net>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Written by Eric Wong <normalperson@yhbt.net>.</p>\r
+<div class="para"><p>Written by Eric Wong <normalperson@yhbt.net>.</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:04 UTC\r
+Last updated 2008-07-06 05:17:04 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-`git-svn` is a simple conduit for changesets between Subversion and git.
+'git-svn' is a simple conduit for changesets between Subversion and git.
It is not to be confused with linkgit:git-svnimport[1], which is
read-only.
-`git-svn` was originally designed for an individual developer who wants a
+'git-svn' was originally designed for an individual developer who wants a
bidirectional flow of changesets between a single branch in Subversion
and an arbitrary number of branches in git. Since its inception,
-`git-svn` has gained the ability to track multiple branches in a manner
-similar to `git-svnimport`.
+'git-svn' has gained the ability to track multiple branches in a manner
+similar to 'git-svnimport'.
-`git-svn` is especially useful when it comes to tracking repositories
+'git-svn' is especially useful when it comes to tracking repositories
not organized in the way Subversion developers recommend (trunk,
branches, tags directories).
'init'::
Initializes an empty git repository with additional
- metadata directories for `git-svn`. The Subversion URL
+ metadata directories for 'git-svn'. The Subversion URL
may be specified as a command-line argument, or as full
URL arguments to -T/-t/-b. Optionally, the target
directory to operate on can be specified as a second
This fetches revisions from the SVN parent of the current HEAD
and rebases the current (uncommitted to SVN) work against it.
-This works similarly to `svn update` or `git-pull` except that
-it preserves linear history with `git-rebase` instead of
-`git-merge` for ease of dcommiting with `git-svn`.
+This works similarly to `svn update` or 'git-pull' except that
+it preserves linear history with 'git-rebase' instead of
+'git-merge' for ease of dcommiting with 'git-svn'.
-This accepts all options that `git-svn fetch` and `git-rebase`
+This accepts all options that 'git-svn fetch' and 'git-rebase'
accept. However, '--fetch-all' only fetches from the current
[svn-remote], and not all [svn-remote] definitions.
-Like `git-rebase`; this requires that the working tree be clean
+Like 'git-rebase'; this requires that the working tree be clean
and have no uncommitted changes.
-l;;
--local;;
- Do not fetch remotely; only run `git-rebase` against the
+ Do not fetch remotely; only run 'git-rebase' against the
last fetched commit from the upstream SVN.
'dcommit'::
repository, and then rebase or reset (depending on whether or
not there is a diff between SVN and head). This will create
a revision in SVN for each commit in git.
- It is recommended that you run `git-svn` fetch and rebase (not
+ It is recommended that you run 'git-svn' fetch and rebase (not
pull or merge) your commits against the latest changes in the
SVN repository.
An optional command-line argument may be specified as an
client converts the UTC time to the local time (or based on the TZ=
environment). This command has the same behaviour.
+
-Any other arguments are passed directly to `git-log`
+Any other arguments are passed directly to 'git-log'
'blame'::
Show what revision and author last modified each line of a file. The
`svn blame' by default. Like the SVN blame command,
local uncommitted changes in the working copy are ignored;
the version of the file in the HEAD revision is annotated. Unknown
- arguments are passed directly to `git-blame`.
+ arguments are passed directly to 'git-blame'.
+
--git-format;;
- Produce output in the same format as `git-blame`, but with
+ Produce output in the same format as 'git-blame', but with
SVN revision numbers instead of git commit hashes. In this mode,
changes that haven't been committed to SVN (including local
working-copy edits) are shown as revision 0.
absolutely no attempts to do patching when committing to SVN, it
simply overwrites files with those specified in the tree or
commit. All merging is assumed to have taken place
- independently of `git-svn` functions.
+ independently of 'git-svn' functions.
'create-ignore'::
Recursively finds the svn:ignore property on directories and
'commit-diff'::
Commits the diff of two tree-ish arguments from the
command-line. This command is intended for interoperability with
- `git-svnimport` and does not rely on being inside an `git-svn
+ 'git-svnimport' and does not rely on being inside an `git-svn
init`-ed repository. This command takes three arguments, (a) the
original tree to diff against, (b) the new tree result, (c) the
URL of the target Subversion repository. The final argument
- (URL) may be omitted if you are working from a `git-svn`-aware
- repository (that has been `init`-ed with `git-svn`).
+ (URL) may be omitted if you are working from a 'git-svn'-aware
+ repository (that has been `init`-ed with 'git-svn').
The -r<revision> option is required for this.
'info'::
--shared[={false|true|umask|group|all|world|everybody}]::
--template=<template_directory>::
Only used with the 'init' command.
- These are passed directly to `git-init`.
+ These are passed directly to 'git-init'.
-r <ARG>::
--revision <ARG>::
Read a list of commits from stdin and commit them in reverse
order. Only the leading sha1 is read from each line, so
-`git-rev-list --pretty=oneline` output can be used.
+'git-rev-list --pretty=oneline' output can be used.
--rmdir::
Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
-They are both passed directly to `git-diff-tree`; see
+They are both passed directly to 'git-diff-tree'; see
linkgit:git-diff-tree[1] for more information.
[verse]
-A<filename>::
--authors-file=<filename>::
-Syntax is compatible with the files used by `git-svnimport` and
-`git-cvsimport`:
+Syntax is compatible with the files used by 'git-svnimport' and
+'git-cvsimport':
------------------------------------------------------------------------
loginname = Joe User <user@example.com>
------------------------------------------------------------------------
-If this option is specified and `git-svn` encounters an SVN
-committer name that does not exist in the authors-file, `git-svn`
+If this option is specified and 'git-svn' encounters an SVN
+committer name that does not exist in the authors-file, 'git-svn'
will abort operation. The user will then have to add the
-appropriate entry. Re-running the previous `git-svn` command
+appropriate entry. Re-running the previous 'git-svn' command
after the authors-file is modified should continue operation.
config key: svn.authorsfile
-q::
--quiet::
- Make `git-svn` less verbose.
+ Make 'git-svn' less verbose.
--repack[=<n>]::
--repack-flags=<flags>::
to fetch before repacking. This defaults to repacking every
1000 commits fetched if no argument is specified.
---repack-flags are passed directly to `git-repack`.
+--repack-flags are passed directly to 'git-repack'.
[verse]
config key: svn.repack
These are only used with the 'dcommit' and 'rebase' commands.
-Passed directly to `git-rebase` when using 'dcommit' if a
-`git-reset` cannot be used (see 'dcommit').
+Passed directly to 'git-rebase' when using 'dcommit' if a
+'git-reset' cannot be used (see 'dcommit').
-n::
--dry-run::
This gets rid of the 'git-svn-id:' lines at the end of every commit.
-If you lose your .git/svn/git-svn/.rev_db file, `git-svn` will not
+If you lose your .git/svn/git-svn/.rev_db file, 'git-svn' will not
be able to rebuild it and you won't be able to fetch again,
either. This is fine for one-shot imports.
-The `git-svn log` command will not work on repositories using
+The 'git-svn log' command will not work on repositories using
this, either. Using this conflicts with the 'useSvmProps'
option for (hopefully) obvious reasons.
svn.useSvmProps::
svn-remote.<name>.useSvmProps::
-This allows `git-svn` to re-map repository URLs and UUIDs from
+This allows 'git-svn' to re-map repository URLs and UUIDs from
mirrors created using SVN::Mirror (or svk) for metadata.
If an SVN revision has a property, "svm:headrev", it is likely
svn-remote.<name>.rewriteRoot::
This allows users to create repositories from alternate
- URLs. For example, an administrator could run `git-svn` on the
+ URLs. For example, an administrator could run 'git-svn' on the
server locally (accessing via file://) but wish to distribute
the repository with a public http:// or svn:// URL in the
metadata so users of it will see the public URL.
--
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
-options all affect the metadata generated and used by `git-svn`; they
+options all affect the metadata generated and used by 'git-svn'; they
*must* be set in the configuration file before any history is imported
and these settings should never be changed once they are set.
# of dcommit/rebase/show-ignore should be the same as above.
------------------------------------------------------------------------
-The initial `git-svn clone` can be quite time-consuming
+The initial 'git-svn clone' can be quite time-consuming
(especially for large Subversion repositories). If multiple
people (or one person with multiple machines) want to use
-`git-svn` to interact with the same Subversion repository, you can
-do the initial `git-svn clone` to a repository on a server and
-have each person clone that repository with `git-clone`:
+'git-svn' to interact with the same Subversion repository, you can
+do the initial 'git-svn clone' to a repository on a server and
+have each person clone that repository with 'git-clone':
------------------------------------------------------------------------
# Do the initial import on a server
REBASE VS. PULL/MERGE
---------------------
-Originally, `git-svn` recommended that the 'remotes/git-svn' branch be
+Originally, 'git-svn' recommended that the 'remotes/git-svn' branch be
pulled or merged from. This is because the author favored
`git svn set-tree B` to commit a single head rather than the
`git svn set-tree A..B` notation to commit multiple commits.
DESIGN PHILOSOPHY
-----------------
Merge tracking in Subversion is lacking and doing branched development
-with Subversion can be cumbersome as a result. While `git-svn` can track
+with Subversion can be cumbersome as a result. While 'git-svn' can track
copy history (including branches and tags) for repositories adopting a
standard layout, it cannot yet represent merge history that happened
inside git back upstream to SVN users. Therefore it is advised that
-------
For the sake of simplicity and interoperating with a less-capable system
-(SVN), it is recommended that all `git-svn` users clone, fetch and dcommit
-directly from the SVN server, and avoid all `git-clone`/`pull`/`merge`/`push`
+(SVN), it is recommended that all 'git-svn' users clone, fetch and dcommit
+directly from the SVN server, and avoid all 'git-clone'/'pull'/'merge'/'push'
operations between git repositories and branches. The recommended
method of exchanging code between git branches and users is
-`git-format-patch` and `git-am`, or just 'dcommit'ing to the SVN repository.
+'git-format-patch' and 'git-am', or just 'dcommit'ing to the SVN repository.
-Running `git-merge` or `git-pull` is NOT recommended on a branch you
+Running 'git-merge' or 'git-pull' is NOT recommended on a branch you
plan to 'dcommit' from. Subversion does not represent merges in any
reasonable or useful fashion; so users using Subversion cannot see any
merges you've made. Furthermore, if you merge or pull from a git branch
that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
branch.
-`git-clone` does not clone branches under the refs/remotes/ hierarchy or
-any `git-svn` metadata, or config. So repositories created and managed with
-using `git-svn` should use `rsync` for cloning, if cloning is to be done
+'git-clone' does not clone branches under the refs/remotes/ hierarchy or
+any 'git-svn' metadata, or config. So repositories created and managed with
+using 'git-svn' should use 'rsync' for cloning, if cloning is to be done
at all.
-Since 'dcommit' uses rebase internally, any git branches you `git-push` to
+Since 'dcommit' uses rebase internally, any git branches you 'git-push' to
before 'dcommit' on will require forcing an overwrite of the existing ref
on the remote repository. This is generally considered bad practice,
see the linkgit:git-push[1] documentation for details.
CONFIGURATION
-------------
-`git-svn` stores [svn-remote] configuration information in the
+'git-svn' stores [svn-remote] configuration information in the
repository .git/config file. It is similar the core git
[remote] sections except 'fetch' keys do not accept glob
arguments; but they are instead handled by the 'branches'
however the remote wildcard may be anywhere as long as it's own
independent path component (surrounded by '/' or EOL). This
type of configuration is not automatically created by 'init' and
-should be manually entered with a text-editor or using `git-config`.
+should be manually entered with a text-editor or using 'git-config'.
SEE ALSO
--------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-symbolic-ref(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git symbolic-ref</em> [-q] [-m <reason>] <name> [<ref>]</p>\r
+<div class="para"><p><em>git symbolic-ref</em> [-q] [-m <reason>] <name> [<ref>]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Given one argument, reads which branch head the given symbolic\r
+<div class="para"><p>Given one argument, reads which branch head the given symbolic\r
ref refers to and outputs its path, relative to the <tt>.git/</tt>\r
directory. Typically you would give <tt>HEAD</tt> as the <name>\r
-argument to see on which branch your working tree is on.</p>\r
-<p>Give two arguments, create or update a symbolic ref <name> to\r
-point at the given branch <ref>.</p>\r
-<p>A symbolic ref is a regular file that stores a string that\r
+argument to see on which branch your working tree is on.</p></div>\r
+<div class="para"><p>Give two arguments, create or update a symbolic ref <name> to\r
+point at the given branch <ref>.</p></div>\r
+<div class="para"><p>A symbolic ref is a regular file that stores a string that\r
begins with <tt>ref: refs/</tt>. For example, your <tt>.git/HEAD</tt> is\r
-a regular file whose contents is <tt>ref: refs/heads/master</tt>.</p>\r
+a regular file whose contents is <tt>ref: refs/heads/master</tt>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-q\r
</dt>\r
when creating or updating a symbolic ref.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>NOTES</h2>\r
+<h2 id="_notes">NOTES</h2>\r
<div class="sectionbody">\r
-<p>In the past, <tt>.git/HEAD</tt> was a symbolic link pointing at\r
+<div class="para"><p>In the past, <tt>.git/HEAD</tt> was a symbolic link pointing at\r
<tt>refs/heads/master</tt>. When we wanted to switch to another branch,\r
we did <tt>ln -sf refs/heads/newbranch .git/HEAD</tt>, and when we wanted\r
to find out which branch we are on, we did <tt>readlink .git/HEAD</tt>.\r
or that do not have the <tt>readlink(1)</tt> command, this was a bit\r
cumbersome. On some platforms, <tt>ln -sf</tt> does not even work as\r
advertised (horrors). Therefore symbolic links are now deprecated\r
-and symbolic refs are used by default.</p>\r
-<p><tt>git-symbolic-ref</tt> will exit with status 0 if the contents of the\r
+and symbolic refs are used by default.</p></div>\r
+<div class="para"><p><em>git-symbolic-ref</em> will exit with status 0 if the contents of the\r
symbolic ref were printed correctly, with status 1 if the requested\r
-name is not a symbolic ref, or 128 if another error occurs.</p>\r
+name is not a symbolic ref, or 128 if another error occurs.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:04 UTC\r
+Last updated 2008-07-06 05:17:05 UTC\r
</div>\r
</div>\r
</body>\r
advertised (horrors). Therefore symbolic links are now deprecated
and symbolic refs are used by default.
-`git-symbolic-ref` will exit with status 0 if the contents of the
+'git-symbolic-ref' will exit with status 0 if the contents of the
symbolic ref were printed correctly, with status 1 if the requested
name is not a symbolic ref, or 128 if another error occurs.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-tag(1)</title>\r
</head>\r
<em>git tag</em> [-n[<num>]] -l [<pattern>]\r
<em>git tag</em> -v <name>…</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Adds a <em>tag</em> reference in <tt>.git/refs/tags/</tt></p>\r
-<p>Unless <tt>-f</tt> is given, the tag must not yet exist in\r
-<tt>.git/refs/tags/</tt> directory.</p>\r
-<p>If one of <tt>-a</tt>, <tt>-s</tt>, or <tt>-u <key-id></tt> is passed, the command\r
+<div class="para"><p>Adds a <em>tag</em> reference in <tt>.git/refs/tags/</tt></p></div>\r
+<div class="para"><p>Unless <tt>-f</tt> is given, the tag must not yet exist in\r
+<tt>.git/refs/tags/</tt> directory.</p></div>\r
+<div class="para"><p>If one of <tt>-a</tt>, <tt>-s</tt>, or <tt>-u <key-id></tt> is passed, the command\r
creates a <em>tag</em> object, and requires the tag message. Unless\r
<tt>-m <msg></tt> or <tt>-F <file></tt> is given, an editor is started for the user to type\r
-in the tag message.</p>\r
-<p>If <tt>-m <msg></tt> or <tt>-F <file></tt> is given and <tt>-a</tt>, <tt>-s</tt>, and <tt>-u <key-id></tt>\r
-are absent, <tt>-a</tt> is implied.</p>\r
-<p>Otherwise just the SHA1 object name of the commit object is\r
-written (i.e. a lightweight tag).</p>\r
-<p>A GnuPG signed tag object will be created when <tt>-s</tt> or <tt>-u\r
+in the tag message.</p></div>\r
+<div class="para"><p>If <tt>-m <msg></tt> or <tt>-F <file></tt> is given and <tt>-a</tt>, <tt>-s</tt>, and <tt>-u <key-id></tt>\r
+are absent, <tt>-a</tt> is implied.</p></div>\r
+<div class="para"><p>Otherwise just the SHA1 object name of the commit object is\r
+written (i.e. a lightweight tag).</p></div>\r
+<div class="para"><p>A GnuPG signed tag object will be created when <tt>-s</tt> or <tt>-u\r
<key-id></tt> is used. When <tt>-u <key-id></tt> is not used, the\r
committer identity for the current user is used to find the\r
-GnuPG key for signing.</p>\r
+GnuPG key for signing.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-a\r
</dt>\r
is given.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<p>By default, <tt>git-tag</tt> in sign-with-default mode (-s) will use your\r
+<div class="para"><p>By default, <em>git-tag</em> in sign-with-default mode (-s) will use your\r
committer identity (of the form "Your Name <your@email.address>") to\r
find a key. If you want to use a different default key, you can specify\r
-it in the repository configuration as follows:</p>\r
+it in the repository configuration as follows:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[user]\r
signingkey = <gpg-key-id></tt></pre>\r
</div></div>\r
</div>\r
-<h2>DISCUSSION</h2>\r
+<h2 id="_discussion">DISCUSSION</h2>\r
<div class="sectionbody">\r
-<h3>On Re-tagging</h3>\r
-<p>What should you do when you tag a wrong commit and you would\r
-want to re-tag?</p>\r
-<p>If you never pushed anything out, just re-tag it. Use "-f" to\r
-replace the old one. And you're done.</p>\r
-<p>But if you have pushed things out (or others could just read\r
+<h3 id="_on_re_tagging">On Re-tagging</h3><div style="clear:left"></div>\r
+<div class="para"><p>What should you do when you tag a wrong commit and you would\r
+want to re-tag?</p></div>\r
+<div class="para"><p>If you never pushed anything out, just re-tag it. Use "-f" to\r
+replace the old one. And you're done.</p></div>\r
+<div class="para"><p>But if you have pushed things out (or others could just read\r
your repository directly), then others will have already seen\r
-the old tag. In that case you can do one of two things:</p>\r
-<ol>\r
+the old tag. In that case you can do one of two things:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
The sane thing.\r
<p>\r
The insane thing.\r
You really want to call the new version "X" too, <em>even though</em>\r
-others have already seen the old one. So just use <tt>git-tag -f</tt>\r
+others have already seen the old one. So just use <em>git-tag -f</em>\r
again, as if you hadn't already published the old one.\r
</p>\r
</li>\r
-</ol>\r
-<p>However, Git does <strong>not</strong> (and it should not) change tags behind\r
+</ol></div>\r
+<div class="para"><p>However, Git does <strong>not</strong> (and it should not) change tags behind\r
users back. So if somebody already got the old tag, doing a\r
-<tt>git-pull</tt> on your tree shouldn't just make them overwrite the old\r
-one.</p>\r
-<p>If somebody got a release tag from you, you cannot just change\r
+<em>git-pull</em> on your tree shouldn't just make them overwrite the old\r
+one.</p></div>\r
+<div class="para"><p>If somebody got a release tag from you, you cannot just change\r
the tag for them by updating your own one. This is a big\r
security issue, in that people MUST be able to trust their\r
tag-names. If you really want to do the insane thing, you need\r
to just fess up to it, and tell people that you messed up. You\r
-can do that by making a very public announcement saying:</p>\r
+can do that by making a very public announcement saying:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Ok, I messed up, and I pushed out an earlier version tagged as X. I\r
\r
Sorry for inconvenience.</tt></pre>\r
</div></div>\r
-<p>Does this seem a bit complicated? It <strong>should</strong> be. There is no\r
+<div class="para"><p>Does this seem a bit complicated? It <strong>should</strong> be. There is no\r
way that it would be correct to just "fix" it behind peoples\r
backs. People need to know that their tags might have been\r
-changed.</p>\r
-<h3>On Automatic following</h3>\r
-<p>If you are following somebody else's tree, you are most likely\r
+changed.</p></div>\r
+<h3 id="_on_automatic_following">On Automatic following</h3><div style="clear:left"></div>\r
+<div class="para"><p>If you are following somebody else's tree, you are most likely\r
using tracking branches (<tt>refs/heads/origin</tt> in traditional\r
layout, or <tt>refs/remotes/origin/master</tt> in the separate-remote\r
-layout). You usually want the tags from the other end.</p>\r
-<p>On the other hand, if you are fetching because you would want a\r
+layout). You usually want the tags from the other end.</p></div>\r
+<div class="para"><p>On the other hand, if you are fetching because you would want a\r
one-shot merge from somebody else, you typically do not want to\r
get tags from there. This happens more often for people near\r
the toplevel but not limited to them. Mere mortals when pulling\r
from each other do not necessarily want to automatically get\r
-private anchor point tags from the other person.</p>\r
-<p>You would notice "please pull" messages on the mailing list says\r
+private anchor point tags from the other person.</p></div>\r
+<div class="para"><p>You would notice "please pull" messages on the mailing list says\r
repo URL and branch name alone. This is designed to be easily\r
-cut&pasted to a <tt>git-fetch</tt> command line:</p>\r
+cut&pasted to a <em>git-fetch</em> command line:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Linus, please pull from\r
\r
to get the following updates...</tt></pre>\r
</div></div>\r
-<p>becomes:</p>\r
+<div class="para"><p>becomes:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git pull git://git..../proj.git master</tt></pre>\r
</div></div>\r
-<p>In such a case, you do not want to automatically follow other's\r
-tags.</p>\r
-<p>One important aspect of git is it is distributed, and being\r
+<div class="para"><p>In such a case, you do not want to automatically follow other's\r
+tags.</p></div>\r
+<div class="para"><p>One important aspect of git is it is distributed, and being\r
distributed largely means there is no inherent "upstream" or\r
"downstream" in the system. On the face of it, the above\r
example might seem to indicate that the tag namespace is owned\r
by upper echelon of people and tags only flow downwards, but\r
that is not the case. It only shows that the usage pattern\r
-determines who are interested in whose tags.</p>\r
-<p>A one-shot pull is a sign that a commit history is now crossing\r
+determines who are interested in whose tags.</p></div>\r
+<div class="para"><p>A one-shot pull is a sign that a commit history is now crossing\r
the boundary between one circle of people (e.g. "people who are\r
primarily interested in networking part of the kernel") who may\r
have their own set of tags (e.g. "this is the third release\r
The latter are usually not interested in the detailed tags used\r
internally in the former group (that is what "internal" means).\r
That is why it is desirable not to follow tags automatically in\r
-this case.</p>\r
-<p>It may well be that among networking people, they may want to\r
+this case.</p></div>\r
+<div class="para"><p>It may well be that among networking people, they may want to\r
exchange the tags internal to their group, but in that workflow\r
they are most likely tracking with each other's progress by\r
having tracking branches. Again, the heuristic to automatically\r
-follow such tags is a good thing.</p>\r
-<h3>On Backdating Tags</h3>\r
-<p>If you have imported some changes from another VCS and would like\r
+follow such tags is a good thing.</p></div>\r
+<h3 id="_on_backdating_tags">On Backdating Tags</h3><div style="clear:left"></div>\r
+<div class="para"><p>If you have imported some changes from another VCS and would like\r
to add tags for major releases of your work, it is useful to be able\r
to specify the date to embed inside of the tag object. The data in\r
the tag object affects, for example, the ordering of tags in the\r
-gitweb interface.</p>\r
-<p>To set the date used in future tag objects, set the environment\r
+gitweb interface.</p></div>\r
+<div class="para"><p>To set the date used in future tag objects, set the environment\r
variable GIT_COMMITTER_DATE to one or more of the date and time. The\r
date and time can be specified in a number of ways; the most common\r
-is "YYYY-MM-DD HH:MM".</p>\r
-<p>An example follows.</p>\r
+is "YYYY-MM-DD HH:MM".</p></div>\r
+<div class="para"><p>An example follows.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org>,\r
-Junio C Hamano <junkio@cox.net> and Chris Wright <chrisw@osdl.org>.</p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org>,\r
+Junio C Hamano <junkio@cox.net> and Chris Wright <chrisw@osdl.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:05 UTC\r
+Last updated 2008-07-06 05:17:05 UTC\r
</div>\r
</div>\r
</body>\r
CONFIGURATION
-------------
-By default, `git-tag` in sign-with-default mode (-s) will use your
+By default, 'git-tag' in sign-with-default mode (-s) will use your
committer identity (of the form "Your Name <your@email.address>") to
find a key. If you want to use a different default key, you can specify
it in the repository configuration as follows:
. The insane thing.
You really want to call the new version "X" too, 'even though'
-others have already seen the old one. So just use `git-tag -f`
+others have already seen the old one. So just use 'git-tag -f'
again, as if you hadn't already published the old one.
However, Git does *not* (and it should not) change tags behind
users back. So if somebody already got the old tag, doing a
-`git-pull` on your tree shouldn't just make them overwrite the old
+'git-pull' on your tree shouldn't just make them overwrite the old
one.
If somebody got a release tag from you, you cannot just change
You would notice "please pull" messages on the mailing list says
repo URL and branch name alone. This is designed to be easily
-cut&pasted to a `git-fetch` command line:
+cut&pasted to a 'git-fetch' command line:
------------
Linus, please pull from
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-tar-tree(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git tar-tree</em> [--remote=<repo>] <tree-ish> [ <base> ]</p>\r
+<div class="para"><p><em>git tar-tree</em> [--remote=<repo>] <tree-ish> [ <base> ]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>THIS COMMAND IS DEPRECATED. Use <tt>git-archive</tt> with <tt>--format=tar</tt>\r
-option instead (and move the <base> argument to <tt>--prefix=base/</tt>).</p>\r
-<p>Creates a tar archive containing the tree structure for the named tree.\r
+<div class="para"><p>THIS COMMAND IS DEPRECATED. Use <em>git-archive</em> with <tt>--format=tar</tt>\r
+option instead (and move the <base> argument to <tt>--prefix=base/</tt>).</p></div>\r
+<div class="para"><p>Creates a tar archive containing the tree structure for the named tree.\r
When <base> is specified it is added as a leading path to the files in the\r
-generated tar archive.</p>\r
-<p><tt>git-tar-tree</tt> behaves differently when given a tree ID versus when given\r
+generated tar archive.</p></div>\r
+<div class="para"><p><em>git-tar-tree</em> behaves differently when given a tree ID versus when given\r
a commit ID or tag ID. In the first case the current time is used as\r
modification time of each file in the archive. In the latter case the\r
commit time as recorded in the referenced commit object is used instead.\r
Additionally the commit ID is stored in a global extended pax header.\r
-It can be extracted using <tt>git-get-tar-commit-id</tt>.</p>\r
+It can be extracted using <em>git-get-tar-commit-id</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<tree-ish>\r
</dt>\r
retrieve a tar archive from a remote repository.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION</h2>\r
+<h2 id="_configuration">CONFIGURATION</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
tar.umask\r
</dt>\r
details.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLES</h2>\r
+<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git tar-tree HEAD junk | (cd /var/tmp/ && tar xf -)\r
</dt>\r
into <em>git-1.4.0-docs.tar</em>, with the prefix <em>git-docs/</em>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Rene Scharfe.</p>\r
+<div class="para"><p>Written by Rene Scharfe.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:05 UTC\r
+Last updated 2008-07-06 05:17:06 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-THIS COMMAND IS DEPRECATED. Use `git-archive` with `--format=tar`
+THIS COMMAND IS DEPRECATED. Use 'git-archive' with `--format=tar`
option instead (and move the <base> argument to `--prefix=base/`).
Creates a tar archive containing the tree structure for the named tree.
When <base> is specified it is added as a leading path to the files in the
generated tar archive.
-`git-tar-tree` behaves differently when given a tree ID versus when given
+'git-tar-tree' behaves differently when given a tree ID versus when given
a commit ID or tag ID. In the first case the current time is used as
modification time of each file in the archive. In the latter case the
commit time as recorded in the referenced commit object is used instead.
Additionally the commit ID is stored in a global extended pax header.
-It can be extracted using `git-get-tar-commit-id`.
+It can be extracted using 'git-get-tar-commit-id'.
OPTIONS
-------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-update-index(1)</title>\r
</head>\r
[--verbose]\r
[--] [<file>]*</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Modifies the index or directory cache. Each file mentioned is updated\r
+<div class="para"><p>Modifies the index or directory cache. Each file mentioned is updated\r
into the index and any <em>unmerged</em> or <em>needs updating</em> state is\r
-cleared.</p>\r
-<p>See also <a href="git-add.html">git-add(1)</a> for a more user-friendly way to do some of\r
-the most common operations on the index.</p>\r
-<p>The way <tt>git-update-index</tt> handles files it is told about can be modified\r
-using the various options:</p>\r
+cleared.</p></div>\r
+<div class="para"><p>See also <a href="git-add.html">git-add(1)</a> for a more user-friendly way to do some of\r
+the most common operations on the index.</p></div>\r
+<div class="para"><p>The way <em>git-update-index</em> handles files it is told about can be modified\r
+using the various options:</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--add\r
</dt>\r
<p>\r
Quiet. If --refresh finds that the index needs an update, the\r
default behavior is to error out. This option makes\r
- <tt>git-update-index</tt> continue anyway.\r
+ <em>git-update-index</em> continue anyway.\r
</p>\r
</dd>\r
-</dl>\r
-<p>--ignore-submodules:\r
+</dl></div>\r
+<div class="para"><p>--ignore-submodules:\r
Do not try to update submodules. This option is only respected\r
- when passed before --refresh.</p>\r
-<dl>\r
+ when passed before --refresh.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
--unmerged\r
</dt>\r
<dd>\r
<p>\r
If --refresh finds unmerged changes in the index, the default\r
- behavior is to error out. This option makes <tt>git-update-index</tt>\r
+ behavior is to error out. This option makes <em>git-update-index</em>\r
continue anyway.\r
</p>\r
</dd>\r
</dt>\r
<dd>\r
<p>\r
- Runs <tt>git-update-index</tt> itself on the paths whose index\r
+ Runs <em>git-update-index</em> itself on the paths whose index\r
entries are different from those from the <tt>HEAD</tt> commit.\r
</p>\r
</dd>\r
<dd>\r
<p>\r
By default, when a file <tt>path</tt> exists in the index,\r
- <tt>git-update-index</tt> refuses an attempt to add <tt>path/file</tt>.\r
+ <em>git-update-index</em> refuses an attempt to add <tt>path/file</tt>.\r
Similarly if a file <tt>path/file</tt> exists, a file <tt>path</tt>\r
cannot be added. With --replace flag, existing entries\r
that conflicts with the entry being added are\r
The same applies to directories ending <em>/</em> and paths with <em>//</em>\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Using --refresh</h2>\r
+<h2 id="_using_refresh">Using --refresh</h2>\r
<div class="sectionbody">\r
-<p><em>--refresh</em> does not calculate a new sha1 file or bring the index\r
+<div class="para"><p><em>--refresh</em> does not calculate a new sha1 file or bring the index\r
up-to-date for mode/content changes. But what it <strong>does</strong> do is to\r
"re-match" the stat information of a file with the index, so that you\r
can refresh the index for a file that hasn't been changed but where\r
-the stat entry is out of date.</p>\r
-<p>For example, you'd want to do this after doing a <tt>git-read-tree</tt>, to link\r
-up the stat index details with the proper files.</p>\r
+the stat entry is out of date.</p></div>\r
+<div class="para"><p>For example, you'd want to do this after doing a <em>git-read-tree</em>, to link\r
+up the stat index details with the proper files.</p></div>\r
</div>\r
-<h2>Using --cacheinfo or --info-only</h2>\r
+<h2 id="_using_cacheinfo_or_info_only">Using --cacheinfo or --info-only</h2>\r
<div class="sectionbody">\r
-<p><em>--cacheinfo</em> is used to register a file that is not in the\r
+<div class="para"><p><em>--cacheinfo</em> is used to register a file that is not in the\r
current working directory. This is useful for minimum-checkout\r
-merging.</p>\r
-<p>To pretend you have a file with mode and sha1 at path, say:</p>\r
+merging.</p></div>\r
+<div class="para"><p>To pretend you have a file with mode and sha1 at path, say:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git update-index --cacheinfo mode sha1 path</tt></pre>\r
</div></div>\r
-<p><em>--info-only</em> is used to register files without placing them in the object\r
-database. This is useful for status-only repositories.</p>\r
-<p>Both <em>--cacheinfo</em> and <em>--info-only</em> behave similarly: the index is updated\r
+<div class="para"><p><em>--info-only</em> is used to register files without placing them in the object\r
+database. This is useful for status-only repositories.</p></div>\r
+<div class="para"><p>Both <em>--cacheinfo</em> and <em>--info-only</em> behave similarly: the index is updated\r
but the object database isn't. <em>--cacheinfo</em> is useful when the object is\r
in the database but the file isn't available locally. <em>--info-only</em> is\r
useful when the file is available, but you do not wish to update the\r
-object database.</p>\r
+object database.</p></div>\r
</div>\r
-<h2>Using --index-info</h2>\r
+<h2 id="_using_index_info">Using --index-info</h2>\r
<div class="sectionbody">\r
-<p><tt>--index-info</tt> is a more powerful mechanism that lets you feed\r
+<div class="para"><p><tt>--index-info</tt> is a more powerful mechanism that lets you feed\r
multiple entry definitions from the standard input, and designed\r
-specifically for scripts. It can take inputs of three formats:</p>\r
-<ol>\r
+specifically for scripts. It can take inputs of three formats:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
mode SP sha1 TAB path\r
</p>\r
-<p>The first format is what "git-apply --index-info"\r
+<div class="para"><p>The first format is what "git-apply --index-info"\r
reports, and used to reconstruct a partial tree\r
that is used for phony merge base tree when falling\r
-back on 3-way merge.</p>\r
+back on 3-way merge.</p></div>\r
</li>\r
<li>\r
<p>\r
mode SP type SP sha1 TAB path\r
</p>\r
-<p>The second format is to stuff <tt>git-ls-tree</tt> output\r
-into the index file.</p>\r
+<div class="para"><p>The second format is to stuff <em>git-ls-tree</em> output\r
+into the index file.</p></div>\r
</li>\r
<li>\r
<p>\r
mode SP sha1 SP stage TAB path\r
</p>\r
-<p>This format is to put higher order stages into the\r
-index file and matches <tt>git-ls-files --stage</tt> output.</p>\r
+<div class="para"><p>This format is to put higher order stages into the\r
+index file and matches <em>git-ls-files --stage</em> output.</p></div>\r
</li>\r
-</ol>\r
-<p>To place a higher stage entry to the index, the path should\r
+</ol></div>\r
+<div class="para"><p>To place a higher stage entry to the index, the path should\r
first be removed by feeding a mode=0 entry for the path, and\r
-then feeding necessary input lines in the third format.</p>\r
-<p>For example, starting with this index:</p>\r
+then feeding necessary input lines in the third format.</p></div>\r
+<div class="para"><p>For example, starting with this index:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-files -s\r
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz</tt></pre>\r
</div></div>\r
-<p>you can feed the following input to <tt>--index-info</tt>:</p>\r
+<div class="para"><p>you can feed the following input to <tt>--index-info</tt>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git update-index --index-info\r
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz\r
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz</tt></pre>\r
</div></div>\r
-<p>The first line of the input feeds 0 as the mode to remove the\r
+<div class="para"><p>The first line of the input feeds 0 as the mode to remove the\r
path; the SHA1 does not matter as long as it is well formatted.\r
Then the second and third line feeds stage 1 and stage 2 entries\r
-for that path. After the above, we would end up with this:</p>\r
+for that path. After the above, we would end up with this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-files -s\r
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Using “assume unchanged” bit</h2>\r
+<h2 id="_using_8220_assume_unchanged_8221_bit">Using “assume unchanged” bit</h2>\r
<div class="sectionbody">\r
-<p>Many operations in git depend on your filesystem to have an\r
+<div class="para"><p>Many operations in git depend on your filesystem to have an\r
efficient <tt>lstat(2)</tt> implementation, so that <tt>st_mtime</tt>\r
information for working tree files can be cheaply checked to see\r
if the file contents have changed from the version recorded in\r
see if it has changed — it makes git to omit any checking and\r
assume it has <strong>not</strong> changed. When you make changes to working\r
tree files, you have to explicitly tell git about it by dropping\r
-"assume unchanged" bit, either before or after you modify them.</p>\r
-<p>In order to set "assume unchanged" bit, use <tt>--assume-unchanged</tt>\r
-option. To unset, use <tt>--no-assume-unchanged</tt>.</p>\r
-<p>The command looks at <tt>core.ignorestat</tt> configuration variable. When\r
+"assume unchanged" bit, either before or after you modify them.</p></div>\r
+<div class="para"><p>In order to set "assume unchanged" bit, use <tt>--assume-unchanged</tt>\r
+option. To unset, use <tt>--no-assume-unchanged</tt>.</p></div>\r
+<div class="para"><p>The command looks at <tt>core.ignorestat</tt> configuration variable. When\r
this is true, paths updated with <tt>git update-index paths…</tt> and\r
paths updated with other git commands that update both index and\r
-working tree (e.g. <tt>git-apply --index</tt>, <tt>git-checkout-index -u</tt>,\r
-and <tt>git-read-tree -u</tt>) are automatically marked as "assume\r
+working tree (e.g. <em>git-apply --index</em>, <em>git-checkout-index -u</em>,\r
+and <em>git-read-tree -u</em>) are automatically marked as "assume\r
unchanged". Note that "assume unchanged" bit is <strong>not</strong> set if\r
<tt>git update-index --refresh</tt> finds the working tree file matches\r
the index (use <tt>git update-index --really-refresh</tt> if you want\r
-to mark them as "assume unchanged").</p>\r
+to mark them as "assume unchanged").</p></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<p>To update and refresh only the files already checked out:</p>\r
+<div class="para"><p>To update and refresh only the files already checked out:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh</tt></pre>\r
</div></div>\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
On an inefficient filesystem with <tt>core.ignorestat</tt> set\r
</dt>\r
$ git diff --name-only <b>(9)</b>\r
M foo.c</tt></pre>\r
</div></div>\r
-<ol>\r
+<div class="colist"><ol>\r
<li>\r
<p>\r
forces lstat(2) to set "assume unchanged" bits for paths that match index.\r
now it checks with lstat(2) and finds it has been changed.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Configuration</h2>\r
+<h2 id="_configuration">Configuration</h2>\r
<div class="sectionbody">\r
-<p>The command honors <tt>core.filemode</tt> configuration variable. If\r
+<div class="para"><p>The command honors <tt>core.filemode</tt> configuration variable. If\r
your repository is on an filesystem whose executable bits are\r
unreliable, this should be set to <em>false</em> (see <a href="git-config.html">git-config(1)</a>).\r
This causes the command to ignore differences in file modes recorded\r
in the index and the file mode on the filesystem if they differ only on\r
executable bit. On such an unfortunate filesystem, you may\r
-need to use <tt>git-update-index --chmod=</tt>.</p>\r
-<p>Quite similarly, if <tt>core.symlinks</tt> configuration variable is set\r
+need to use <em>git-update-index --chmod=</em>.</p></div>\r
+<div class="para"><p>Quite similarly, if <tt>core.symlinks</tt> configuration variable is set\r
to <em>false</em> (see <a href="git-config.html">git-config(1)</a>), symbolic links are checked out\r
as plain files, and this command does not modify a recorded file mode\r
-from symbolic link to regular file.</p>\r
-<p>The command looks at <tt>core.ignorestat</tt> configuration variable. See\r
-<em>Using "assume unchanged" bit</em> section above.</p>\r
+from symbolic link to regular file.</p></div>\r
+<div class="para"><p>The command looks at <tt>core.ignorestat</tt> configuration variable. See\r
+<em>Using "assume unchanged" bit</em> section above.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-config.html">git-config(1)</a>,\r
-<a href="git-add.html">git-add(1)</a></p>\r
+<div class="para"><p><a href="git-config.html">git-config(1)</a>,\r
+<a href="git-add.html">git-add(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:06 UTC\r
+Last updated 2008-07-06 05:17:06 UTC\r
</div>\r
</div>\r
</body>\r
See also linkgit:git-add[1] for a more user-friendly way to do some of
the most common operations on the index.
-The way `git-update-index` handles files it is told about can be modified
+The way 'git-update-index' handles files it is told about can be modified
using the various options:
OPTIONS
-q::
Quiet. If --refresh finds that the index needs an update, the
default behavior is to error out. This option makes
- `git-update-index` continue anyway.
+ 'git-update-index' continue anyway.
--ignore-submodules:
Do not try to update submodules. This option is only respected
--unmerged::
If --refresh finds unmerged changes in the index, the default
- behavior is to error out. This option makes `git-update-index`
+ behavior is to error out. This option makes 'git-update-index'
continue anyway.
--ignore-missing::
-g::
--again::
- Runs `git-update-index` itself on the paths whose index
+ Runs 'git-update-index' itself on the paths whose index
entries are different from those from the `HEAD` commit.
--unresolve::
--replace::
By default, when a file `path` exists in the index,
- `git-update-index` refuses an attempt to add `path/file`.
+ 'git-update-index' refuses an attempt to add `path/file`.
Similarly if a file `path/file` exists, a file `path`
cannot be added. With --replace flag, existing entries
that conflicts with the entry being added are
can refresh the index for a file that hasn't been changed but where
the stat entry is out of date.
-For example, you'd want to do this after doing a `git-read-tree`, to link
+For example, you'd want to do this after doing a 'git-read-tree', to link
up the stat index details with the proper files.
Using --cacheinfo or --info-only
. mode SP type SP sha1 TAB path
+
-The second format is to stuff `git-ls-tree` output
+The second format is to stuff 'git-ls-tree' output
into the index file.
. mode SP sha1 SP stage TAB path
+
This format is to put higher order stages into the
-index file and matches `git-ls-files --stage` output.
+index file and matches 'git-ls-files --stage' output.
To place a higher stage entry to the index, the path should
first be removed by feeding a mode=0 entry for the path, and
The command looks at `core.ignorestat` configuration variable. When
this is true, paths updated with `git update-index paths...` and
paths updated with other git commands that update both index and
-working tree (e.g. `git-apply --index`, `git-checkout-index -u`,
-and `git-read-tree -u`) are automatically marked as "assume
+working tree (e.g. 'git-apply --index', 'git-checkout-index -u',
+and 'git-read-tree -u') are automatically marked as "assume
unchanged". Note that "assume unchanged" bit is *not* set if
`git update-index --refresh` finds the working tree file matches
the index (use `git update-index --really-refresh` if you want
This causes the command to ignore differences in file modes recorded
in the index and the file mode on the filesystem if they differ only on
executable bit. On such an unfortunate filesystem, you may
-need to use `git-update-index --chmod=`.
+need to use 'git-update-index --chmod='.
Quite similarly, if `core.symlinks` configuration variable is set
to 'false' (see linkgit:git-config[1]), symbolic links are checked out
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-upload-archive(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git upload-archive</em> <directory></p>\r
+<div class="para"><p><em>git upload-archive</em> <directory></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Invoked by <em>git-archive --remote</em> and sends a generated archive to the\r
-other end over the git protocol.</p>\r
-<p>This command is usually not invoked directly by the end user. The UI\r
-for the protocol is on the <tt>git-archive</tt> side, and the program pair\r
-is meant to be used to get an archive from a remote repository.</p>\r
+<div class="para"><p>Invoked by <em>git-archive --remote</em> and sends a generated archive to the\r
+other end over the git protocol.</p></div>\r
+<div class="para"><p>This command is usually not invoked directly by the end user. The UI\r
+for the protocol is on the <em>git-archive</em> side, and the program pair\r
+is meant to be used to get an archive from a remote repository.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<directory>\r
</dt>\r
The repository to get a tar archive from.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Franck Bui-Huu.</p>\r
+<div class="para"><p>Written by Franck Bui-Huu.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:07 UTC\r
+Last updated 2008-07-06 05:17:06 UTC\r
</div>\r
</div>\r
</body>\r
other end over the git protocol.
This command is usually not invoked directly by the end user. The UI
-for the protocol is on the `git-archive` side, and the program pair
+for the protocol is on the 'git-archive' side, and the program pair
is meant to be used to get an archive from a remote repository.
OPTIONS
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-upload-pack(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git upload-pack</em> [--strict] [--timeout=<n>] <directory></p>\r
+<div class="para"><p><em>git upload-pack</em> [--strict] [--timeout=<n>] <directory></p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Invoked by <tt>git-fetch-pack</tt>, learns what\r
-objects the other side is missing, and sends them after packing.</p>\r
-<p>This command is usually not invoked directly by the end user.\r
-The UI for the protocol is on the <tt>git-fetch-pack</tt> side, and the\r
+<div class="para"><p>Invoked by <em>git-fetch-pack</em>, learns what\r
+objects the other side is missing, and sends them after packing.</p></div>\r
+<div class="para"><p>This command is usually not invoked directly by the end user.\r
+The UI for the protocol is on the <em>git-fetch-pack</em> side, and the\r
program pair is meant to be used to pull updates from a remote\r
-repository. For push operations, see <tt>git-send-pack</tt>.</p>\r
+repository. For push operations, see <em>git-send-pack</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--strict\r
</dt>\r
The repository to sync from.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:07 UTC\r
+Last updated 2008-07-06 05:17:06 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Invoked by `git-fetch-pack`, learns what
+Invoked by 'git-fetch-pack', learns what
objects the other side is missing, and sends them after packing.
This command is usually not invoked directly by the end user.
-The UI for the protocol is on the `git-fetch-pack` side, and the
+The UI for the protocol is on the 'git-fetch-pack' side, and the
program pair is meant to be used to pull updates from a remote
-repository. For push operations, see `git-send-pack`.
+repository. For push operations, see 'git-send-pack'.
OPTIONS
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-var(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git var</em> [ -l | <variable> ]</p>\r
+<div class="para"><p><em>git var</em> [ -l | <variable> ]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Prints a git logical variable.</p>\r
+<div class="para"><p>Prints a git logical variable.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-l\r
</dt>\r
Cause the logical variables to be listed. In addition, all the\r
variables of the git configuration file .git/config are listed\r
as well. (However, the configuration variables listing functionality\r
- is deprecated in favor of <tt>git-config -l</tt>.)\r
+ is deprecated in favor of <em>git-config -l</em>.)\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>EXAMPLE</h2>\r
+<h2 id="_example">EXAMPLE</h2>\r
<div class="sectionbody">\r
<div class="literalblock">\r
<div class="content">\r
Eric W. Biederman <ebiederm@lnxi.com> 1121223278 -0600</tt></pre>\r
</div></div>\r
</div>\r
-<h2>VARIABLES</h2>\r
+<h2 id="_variables">VARIABLES</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
GIT_AUTHOR_IDENT\r
</dt>\r
The person who put a piece of code into git.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Diagnostics</h2>\r
+<h2 id="_diagnostics">Diagnostics</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
You don't exist. Go away!\r
</dt>\r
The password(5) name field is longer than a giant static buffer.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-commit-tree.html">git-commit-tree(1)</a>\r
+<div class="para"><p><a href="git-commit-tree.html">git-commit-tree(1)</a>\r
<a href="git-tag.html">git-tag(1)</a>\r
-<a href="git-config.html">git-config(1)</a></p>\r
+<a href="git-config.html">git-config(1)</a></p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Eric Biederman <ebiederm@xmission.com></p>\r
+<div class="para"><p>Written by Eric Biederman <ebiederm@xmission.com></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Eric Biederman and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Eric Biederman and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:07 UTC\r
+Last updated 2008-07-06 05:17:07 UTC\r
</div>\r
</div>\r
</body>\r
Cause the logical variables to be listed. In addition, all the
variables of the git configuration file .git/config are listed
as well. (However, the configuration variables listing functionality
- is deprecated in favor of `git-config -l`.)
+ is deprecated in favor of 'git-config -l'.)
EXAMPLE
--------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-verify-pack(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git verify-pack</em> [-v] [--] <pack>.idx …</p>\r
+<div class="para"><p><em>git verify-pack</em> [-v] [--] <pack>.idx …</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Reads given idx file for packed git archive created with the\r
-<tt>git-pack-objects</tt> command and verifies idx file and the\r
-corresponding pack file.</p>\r
+<div class="para"><p>Reads given idx file for packed git archive created with the\r
+<em>git-pack-objects</em> command and verifies idx file and the\r
+corresponding pack file.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<pack>.idx …\r
</dt>\r
Do not interpret any more arguments as options.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>OUTPUT FORMAT</h2>\r
+<h2 id="_output_format">OUTPUT FORMAT</h2>\r
<div class="sectionbody">\r
-<p>When specifying the -v option the format used is:</p>\r
+<div class="para"><p>When specifying the -v option the format used is:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>SHA1 type size size-in-pack-file offset-in-packfile</tt></pre>\r
</div></div>\r
-<p>for objects that are not deltified in the pack, and</p>\r
+<div class="para"><p>for objects that are not deltified in the pack, and</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>SHA1 type size size-in-packfile offset-in-packfile depth base-SHA1</tt></pre>\r
</div></div>\r
-<p>for objects that are deltified.</p>\r
+<div class="para"><p>for objects that are deltified.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano</p>\r
+<div class="para"><p>Documentation by Junio C Hamano</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:07 UTC\r
+Last updated 2008-07-06 05:17:07 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
Reads given idx file for packed git archive created with the
-`git-pack-objects` command and verifies idx file and the
+'git-pack-objects' command and verifies idx file and the
corresponding pack file.
OPTIONS
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-verify-tag(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git verify-tag</em> <tag>…</p>\r
+<div class="para"><p><em>git verify-tag</em> <tag>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Validates the gpg signature created by <tt>git-tag</tt>.</p>\r
+<div class="para"><p>Validates the gpg signature created by <em>git-tag</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<tag>\r
</dt>\r
SHA1 identifier of a git tag object.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Jan Harkes <jaharkes@cs.cmu.edu> and Eric W. Biederman <ebiederm@xmission.com></p>\r
+<div class="para"><p>Written by Jan Harkes <jaharkes@cs.cmu.edu> and Eric W. Biederman <ebiederm@xmission.com></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:07 UTC\r
+Last updated 2008-07-06 05:17:07 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Validates the gpg signature created by `git-tag`.
+Validates the gpg signature created by 'git-tag'.
OPTIONS
-------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-web--browse(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git web--browse</em> [OPTIONS] URL/FILE …</p>\r
+<div class="para"><p><em>git web--browse</em> [OPTIONS] URL/FILE …</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This script tries, as much as possible, to display the URLs and FILEs\r
+<div class="para"><p>This script tries, as much as possible, to display the URLs and FILEs\r
that are passed as arguments, as HTML pages in new tabs on an already\r
-opened web browser.</p>\r
-<p>The following browsers (or commands) are currently supported:</p>\r
-<ul>\r
+opened web browser.</p></div>\r
+<div class="para"><p>The following browsers (or commands) are currently supported:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
firefox (this is the default under X Window when not using KDE)\r
open (this is the default under Mac OS X GUI)\r
</p>\r
</li>\r
-</ul>\r
-<p>Custom commands may also be specified.</p>\r
+</ul></div>\r
+<div class="para"><p>Custom commands may also be specified.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-b BROWSER\r
</dt>\r
then its value specify the browser that should be used.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>CONFIGURATION VARIABLES</h2>\r
+<h2 id="_configuration_variables">CONFIGURATION VARIABLES</h2>\r
<div class="sectionbody">\r
-<h3>CONF.VAR (from -c option) and web.browser</h3>\r
-<p>The web browser can be specified using a configuration variable passed\r
+<h3 id="_conf_var_from_c_option_and_web_browser">CONF.VAR (from -c option) and web.browser</h3><div style="clear:left"></div>\r
+<div class="para"><p>The web browser can be specified using a configuration variable passed\r
with the -c (or --config) command line option, or the <em>web.browser</em>\r
-configuration variable if the former is not used.</p>\r
-<h3>browser.<tool>.path</h3>\r
-<p>You can explicitly provide a full path to your preferred browser by\r
+configuration variable if the former is not used.</p></div>\r
+<h3 id="_browser_lt_tool_gt_path">browser.<tool>.path</h3><div style="clear:left"></div>\r
+<div class="para"><p>You can explicitly provide a full path to your preferred browser by\r
setting the configuration variable <em>browser.<tool>.path</em>. For example,\r
you can configure the absolute path to firefox by setting\r
-<em>browser.firefox.path</em>. Otherwise, <tt>git-web--browse</tt> assumes the tool\r
-is available in PATH.</p>\r
-<h3>browser.<tool>.cmd</h3>\r
-<p>When the browser, specified by options or configuration variables, is\r
+<em>browser.firefox.path</em>. Otherwise, <em>git-web--browse</em> assumes the tool\r
+is available in PATH.</p></div>\r
+<h3 id="_browser_lt_tool_gt_cmd">browser.<tool>.cmd</h3><div style="clear:left"></div>\r
+<div class="para"><p>When the browser, specified by options or configuration variables, is\r
not among the supported ones, then the corresponding\r
<em>browser.<tool>.cmd</em> configuration variable will be looked up. If this\r
-variable exists then <tt>git-web--browse</tt> will treat the specified tool\r
+variable exists then <em>git-web--browse</em> will treat the specified tool\r
as a custom command and will use a shell eval to run the command with\r
-the URLs passed as arguments.</p>\r
+the URLs passed as arguments.</p></div>\r
</div>\r
-<h2>Note about konqueror</h2>\r
+<h2 id="_note_about_konqueror">Note about konqueror</h2>\r
<div class="sectionbody">\r
-<p>When <em>konqueror</em> is specified by the a command line option or a\r
+<div class="para"><p>When <em>konqueror</em> is specified by the a command line option or a\r
configuration variable, we launch <em>kfmclient</em> to try to open the HTML\r
-man page on an already opened konqueror in a new tab if possible.</p>\r
-<p>For consistency, we also try such a trick if <em>browser.konqueror.path</em> is\r
+man page on an already opened konqueror in a new tab if possible.</p></div>\r
+<div class="para"><p>For consistency, we also try such a trick if <em>browser.konqueror.path</em> is\r
set to something like <em>A_PATH_TO/konqueror</em>. That means we will try to\r
-launch <em>A_PATH_TO/kfmclient</em> instead.</p>\r
-<p>If you really want to use <em>konqueror</em>, then you can use something like\r
-the following:</p>\r
+launch <em>A_PATH_TO/kfmclient</em> instead.</p></div>\r
+<div class="para"><p>If you really want to use <em>konqueror</em>, then you can use something like\r
+the following:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> [web]\r
[browser "konq"]\r
cmd = A_PATH_TO/konqueror</tt></pre>\r
</div></div>\r
-<h3>Note about git-config --global</h3>\r
-<p>Note that these configuration variables should probably be set using\r
-the <em>--global</em> flag, for example like this:</p>\r
+<h3 id="_note_about_git_config_global">Note about git-config --global</h3><div style="clear:left"></div>\r
+<div class="para"><p>Note that these configuration variables should probably be set using\r
+the <em>--global</em> flag, for example like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git config --global web.browser firefox</tt></pre>\r
</div></div>\r
-<p>as they are probably more user specific than repository specific.\r
-See <a href="git-config.html">git-config(1)</a> for more information about this.</p>\r
+<div class="para"><p>as they are probably more user specific than repository specific.\r
+See <a href="git-config.html">git-config(1)</a> for more information about this.</p></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Christian Couder <chriscool@tuxfamily.org> and the git-list\r
-<git@vger.kernel.org>, based on <tt>git-mergetool</tt> by Theodore Y. Ts'o.</p>\r
+<div class="para"><p>Written by Christian Couder <chriscool@tuxfamily.org> and the git-list\r
+<git@vger.kernel.org>, based on <em>git-mergetool</em> by Theodore Y. Ts'o.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Christian Couder <chriscool@tuxfamily.org> and the\r
-git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Christian Couder <chriscool@tuxfamily.org> and the\r
+git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:08 UTC\r
+Last updated 2008-07-06 05:17:07 UTC\r
</div>\r
</div>\r
</body>\r
You can explicitly provide a full path to your preferred browser by
setting the configuration variable 'browser.<tool>.path'. For example,
you can configure the absolute path to firefox by setting
-'browser.firefox.path'. Otherwise, `git-web--browse` assumes the tool
+'browser.firefox.path'. Otherwise, 'git-web--browse' assumes the tool
is available in PATH.
browser.<tool>.cmd
When the browser, specified by options or configuration variables, is
not among the supported ones, then the corresponding
'browser.<tool>.cmd' configuration variable will be looked up. If this
-variable exists then `git-web--browse` will treat the specified tool
+variable exists then 'git-web--browse' will treat the specified tool
as a custom command and will use a shell eval to run the command with
the URLs passed as arguments.
Author
------
Written by Christian Couder <chriscool@tuxfamily.org> and the git-list
-<git@vger.kernel.org>, based on `git-mergetool` by Theodore Y. Ts'o.
+<git@vger.kernel.org>, based on 'git-mergetool' by Theodore Y. Ts'o.
Documentation
-------------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-whatchanged(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git whatchanged</em> <option>…</p>\r
+<div class="para"><p><em>git whatchanged</em> <option>…</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Shows commit logs and diff output each commit introduces. The\r
-command internally invokes <tt>git-rev-list</tt> piped to\r
-<tt>git-diff-tree</tt>, and takes command line options for both of\r
-these commands.</p>\r
-<p>This manual page describes only the most frequently used options.</p>\r
+<div class="para"><p>Shows commit logs and diff output each commit introduces. The\r
+command internally invokes <em>git-rev-list</em> piped to\r
+<em>git-diff-tree</em>, and takes command line options for both of\r
+these commands.</p></div>\r
+<div class="para"><p>This manual page describes only the most frequently used options.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
-p\r
</dt>\r
With this flag, show differences to that commit from all\r
of its parents.\r
</p>\r
-<p>However, it is not very useful in general, although it\r
-<strong>is</strong> useful on a file-by-file basis.</p>\r
+<div class="para"><p>However, it is not very useful in general, although it\r
+<strong>is</strong> useful on a file-by-file basis.</p></div>\r
</dd>\r
<dt>\r
--pretty[=<em><format></em>]\r
<em>full</em>, <em>fuller</em>, <em>email</em>, <em>raw</em> and <em>format:<string></em>.\r
When omitted, the format defaults to <em>medium</em>.\r
</p>\r
-<p>Note: you can specify the default pretty format in the repository\r
-configuration (see <a href="git-config.html">git-config(1)</a>).</p>\r
+<div class="para"><p>Note: you can specify the default pretty format in the repository\r
+configuration (see <a href="git-config.html">git-config(1)</a>).</p></div>\r
</dd>\r
<dt>\r
--abbrev-commit\r
digits can be specified with "--abbrev=<n>" (which also modifies\r
diff output, if it is displayed).\r
</p>\r
-<p>This should make "--pretty=oneline" a whole lot more readable for\r
-people using 80-column terminals.</p>\r
+<div class="para"><p>This should make "--pretty=oneline" a whole lot more readable for\r
+people using 80-column terminals.</p></div>\r
</dd>\r
<dt>\r
--encoding[=<encoding>]\r
defaults to UTF-8.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>PRETTY FORMATS</h2>\r
+<h2 id="_pretty_formats">PRETTY FORMATS</h2>\r
<div class="sectionbody">\r
-<p>If the commit is a merge, and if the pretty-format\r
+<div class="para"><p>If the commit is a merge, and if the pretty-format\r
is not <em>oneline</em>, <em>email</em> or <em>raw</em>, an additional line is\r
inserted before the <em>Author:</em> line. This line begins with\r
"Merge: " and the sha1s of ancestral commits are printed,\r
necessarily be the list of the <strong>direct</strong> parent commits if you\r
have limited your view of history: for example, if you are\r
only interested in changes related to a certain directory or\r
-file.</p>\r
-<p>Here are some additional details for each format:</p>\r
-<ul>\r
+file.</p></div>\r
+<div class="para"><p>Here are some additional details for each format:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>oneline</em>\r
<div class="content">\r
<pre><tt><sha1> <title line></tt></pre>\r
</div></div>\r
-<p>This is designed to be as compact as possible.</p>\r
+<div class="para"><p>This is designed to be as compact as possible.</p></div>\r
</li>\r
<li>\r
<p>\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-Date: <date></tt></pre>\r
+Date: <author date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>commit <sha1>\r
Author: <author>\r
-AuthorDate: <date & time>\r
+AuthorDate: <author date>\r
Commit: <committer>\r
-CommitDate: <date & time></tt></pre>\r
+CommitDate: <committer date></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
<div class="content">\r
<pre><tt>From <sha1> <date>\r
From: <author>\r
-Date: <date & time>\r
+Date: <author date>\r
Subject: [PATCH] <title line></tt></pre>\r
</div></div>\r
<div class="literalblock">\r
<p>\r
<em>raw</em>\r
</p>\r
-<p>The <em>raw</em> format shows the entire commit exactly as\r
+<div class="para"><p>The <em>raw</em> format shows the entire commit exactly as\r
stored in the commit object. Notably, the SHA1s are\r
displayed in full, regardless of whether --abbrev or\r
--no-abbrev are used, and <em>parents</em> information show the\r
true parent commits, without taking grafts nor history\r
-simplification into account.</p>\r
+simplification into account.</p></div>\r
</li>\r
<li>\r
<p>\r
<em>format:</em>\r
</p>\r
-<p>The <em>format:</em> format allows you to specify which information\r
+<div class="para"><p>The <em>format:</em> format allows you to specify which information\r
you want to show. It works a little bit like printf format,\r
with the notable exception that you get a newline with <em>%n</em>\r
-instead of <em>\n</em>.</p>\r
-<p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
-would show something like this:</p>\r
+instead of <em>\n</em>.</p></div>\r
+<div class="para"><p>E.g, <em>format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>\r
+would show something like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>The author of fe6e0ee was Junio C Hamano, 23 hours ago\r
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\r
</tt></pre>\r
</div></div>\r
-<p>The placeholders are:</p>\r
-<ul>\r
+<div class="para"><p>The placeholders are:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<em>%H</em>: commit hash\r
<em>%x00</em>: print a byte from a hex code\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</li>\r
<li>\r
<p>\r
<em>tformat:</em>\r
</p>\r
-<p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
+<div class="para"><p>The <em>tformat:</em> format works exactly like <em>format:</em>, except that it\r
provides "terminator" semantics instead of "separator" semantics. In\r
other words, each commit has the message terminator character (usually a\r
newline) appended, rather than a separator placed between entries.\r
This means that the final entry of a single-line format will be properly\r
terminated with a new line, just as the "oneline" format does.\r
-For example:</p>\r
+For example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -2 --pretty=format:%h 4da45bef \\r
7134973</tt></pre>\r
</div></div>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
git whatchanged -p v2.6.12.. include/scsi drivers/scsi\r
</dt>\r
<em>gitk</em>\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and\r
-Junio C Hamano <junkio@cox.net></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org> and\r
+Junio C Hamano <junkio@cox.net></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:08 UTC\r
+Last updated 2008-07-06 05:17:07 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
Shows commit logs and diff output each commit introduces. The
-command internally invokes `git-rev-list` piped to
-`git-diff-tree`, and takes command line options for both of
+command internally invokes 'git-rev-list' piped to
+'git-diff-tree', and takes command line options for both of
these commands.
This manual page describes only the most frequently used options.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git-write-tree(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git write-tree</em> [--missing-ok] [--prefix=<prefix>/]</p>\r
+<div class="para"><p><em>git write-tree</em> [--missing-ok] [--prefix=<prefix>/]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Creates a tree object using the current index.</p>\r
-<p>The index must be in a fully merged state.</p>\r
-<p>Conceptually, <tt>git-write-tree</tt> sync()s the current index contents\r
+<div class="para"><p>Creates a tree object using the current index.</p></div>\r
+<div class="para"><p>The index must be in a fully merged state.</p></div>\r
+<div class="para"><p>Conceptually, <em>git-write-tree</em> sync()s the current index contents\r
into a set of tree files.\r
In order to have that match what is actually in your directory right\r
-now, you need to have done a <tt>git-update-index</tt> phase before you did the\r
-<tt>git-write-tree</tt>.</p>\r
+now, you need to have done a <em>git-update-index</em> phase before you did the\r
+<em>git-write-tree</em>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--missing-ok\r
</dt>\r
<dd>\r
<p>\r
- Normally <tt>git-write-tree</tt> ensures that the objects referenced by the\r
+ Normally <em>git-write-tree</em> ensures that the objects referenced by the\r
directory exist in the object database. This option disables this\r
check.\r
</p>\r
for a subproject that is in the named subdirectory.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
+<div class="para"><p>Written by Linus Torvalds <torvalds@osdl.org></p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:08 UTC\r
+Last updated 2008-07-06 05:17:08 UTC\r
</div>\r
</div>\r
</body>\r
The index must be in a fully merged state.
-Conceptually, `git-write-tree` sync()s the current index contents
+Conceptually, 'git-write-tree' sync()s the current index contents
into a set of tree files.
In order to have that match what is actually in your directory right
-now, you need to have done a `git-update-index` phase before you did the
-`git-write-tree`.
+now, you need to have done a 'git-update-index' phase before you did the
+'git-write-tree'.
OPTIONS
-------
--missing-ok::
- Normally `git-write-tree` ensures that the objects referenced by the
+ Normally 'git-write-tree' ensures that the objects referenced by the
directory exist in the object database. This option disables this
check.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>git(1)</title>\r
</head>\r
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]\r
[--help] COMMAND [ARGS]</div></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Git is a fast, scalable, distributed revision control system with an\r
+<div class="para"><p>Git is a fast, scalable, distributed revision control system with an\r
unusually rich command set that provides both high-level operations\r
-and full access to internals.</p>\r
-<p>See <a href="gittutorial.html">gittutorial(7)</a> to get started, then see\r
+and full access to internals.</p></div>\r
+<div class="para"><p>See <a href="gittutorial.html">gittutorial(7)</a> to get started, then see\r
<a href="everyday.html">Everyday Git</a> for a useful minimum set of commands, and\r
"man git-commandname" for documentation of each command. CVS users may\r
also want to read <a href="gitcvs-migration.html">gitcvs-migration(7)</a>. See\r
the <a href="user-manual.html">Git User's Manual</a> for a more in-depth\r
-introduction.</p>\r
-<p>The COMMAND is either a name of a Git command (see below) or an alias\r
-as defined in the configuration file (see <a href="git-config.html">git-config(1)</a>).</p>\r
-<p>Formatted and hyperlinked version of the latest git\r
+introduction.</p></div>\r
+<div class="para"><p>The COMMAND is either a name of a Git command (see below) or an alias\r
+as defined in the configuration file (see <a href="git-config.html">git-config(1)</a>).</p></div>\r
+<div class="para"><p>Formatted and hyperlinked version of the latest git\r
documentation can be viewed at\r
-<tt>http://www.kernel.org/pub/software/scm/git/docs/</tt>.</p>\r
+<tt>http://www.kernel.org/pub/software/scm/git/docs/</tt>.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
--version\r
</dt>\r
available commands are printed. If a git command is named this\r
option will bring up the manual page for that command.\r
</p>\r
-<p>Other options are available to control how the manual page is\r
+<div class="para"><p>Other options are available to control how the manual page is\r
displayed. See <a href="git-help.html">git-help(1)</a> for more information,\r
-because <em>git --help …</em> is converted internally into <em>git\r
-help …</em>.</p>\r
+because <tt>git --help …</tt> is converted internally into <tt>git\r
+help …</tt>.</p></div>\r
</dd>\r
<dt>\r
--exec-path\r
<p>\r
Path to wherever your core git programs are installed.\r
This can also be controlled by setting the GIT_EXEC_PATH\r
- environment variable. If no path is given <em>git</em> will print\r
+ environment variable. If no path is given, <em>git</em> will print\r
the current setting and then exit.\r
</p>\r
</dd>\r
directory.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>FURTHER DOCUMENTATION</h2>\r
+<h2 id="_further_documentation">FURTHER DOCUMENTATION</h2>\r
<div class="sectionbody">\r
-<p>See the references above to get started using git. The following is\r
-probably more detail than necessary for a first-time user.</p>\r
-<p>The <a href="user-manual.html#git-concepts">git concepts chapter of the\r
+<div class="para"><p>See the references above to get started using git. The following is\r
+probably more detail than necessary for a first-time user.</p></div>\r
+<div class="para"><p>The <a href="user-manual.html#git-concepts">git concepts chapter of the\r
user-manual</a> and <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a> both provide\r
-introductions to the underlying git architecture.</p>\r
-<p>See also the <a href="howto-index.html">howto</a> documents for some useful\r
-examples.</p>\r
-<p>The internals are documented in the\r
-<a href="technical/api-index.html">GIT API documentation</a>.</p>\r
+introductions to the underlying git architecture.</p></div>\r
+<div class="para"><p>See also the <a href="howto-index.html">howto</a> documents for some useful\r
+examples.</p></div>\r
+<div class="para"><p>The internals are documented in the\r
+<a href="technical/api-index.html">GIT API documentation</a>.</p></div>\r
</div>\r
-<h2>GIT COMMANDS</h2>\r
+<h2 id="_git_commands">GIT COMMANDS</h2>\r
<div class="sectionbody">\r
-<p>We divide git into high level ("porcelain") commands and low level\r
-("plumbing") commands.</p>\r
+<div class="para"><p>We divide git into high level ("porcelain") commands and low level\r
+("plumbing") commands.</p></div>\r
</div>\r
-<h2>High-level commands (porcelain)</h2>\r
+<h2 id="_high_level_commands_porcelain">High-level commands (porcelain)</h2>\r
<div class="sectionbody">\r
-<p>We separate the porcelain commands into the main commands and some\r
-ancillary user utilities.</p>\r
-<h3>Main porcelain commands</h3>\r
-<dl>\r
+<div class="para"><p>We separate the porcelain commands into the main commands and some\r
+ancillary user utilities.</p></div>\r
+<h3 id="_main_porcelain_commands">Main porcelain commands</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-add.html">git-add(1)</a>\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- Summarize <em>git log</em> output.\r
+ Summarize <em>git-log</em> output.\r
</p>\r
</dd>\r
<dt>\r
The git repository browser.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Ancillary Commands</h3>\r
-<p>Manipulators:</p>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_ancillary_commands">Ancillary Commands</h3><div style="clear:left"></div>\r
+<div class="para"><p>Manipulators:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-config.html">git-config(1)</a>\r
</dt>\r
(deprecated) Get and set repository or global options.\r
</p>\r
</dd>\r
-</dl>\r
-<p>Interrogators:</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>Interrogators:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-annotate.html">git-annotate(1)</a>\r
</dt>\r
Show logs with difference each commit introduces.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Interacting with Others</h3>\r
-<p>These commands are to interact with foreign SCM and with other\r
-people via patch over e-mail.</p>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_interacting_with_others">Interacting with Others</h3><div style="clear:left"></div>\r
+<div class="para"><p>These commands are to interact with foreign SCM and with other\r
+people via patch over e-mail.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-archimport.html">git-archimport(1)</a>\r
</dt>\r
Bidirectional operation between a single Subversion branch and git.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Low-level commands (plumbing)</h2>\r
+<h2 id="_low_level_commands_plumbing">Low-level commands (plumbing)</h2>\r
<div class="sectionbody">\r
-<p>Although git includes its\r
+<div class="para"><p>Although git includes its\r
own porcelain layer, its low-level commands are sufficient to support\r
development of alternative porcelains. Developers of such porcelains\r
might start by reading about <a href="git-update-index.html">git-update-index(1)</a> and\r
-<a href="git-read-tree.html">git-read-tree(1)</a>.</p>\r
-<p>The interface (input, output, set of options and the semantics)\r
+<a href="git-read-tree.html">git-read-tree(1)</a>.</p></div>\r
+<div class="para"><p>The interface (input, output, set of options and the semantics)\r
to these low-level commands are meant to be a lot more stable\r
than Porcelain level commands, because these commands are\r
primarily for scripted use. The interface to Porcelain commands\r
on the other hand are subject to change in order to improve the\r
-end user experience.</p>\r
-<p>The following description divides\r
+end user experience.</p></div>\r
+<div class="para"><p>The following description divides\r
the low-level commands into commands that manipulate objects (in\r
the repository, index, and working tree), commands that interrogate and\r
compare objects, and commands that move objects and references between\r
-repositories.</p>\r
-<h3>Manipulation commands</h3>\r
-<dl>\r
+repositories.</p></div>\r
+<h3 id="_manipulation_commands">Manipulation commands</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-apply.html">git-apply(1)</a>\r
</dt>\r
Create a tree object from the current index.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Interrogation commands</h3>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_interrogation_commands">Interrogation commands</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-cat-file.html">git-cat-file(1)</a>\r
</dt>\r
Validate packed git archive files.\r
</p>\r
</dd>\r
-</dl>\r
-<p>In general, the interrogate commands do not touch the files in\r
-the working tree.</p>\r
-<h3>Synching repositories</h3>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>In general, the interrogate commands do not touch the files in\r
+the working tree.</p></div>\r
+<h3 id="_synching_repositories">Synching repositories</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-daemon.html">git-daemon(1)</a>\r
</dt>\r
Update auxiliary info file to help dumb servers.\r
</p>\r
</dd>\r
-</dl>\r
-<p>The following are helper programs used by the above; end users\r
-typically do not use them directly.</p>\r
-<dl>\r
+</dl></div>\r
+<div class="para"><p>The following are helper programs used by the above; end users\r
+typically do not use them directly.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-http-fetch.html">git-http-fetch(1)</a>\r
</dt>\r
Send objects packed back to git-fetch-pack.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>Internal helper commands</h3>\r
-<p>These are internal helper commands used by other commands; end\r
-users typically do not use them directly.</p>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_internal_helper_commands">Internal helper commands</h3><div style="clear:left"></div>\r
+<div class="para"><p>These are internal helper commands used by other commands; end\r
+users typically do not use them directly.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<a href="git-check-attr.html">git-check-attr(1)</a>\r
</dt>\r
Filter out empty lines.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Configuration Mechanism</h2>\r
+<h2 id="_configuration_mechanism">Configuration Mechanism</h2>\r
<div class="sectionbody">\r
-<p>Starting from 0.99.9 (actually mid 0.99.8.GIT), <tt>.git/config</tt> file\r
+<div class="para"><p>Starting from 0.99.9 (actually mid 0.99.8.GIT), <tt>.git/config</tt> file\r
is used to hold per-repository configuration options. It is a\r
simple text file modeled after <tt>.ini</tt> format familiar to some\r
-people. Here is an example:</p>\r
+people. Here is an example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>#\r
email = "junkio@twinsun.com"\r
</tt></pre>\r
</div></div>\r
-<p>Various commands read from the configuration file and adjust\r
-their operation accordingly.</p>\r
+<div class="para"><p>Various commands read from the configuration file and adjust\r
+their operation accordingly.</p></div>\r
</div>\r
-<h2>Identifier Terminology</h2>\r
+<h2 id="_identifier_terminology">Identifier Terminology</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<object>\r
</dt>\r
root of the tree structure <tt>GIT_INDEX_FILE</tt> describes.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Symbolic Identifiers</h2>\r
+<h2 id="_symbolic_identifiers">Symbolic Identifiers</h2>\r
<div class="sectionbody">\r
-<p>Any git command accepting any <object> can also use the following\r
-symbolic notation:</p>\r
-<dl>\r
+<div class="para"><p>Any git command accepting any <object> can also use the following\r
+symbolic notation:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
HEAD\r
</dt>\r
(i.e. the contents of <tt>$GIT_DIR/refs/heads/<head></tt>).\r
</p>\r
</dd>\r
-</dl>\r
-<p>For a more complete list of ways to spell object names, see\r
-"SPECIFYING REVISIONS" section in <a href="git-rev-parse.html">git-rev-parse(1)</a>.</p>\r
+</dl></div>\r
+<div class="para"><p>For a more complete list of ways to spell object names, see\r
+"SPECIFYING REVISIONS" section in <a href="git-rev-parse.html">git-rev-parse(1)</a>.</p></div>\r
</div>\r
-<h2>File/Directory Structure</h2>\r
+<h2 id="_file_directory_structure">File/Directory Structure</h2>\r
<div class="sectionbody">\r
-<p>Please see the <a href="gitrepository-layout.html">gitrepository-layout(5)</a> document.</p>\r
-<p>Read <a href="githooks.html">githooks(5)</a> for more details about each hook.</p>\r
-<p>Higher level SCMs may provide and manage additional information in the\r
-<tt>$GIT_DIR</tt>.</p>\r
+<div class="para"><p>Please see the <a href="gitrepository-layout.html">gitrepository-layout(5)</a> document.</p></div>\r
+<div class="para"><p>Read <a href="githooks.html">githooks(5)</a> for more details about each hook.</p></div>\r
+<div class="para"><p>Higher level SCMs may provide and manage additional information in the\r
+<tt>$GIT_DIR</tt>.</p></div>\r
</div>\r
-<h2>Terminology</h2>\r
+<h2 id="_terminology">Terminology</h2>\r
<div class="sectionbody">\r
-<p>Please see <a href="gitglossary.html">gitglossary(7)</a>.</p>\r
+<div class="para"><p>Please see <a href="gitglossary.html">gitglossary(7)</a>.</p></div>\r
</div>\r
-<h2>Environment Variables</h2>\r
+<h2 id="_environment_variables">Environment Variables</h2>\r
<div class="sectionbody">\r
-<p>Various git commands use the following environment variables:</p>\r
-<h3>The git Repository</h3>\r
-<p>These environment variables apply to <em>all</em> core git commands. Nb: it\r
+<div class="para"><p>Various git commands use the following environment variables:</p></div>\r
+<h3 id="_the_git_repository">The git Repository</h3><div style="clear:left"></div>\r
+<div class="para"><p>These environment variables apply to <em>all</em> core git commands. Nb: it\r
is worth noting that they may be used/overridden by SCMS sitting above\r
-git so take care if using Cogito etc.</p>\r
-<dl>\r
+git so take care if using Cogito etc.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>GIT_INDEX_FILE</em>\r
</dt>\r
option and the core.worktree configuration variable.\r
</p>\r
</dd>\r
-</dl>\r
-<h3>git Commits</h3>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_git_commits">git Commits</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>GIT_AUTHOR_NAME</em>\r
</dt>\r
see <a href="git-commit-tree.html">git-commit-tree(1)</a>\r
</p>\r
</dd>\r
-</dl>\r
-<h3>git Diffs</h3>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_git_diffs">git Diffs</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>GIT_DIFF_OPTS</em>\r
</dt>\r
<div class="content">\r
<pre><tt>path old-file old-hex old-mode new-file new-hex new-mode</tt></pre>\r
</div></div>\r
-<p>where:</p>\r
+<div class="para"><p>where:</p></div>\r
<div class="hlist"><table>\r
<tr>\r
<td class="hlist1">\r
</td>\r
</tr>\r
</table></div>\r
-<p>The file parameters can point at the user's working file\r
+<div class="para"><p>The file parameters can point at the user's working file\r
(e.g. <tt>new-file</tt> in "git-diff-files"), <tt>/dev/null</tt> (e.g. <tt>old-file</tt>\r
when a new file is added), or a temporary file (e.g. <tt>old-file</tt> in the\r
index). <em>GIT_EXTERNAL_DIFF</em> should not worry about unlinking the\r
-temporary file --- it is removed when <em>GIT_EXTERNAL_DIFF</em> exits.</p>\r
-<p>For a path that is unmerged, <em>GIT_EXTERNAL_DIFF</em> is called with 1\r
-parameter, <path>.</p>\r
+temporary file --- it is removed when <em>GIT_EXTERNAL_DIFF</em> exits.</p></div>\r
+<div class="para"><p>For a path that is unmerged, <em>GIT_EXTERNAL_DIFF</em> is called with 1\r
+parameter, <path>.</p></div>\r
</dd>\r
-</dl>\r
-<h3>other</h3>\r
-<dl>\r
+</dl></div>\r
+<h3 id="_other">other</h3><div style="clear:left"></div>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>GIT_MERGE_VERBOSITY</em>\r
</dt>\r
</dt>\r
<dd>\r
<p>\r
- If this environment variable is set then <tt>git-fetch</tt>\r
- and <tt>git-push</tt> will use this command instead\r
- of <tt>ssh</tt> when they need to connect to a remote system.\r
+ If this environment variable is set then <em>git-fetch</em>\r
+ and <em>git-push</em> will use this command instead\r
+ of <em>ssh</em> when they need to connect to a remote system.\r
The <em>$GIT_SSH</em> command will be given exactly two arguments:\r
the <em>username@host</em> (or just <em>host</em>) from the URL and the\r
shell command to execute on that remote system.\r
</p>\r
-<p>To pass options to the program that you want to list in GIT_SSH\r
+<div class="para"><p>To pass options to the program that you want to list in GIT_SSH\r
you will need to wrap the program and options into a shell script,\r
-then set GIT_SSH to refer to the shell script.</p>\r
-<p>Usually it is easier to configure any desired options through your\r
+then set GIT_SSH to refer to the shell script.</p></div>\r
+<div class="para"><p>Usually it is easier to configure any desired options through your\r
personal <tt>.ssh/config</tt> file. Please consult your ssh documentation\r
-for further details.</p>\r
+for further details.</p></div>\r
</dd>\r
<dt>\r
<em>GIT_FLUSH</em>\r
<dd>\r
<p>\r
If this environment variable is set to "1", then commands such\r
- as <tt>git-blame</tt> (in incremental mode), <tt>git-rev-list</tt>, <tt>git-log</tt>,\r
- and <tt>git-whatchanged</tt> will force a flush of the output stream\r
+ as <em>git-blame</em> (in incremental mode), <em>git-rev-list</em>, <em>git-log</em>,\r
+ and <em>git-whatchanged</em> will force a flush of the output stream\r
after each commit-oriented record have been flushed. If this\r
variable is set to "0", the output of these commands will be done\r
using completely buffered I/O. If this environment variable is\r
into it.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Discussion<a id="Discussion"></a></h2>\r
+<h2 id="_discussion_a_id_discussion_a">Discussion<a id="Discussion"></a></h2>\r
<div class="sectionbody">\r
-<p>More detail on the following is available from the\r
+<div class="para"><p>More detail on the following is available from the\r
<a href="user-manual.html#git-concepts">git concepts chapter of the\r
-user-manual</a> and <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a>.</p>\r
-<p>A git project normally consists of a working directory with a ".git"\r
+user-manual</a> and <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a>.</p></div>\r
+<div class="para"><p>A git project normally consists of a working directory with a ".git"\r
subdirectory at the top level. The .git directory contains, among other\r
things, a compressed object database representing the complete history\r
of the project, an "index" file which links that history to the current\r
contents of the working tree, and named pointers into that history such\r
-as tags and branch heads.</p>\r
-<p>The object database contains objects of three main types: blobs, which\r
+as tags and branch heads.</p></div>\r
+<div class="para"><p>The object database contains objects of three main types: blobs, which\r
hold file data; trees, which point to blobs and other trees to build up\r
directory hierarchies; and commits, which each reference a single tree\r
-and some number of parent commits.</p>\r
-<p>The commit, equivalent to what other systems call a "changeset" or\r
+and some number of parent commits.</p></div>\r
+<div class="para"><p>The commit, equivalent to what other systems call a "changeset" or\r
"version", represents a step in the project's history, and each parent\r
represents an immediately preceding step. Commits with more than one\r
-parent represent merges of independent lines of development.</p>\r
-<p>All objects are named by the SHA1 hash of their contents, normally\r
+parent represent merges of independent lines of development.</p></div>\r
+<div class="para"><p>All objects are named by the SHA1 hash of their contents, normally\r
written as a string of 40 hex digits. Such names are globally unique.\r
The entire history leading up to a commit can be vouched for by signing\r
just that commit. A fourth object type, the tag, is provided for this\r
-purpose.</p>\r
-<p>When first created, objects are stored in individual files, but for\r
-efficiency may later be compressed together into "pack files".</p>\r
-<p>Named pointers called refs mark interesting points in history. A ref\r
+purpose.</p></div>\r
+<div class="para"><p>When first created, objects are stored in individual files, but for\r
+efficiency may later be compressed together into "pack files".</p></div>\r
+<div class="para"><p>Named pointers called refs mark interesting points in history. A ref\r
may contain the SHA1 name of an object or the name of another ref. Refs\r
with names beginning <tt>ref/head/</tt> contain the SHA1 name of the most\r
recent commit (or "head") of a branch under development. SHA1 names of\r
tags of interest are stored under <tt>ref/tags/</tt>. A special ref named\r
-<tt>HEAD</tt> contains the name of the currently checked-out branch.</p>\r
-<p>The index file is initialized with a list of all paths and, for each\r
+<tt>HEAD</tt> contains the name of the currently checked-out branch.</p></div>\r
+<div class="para"><p>The index file is initialized with a list of all paths and, for each\r
path, a blob object and a set of attributes. The blob object represents\r
the contents of the file as of the head of the current branch. The\r
attributes (last modified time, size, etc.) are taken from the\r
corresponding file in the working tree. Subsequent changes to the\r
working tree can be found by comparing these attributes. The index may\r
be updated with new content, and new commits may be created from the\r
-content stored in the index.</p>\r
-<p>The index is also capable of storing multiple entries (called "stages")\r
+content stored in the index.</p></div>\r
+<div class="para"><p>The index is also capable of storing multiple entries (called "stages")\r
for a given pathname. These stages are used to hold the various\r
-unmerged version of a file when a merge is in progress.</p>\r
+unmerged version of a file when a merge is in progress.</p></div>\r
</div>\r
-<h2>Authors</h2>\r
+<h2 id="_authors">Authors</h2>\r
<div class="sectionbody">\r
-<ul>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
git's founding father is Linus Torvalds <torvalds@osdl.org>.\r
General upbringing is handled by the git-list <git@vger.kernel.org>.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>The documentation for git suite was started by David Greaves\r
+<div class="para"><p>The documentation for git suite was started by David Greaves\r
<david@dgreaves.com>, and later enhanced greatly by the\r
-contributors on the git-list <git@vger.kernel.org>.</p>\r
+contributors on the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
+<div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
<a href="giteveryday.html">giteveryday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
<a href="gitglossary.html">gitglossary(7)</a>, <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a>,\r
-<a href="gitcli.html">gitcli(7)</a>, <a href="user-manual.html">The Git User's Manual</a></p>\r
+<a href="gitcli.html">gitcli(7)</a>, <a href="user-manual.html">The Git User's Manual</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 03-Jul-2008 09:21:30 UTC\r
+Last updated 2008-07-06 05:17:08 UTC\r
</div>\r
</div>\r
</body>\r
branch of the `git.git` repository.
Documentation for older releases are available here:
-* link:v1.5.6.1/git.html[documentation for release 1.5.6.1]
+* link:v1.5.6.2/git.html[documentation for release 1.5.6.2]
* release notes for
+ link:RelNotes-1.5.6.2.txt[1.5.6.2].
link:RelNotes-1.5.6.1.txt[1.5.6.1].
link:RelNotes-1.5.6.txt[1.5.6].
+
Other options are available to control how the manual page is
displayed. See linkgit:git-help[1] for more information,
-because 'git --help ...' is converted internally into 'git
-help ...'.
+because `git --help ...` is converted internally into `git
+help ...`.
--exec-path::
Path to wherever your core git programs are installed.
This can also be controlled by setting the GIT_EXEC_PATH
- environment variable. If no path is given 'git' will print
+ environment variable. If no path is given, 'git' will print
the current setting and then exit.
-p::
a pager.
'GIT_SSH'::
- If this environment variable is set then `git-fetch`
- and `git-push` will use this command instead
- of `ssh` when they need to connect to a remote system.
+ If this environment variable is set then 'git-fetch'
+ and 'git-push' will use this command instead
+ of 'ssh' when they need to connect to a remote system.
The '$GIT_SSH' command will be given exactly two arguments:
the 'username@host' (or just 'host') from the URL and the
shell command to execute on that remote system.
'GIT_FLUSH'::
If this environment variable is set to "1", then commands such
- as `git-blame` (in incremental mode), `git-rev-list`, `git-log`,
- and `git-whatchanged` will force a flush of the output stream
+ as 'git-blame' (in incremental mode), 'git-rev-list', 'git-log',
+ and 'git-whatchanged' will force a flush of the output stream
after each commit-oriented record have been flushed. If this
variable is set to "0", the output of these commands will be done
using completely buffered I/O. If this environment variable is
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gitattributes(5)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>$GIT_DIR/info/attributes, gitattributes</p>\r
+<div class="para"><p>$GIT_DIR/info/attributes, gitattributes</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>A <tt>gitattributes</tt> file is a simple text file that gives\r
-<tt>attributes</tt> to pathnames.</p>\r
-<p>Each line in <tt>gitattributes</tt> file is of form:</p>\r
+<div class="para"><p>A <tt>gitattributes</tt> file is a simple text file that gives\r
+<tt>attributes</tt> to pathnames.</p></div>\r
+<div class="para"><p>Each line in <tt>gitattributes</tt> file is of form:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>glob attr1 attr2 ...</tt></pre>\r
</div></div>\r
-<p>That is, a glob pattern followed by an attributes list,\r
+<div class="para"><p>That is, a glob pattern followed by an attributes list,\r
separated by whitespaces. When the glob pattern matches the\r
path in question, the attributes listed on the line are given to\r
-the path.</p>\r
-<p>Each attribute can be in one of these states for a given path:</p>\r
-<dl>\r
+the path.</p></div>\r
+<div class="para"><p>Each attribute can be in one of these states for a given path:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
Set\r
</dt>\r
attribute for the path is said to be Unspecified.\r
</p>\r
</dd>\r
-</dl>\r
-<p>When more than one glob pattern matches the path, a later line\r
+</dl></div>\r
+<div class="para"><p>When more than one glob pattern matches the path, a later line\r
overrides an earlier line. This overriding is done per\r
-attribute.</p>\r
-<p>When deciding what attributes are assigned to a path, git\r
+attribute.</p></div>\r
+<div class="para"><p>When deciding what attributes are assigned to a path, git\r
consults <tt>$GIT_DIR/info/attributes</tt> file (which has the highest\r
precedence), <tt>.gitattributes</tt> file in the same directory as the\r
path in question, and its parent directories (the further the\r
directory that contains <tt>.gitattributes</tt> is from the path in\r
-question, the lower its precedence).</p>\r
-<p>If you wish to affect only a single repository (i.e., to assign\r
+question, the lower its precedence).</p></div>\r
+<div class="para"><p>If you wish to affect only a single repository (i.e., to assign\r
attributes to files that are particular to one user's workflow), then\r
attributes should be placed in the <tt>$GIT_DIR/info/attributes</tt> file.\r
Attributes which should be version-controlled and distributed to other\r
repositories (i.e., attributes of interest to all users) should go into\r
-<tt>.gitattributes</tt> files.</p>\r
-<p>Sometimes you would need to override an setting of an attribute\r
+<tt>.gitattributes</tt> files.</p></div>\r
+<div class="para"><p>Sometimes you would need to override an setting of an attribute\r
for a path to <tt>unspecified</tt> state. This can be done by listing\r
-the name of the attribute prefixed with an exclamation point <tt>!</tt>.</p>\r
+the name of the attribute prefixed with an exclamation point <tt>!</tt>.</p></div>\r
</div>\r
-<h2>EFFECTS</h2>\r
+<h2 id="_effects">EFFECTS</h2>\r
<div class="sectionbody">\r
-<p>Certain operations by git can be influenced by assigning\r
+<div class="para"><p>Certain operations by git can be influenced by assigning\r
particular attributes to a path. Currently, the following\r
-operations are attributes-aware.</p>\r
-<h3>Checking-out and checking-in</h3>\r
-<p>These attributes affect how the contents stored in the\r
+operations are attributes-aware.</p></div>\r
+<h3 id="_checking_out_and_checking_in">Checking-out and checking-in</h3><div style="clear:left"></div>\r
+<div class="para"><p>These attributes affect how the contents stored in the\r
repository are copied to the working tree files when commands\r
-such as <tt>git-checkout</tt> and <tt>git-merge</tt> run. They also affect how\r
+such as <em>git-checkout</em> and <em>git-merge</em> run. They also affect how\r
git stores the contents you prepare in the working tree in the\r
-repository upon <tt>git-add</tt> and <tt>git-commit</tt>.</p>\r
-<h4><tt>crlf</tt></h4>\r
-<p>This attribute controls the line-ending convention.</p>\r
-<dl>\r
+repository upon <em>git-add</em> and <em>git-commit</em>.</p></div>\r
+<h4 id="_tt_crlf_tt"><tt>crlf</tt></h4>\r
+<div class="para"><p>This attribute controls the line-ending convention.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
Set\r
</dt>\r
<tt>input</tt> for the path.\r
</p>\r
</dd>\r
-</dl>\r
-<p>Any other value set to <tt>crlf</tt> attribute is ignored and git acts\r
-as if the attribute is left unspecified.</p>\r
-<h4>The <tt>core.autocrlf</tt> conversion</h4>\r
-<p>If the configuration variable <tt>core.autocrlf</tt> is false, no\r
-conversion is done.</p>\r
-<p>When <tt>core.autocrlf</tt> is true, it means that the platform wants\r
+</dl></div>\r
+<div class="para"><p>Any other value set to <tt>crlf</tt> attribute is ignored and git acts\r
+as if the attribute is left unspecified.</p></div>\r
+<h4 id="_the_tt_core_autocrlf_tt_conversion">The <tt>core.autocrlf</tt> conversion</h4>\r
+<div class="para"><p>If the configuration variable <tt>core.autocrlf</tt> is false, no\r
+conversion is done.</p></div>\r
+<div class="para"><p>When <tt>core.autocrlf</tt> is true, it means that the platform wants\r
CRLF line endings for files in the working tree, and you want to\r
convert them back to the normal LF line endings when checking\r
-in to the repository.</p>\r
-<p>When <tt>core.autocrlf</tt> is set to "input", line endings are\r
+in to the repository.</p></div>\r
+<div class="para"><p>When <tt>core.autocrlf</tt> is set to "input", line endings are\r
converted to LF upon checkin, but there is no conversion done\r
-upon checkout.</p>\r
-<p>If <tt>core.safecrlf</tt> is set to "true" or "warn", git verifies if\r
+upon checkout.</p></div>\r
+<div class="para"><p>If <tt>core.safecrlf</tt> is set to "true" or "warn", git verifies if\r
the conversion is reversible for the current setting of\r
<tt>core.autocrlf</tt>. For "true", git rejects irreversible\r
conversions; for "warn", git only prints a warning but accepts\r
an irreversible conversion. The safety triggers to prevent such\r
a conversion done to the files in the work tree, but there are a\r
-few exceptions. Even though…</p>\r
-<ul>\r
+few exceptions. Even though…</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
-<tt>git-add</tt> itself does not touch the files in the work tree, the\r
+<em>git-add</em> itself does not touch the files in the work tree, the\r
next checkout would, so the safety triggers;\r
</p>\r
</li>\r
<li>\r
<p>\r
-<tt>git-apply</tt> to update a text file with a patch does touch the files\r
+<em>git-apply</em> to update a text file with a patch does touch the files\r
in the work tree, but the operation is about text files and CRLF\r
conversion is about fixing the line ending inconsistencies, so the\r
safety does not trigger;\r
</li>\r
<li>\r
<p>\r
-<tt>git-diff</tt> itself does not touch the files in the work tree, it is\r
- often run to inspect the changes you intend to next <tt>git-add</tt>. To\r
+<em>git-diff</em> itself does not touch the files in the work tree, it is\r
+ often run to inspect the changes you intend to next <em>git-add</em>. To\r
catch potential problems early, safety triggers.\r
</p>\r
</li>\r
-</ul>\r
-<h4><tt>ident</tt></h4>\r
-<p>When the attribute <tt>ident</tt> is set to a path, git replaces\r
+</ul></div>\r
+<h4 id="_tt_ident_tt"><tt>ident</tt></h4>\r
+<div class="para"><p>When the attribute <tt>ident</tt> is set to a path, git replaces\r
<tt>$Id$</tt> in the blob object with <tt>$Id:</tt>, followed by\r
40-character hexadecimal blob object name, followed by a dollar\r
sign <tt>$</tt> upon checkout. Any byte sequence that begins with\r
<tt>$Id:</tt> and ends with <tt>$</tt> in the worktree file is replaced\r
-with <tt>$Id$</tt> upon check-in.</p>\r
-<h4><tt>filter</tt></h4>\r
-<p>A <tt>filter</tt> attribute can be set to a string value that names a\r
-filter driver specified in the configuration.</p>\r
-<p>A filter driver consists of a <tt>clean</tt> command and a <tt>smudge</tt>\r
+with <tt>$Id$</tt> upon check-in.</p></div>\r
+<h4 id="_tt_filter_tt"><tt>filter</tt></h4>\r
+<div class="para"><p>A <tt>filter</tt> attribute can be set to a string value that names a\r
+filter driver specified in the configuration.</p></div>\r
+<div class="para"><p>A filter driver consists of a <tt>clean</tt> command and a <tt>smudge</tt>\r
command, either of which can be left unspecified. Upon\r
checkout, when the <tt>smudge</tt> command is specified, the command is\r
fed the blob object from its standard input, and its standard\r
output is used to update the worktree file. Similarly, the\r
<tt>clean</tt> command is used to convert the contents of worktree file\r
-upon checkin.</p>\r
-<p>A missing filter driver definition in the config is not an error\r
-but makes the filter a no-op passthru.</p>\r
-<p>The content filtering is done to massage the content into a\r
+upon checkin.</p></div>\r
+<div class="para"><p>A missing filter driver definition in the config is not an error\r
+but makes the filter a no-op passthru.</p></div>\r
+<div class="para"><p>The content filtering is done to massage the content into a\r
shape that is more convenient for the platform, filesystem, and\r
the user to use. The key phrase here is "more convenient" and not\r
"turning something unusable into usable". In other words, the\r
intent is that if someone unsets the filter driver definition,\r
or does not have the appropriate filter program, the project\r
-should still be usable.</p>\r
-<h4>Interaction between checkin/checkout attributes</h4>\r
-<p>In the check-in codepath, the worktree file is first converted\r
+should still be usable.</p></div>\r
+<h4 id="_interaction_between_checkin_checkout_attributes">Interaction between checkin/checkout attributes</h4>\r
+<div class="para"><p>In the check-in codepath, the worktree file is first converted\r
with <tt>filter</tt> driver (if specified and corresponding driver\r
defined), then the result is processed with <tt>ident</tt> (if\r
specified), and then finally with <tt>crlf</tt> (again, if specified\r
-and applicable).</p>\r
-<p>In the check-out codepath, the blob content is first converted\r
-with <tt>crlf</tt>, and then <tt>ident</tt> and fed to <tt>filter</tt>.</p>\r
-<h3>Generating diff text</h3>\r
-<p>The attribute <tt>diff</tt> affects if <tt>git-diff</tt> generates textual\r
+and applicable).</p></div>\r
+<div class="para"><p>In the check-out codepath, the blob content is first converted\r
+with <tt>crlf</tt>, and then <tt>ident</tt> and fed to <tt>filter</tt>.</p></div>\r
+<h3 id="_generating_diff_text">Generating diff text</h3><div style="clear:left"></div>\r
+<div class="para"><p>The attribute <tt>diff</tt> affects if <em>git-diff</em> generates textual\r
patch for the path or just says <tt>Binary files differ</tt>. It also\r
can affect what line is shown on the hunk header <tt>@@ -k,l +n,m @@</tt>\r
-line.</p>\r
-<dl>\r
+line.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
Set\r
</dt>\r
selection.\r
</p>\r
</dd>\r
-</dl>\r
-<h4>Defining a custom diff driver</h4>\r
-<p>The definition of a diff driver is done in <tt>gitconfig</tt>, not\r
+</dl></div>\r
+<h4 id="_defining_a_custom_diff_driver">Defining a custom diff driver</h4>\r
+<div class="para"><p>The definition of a diff driver is done in <tt>gitconfig</tt>, not\r
<tt>gitattributes</tt> file, so strictly speaking this manual page is a\r
-wrong place to talk about it. However…</p>\r
-<p>To define a custom diff driver <tt>jcdiff</tt>, add a section to your\r
-<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p>\r
+wrong place to talk about it. However…</p></div>\r
+<div class="para"><p>To define a custom diff driver <tt>jcdiff</tt>, add a section to your\r
+<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[diff "jcdiff"]\r
command = j-c-diff</tt></pre>\r
</div></div>\r
-<p>When git needs to show you a diff for the path with <tt>diff</tt>\r
+<div class="para"><p>When git needs to show you a diff for the path with <tt>diff</tt>\r
attribute set to <tt>jcdiff</tt>, it calls the command you specified\r
with the above configuration, i.e. <tt>j-c-diff</tt>, with 7\r
parameters, just like <tt>GIT_EXTERNAL_DIFF</tt> program is called.\r
-See <a href="git.html">git(1)</a> for details.</p>\r
-<h4>Defining a custom hunk-header</h4>\r
-<p>Each group of changes (called "hunk") in the textual diff output\r
-is prefixed with a line of the form:</p>\r
+See <a href="git.html">git(1)</a> for details.</p></div>\r
+<h4 id="_defining_a_custom_hunk_header">Defining a custom hunk-header</h4>\r
+<div class="para"><p>Each group of changes (called "hunk") in the textual diff output\r
+is prefixed with a line of the form:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>@@ -k,l +n,m @@ TEXT</tt></pre>\r
</div></div>\r
-<p>The text is called <em>hunk header</em>, and by default a line that\r
+<div class="para"><p>The text is called <em>hunk header</em>, and by default a line that\r
begins with an alphabet, an underscore or a dollar sign is used,\r
-which matches what GNU <tt>diff -p</tt> output uses. This default\r
+which matches what GNU <em>diff -p</em> output uses. This default\r
selection however is not suited for some contents, and you can\r
-use customized pattern to make a selection.</p>\r
-<p>First in .gitattributes, you would assign the <tt>diff</tt> attribute\r
-for paths.</p>\r
+use customized pattern to make a selection.</p></div>\r
+<div class="para"><p>First in .gitattributes, you would assign the <tt>diff</tt> attribute\r
+for paths.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>*.tex diff=tex</tt></pre>\r
</div></div>\r
-<p>Then, you would define "diff.tex.funcname" configuration to\r
+<div class="para"><p>Then, you would define "diff.tex.funcname" configuration to\r
specify a regular expression that matches a line that you would\r
-want to appear as the hunk header, like this:</p>\r
+want to appear as the hunk header, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[diff "tex"]\r
funcname = "^\\(\\\\\\(sub\\)*section{.*\\)$"</tt></pre>\r
</div></div>\r
-<p>Note. A single level of backslashes are eaten by the\r
+<div class="para"><p>Note. A single level of backslashes are eaten by the\r
configuration file parser, so you would need to double the\r
backslashes; the pattern above picks a line that begins with a\r
backslash, and zero or more occurrences of <tt>sub</tt> followed by\r
-<tt>section</tt> followed by open brace, to the end of line.</p>\r
-<p>There are a few built-in patterns to make this easier, and <tt>tex</tt>\r
+<tt>section</tt> followed by open brace, to the end of line.</p></div>\r
+<div class="para"><p>There are a few built-in patterns to make this easier, and <tt>tex</tt>\r
is one of them, so you do not have to write the above in your\r
configuration file (you still need to enable this with the\r
attribute mechanism, via <tt>.gitattributes</tt>). Another built-in\r
pattern is defined for <tt>java</tt> that defines a pattern suitable\r
-for program text in Java language.</p>\r
-<h3>Performing a three-way merge</h3>\r
-<p>The attribute <tt>merge</tt> affects how three versions of a file is\r
+for program text in Java language.</p></div>\r
+<h3 id="_performing_a_three_way_merge">Performing a three-way merge</h3><div style="clear:left"></div>\r
+<div class="para"><p>The attribute <tt>merge</tt> affects how three versions of a file is\r
merged when a file-level merge is necessary during <tt>git merge</tt>,\r
-and other programs such as <tt>git revert</tt> and <tt>git cherry-pick</tt>.</p>\r
-<dl>\r
+and other programs such as <tt>git revert</tt> and <tt>git cherry-pick</tt>.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
Set\r
</dt>\r
<dd>\r
<p>\r
Built-in 3-way merge driver is used to merge the\r
- contents in a way similar to <tt>merge</tt> command of <tt>RCS</tt>\r
+ contents in a way similar to <em>merge</em> command of <tt>RCS</tt>\r
suite. This is suitable for ordinary text files.\r
</p>\r
</dd>\r
requested with "binary".\r
</p>\r
</dd>\r
-</dl>\r
-<h4>Built-in merge drivers</h4>\r
-<p>There are a few built-in low-level merge drivers defined that\r
-can be asked for via the <tt>merge</tt> attribute.</p>\r
-<dl>\r
+</dl></div>\r
+<h4 id="_built_in_merge_drivers">Built-in merge drivers</h4>\r
+<div class="para"><p>There are a few built-in low-level merge drivers defined that\r
+can be asked for via the <tt>merge</tt> attribute.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
text\r
</dt>\r
understand the implications.\r
</p>\r
</dd>\r
-</dl>\r
-<h4>Defining a custom merge driver</h4>\r
-<p>The definition of a merge driver is done in the <tt>.git/config</tt>\r
+</dl></div>\r
+<h4 id="_defining_a_custom_merge_driver">Defining a custom merge driver</h4>\r
+<div class="para"><p>The definition of a merge driver is done in the <tt>.git/config</tt>\r
file, not in the <tt>gitattributes</tt> file, so strictly speaking this\r
-manual page is a wrong place to talk about it. However…</p>\r
-<p>To define a custom merge driver <tt>filfre</tt>, add a section to your\r
-<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p>\r
+manual page is a wrong place to talk about it. However…</p></div>\r
+<div class="para"><p>To define a custom merge driver <tt>filfre</tt>, add a section to your\r
+<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>[merge "filfre"]\r
driver = filfre %O %A %B\r
recursive = binary</tt></pre>\r
</div></div>\r
-<p>The <tt>merge.*.name</tt> variable gives the driver a human-readable\r
-name.</p>\r
-<p>The <tt>merge.*.driver</tt> variable's value is used to construct a\r
+<div class="para"><p>The <tt>merge.*.name</tt> variable gives the driver a human-readable\r
+name.</p></div>\r
+<div class="para"><p>The <tt>merge.*.driver</tt> variable's value is used to construct a\r
command to run to merge ancestor's version (<tt>%O</tt>), current\r
version (<tt>%A</tt>) and the other branches' version (<tt>%B</tt>). These\r
three tokens are replaced with the names of temporary files that\r
hold the contents of these versions when the command line is\r
-built.</p>\r
-<p>The merge driver is expected to leave the result of the merge in\r
+built.</p></div>\r
+<div class="para"><p>The merge driver is expected to leave the result of the merge in\r
the file named with <tt>%A</tt> by overwriting it, and exit with zero\r
status if it managed to merge them cleanly, or non-zero if there\r
-were conflicts.</p>\r
-<p>The <tt>merge.*.recursive</tt> variable specifies what other merge\r
+were conflicts.</p></div>\r
+<div class="para"><p>The <tt>merge.*.recursive</tt> variable specifies what other merge\r
driver to use when the merge driver is called for an internal\r
merge between common ancestors, when there are more than one.\r
When left unspecified, the driver itself is used for both\r
-internal merge and the final merge.</p>\r
-<h3>Checking whitespace errors</h3>\r
-<h4><tt>whitespace</tt></h4>\r
-<p>The <tt>core.whitespace</tt> configuration variable allows you to define what\r
-<tt>diff</tt> and <tt>apply</tt> should consider whitespace errors for all paths in\r
+internal merge and the final merge.</p></div>\r
+<h3 id="_checking_whitespace_errors">Checking whitespace errors</h3><div style="clear:left"></div>\r
+<h4 id="_tt_whitespace_tt"><tt>whitespace</tt></h4>\r
+<div class="para"><p>The <tt>core.whitespace</tt> configuration variable allows you to define what\r
+<em>diff</em> and <em>apply</em> should consider whitespace errors for all paths in\r
the project (See <a href="git-config.html">git-config(1)</a>). This attribute gives you finer\r
-control per path.</p>\r
-<dl>\r
+control per path.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
Set\r
</dt>\r
variable.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
+<h3 id="_creating_an_archive">Creating an archive</h3><div style="clear:left"></div>\r
+<h4 id="_tt_export_ignore_tt"><tt>export-ignore</tt></h4>\r
+<div class="para"><p>Files and directories with the attribute <tt>export-ignore</tt> won't be added to\r
+archive files.</p></div>\r
+<h4 id="_tt_export_subst_tt"><tt>export-subst</tt></h4>\r
+<div class="para"><p>If the attribute <tt>export-subst</tt> is set for a file then git will expand\r
+several placeholders when adding this file to an archive. The\r
+expansion depends on the availability of a commit ID, i.e., if\r
+<a href="git-archive.html">git-archive(1)</a> has been given a tree instead of a commit or a\r
+tag then no replacement will be done. The placeholders are the same\r
+as those for the option <tt>--pretty=format:</tt> of <a href="git-log.html">git-log(1)</a>,\r
+except that they need to be wrapped like this: <tt>$Format:PLACEHOLDERS$</tt>\r
+in the file. E.g. the string <tt>$Format:%H$</tt> will be replaced by the\r
+commit hash.</p></div>\r
</div>\r
-<h2>EXAMPLE</h2>\r
+<h2 id="_example">EXAMPLE</h2>\r
<div class="sectionbody">\r
-<p>If you have these three <tt>gitattributes</tt> file:</p>\r
+<div class="para"><p>If you have these three <tt>gitattributes</tt> file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>(in $GIT_DIR/info/attributes)\r
abc -foo -bar\r
*.c frotz</tt></pre>\r
</div></div>\r
-<p>the attributes given to path <tt>t/abc</tt> are computed as follows:</p>\r
-<ol>\r
+<div class="para"><p>the attributes given to path <tt>t/abc</tt> are computed as follows:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
By examining <tt>t/.gitattributes</tt> (which is in the same\r
state, and <tt>baz</tt> is unset.\r
</p>\r
</li>\r
-</ol>\r
-<p>As the result, the attributes assignment to <tt>t/abc</tt> becomes:</p>\r
+</ol></div>\r
+<div class="para"><p>As the result, the attributes assignment to <tt>t/abc</tt> becomes:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>foo set to true\r
merge set to string value "filfre"\r
frotz unspecified</tt></pre>\r
</div></div>\r
-<h3>Creating an archive</h3>\r
-<h4><tt>export-ignore</tt></h4>\r
-<p>Files and directories with the attribute <tt>export-ignore</tt> won't be added to\r
-archive files.</p>\r
-<h4><tt>export-subst</tt></h4>\r
-<p>If the attribute <tt>export-subst</tt> is set for a file then git will expand\r
-several placeholders when adding this file to an archive. The\r
-expansion depends on the availability of a commit ID, i.e., if\r
-<tt>git-archive</tt> has been given a tree instead of a commit or a\r
-tag then no replacement will be done. The placeholders are the same\r
-as those for the option <tt>--pretty=format:</tt> of <a href="git-log.html">git-log(1)</a>,\r
-except that they need to be wrapped like this: <tt>$Format:PLACEHOLDERS$</tt>\r
-in the file. E.g. the string <tt>$Format:%H$</tt> will be replaced by the\r
-commit hash.</p>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:09 UTC\r
+Last updated 2008-07-06 05:17:09 UTC\r
</div>\r
</div>\r
</body>\r
These attributes affect how the contents stored in the
repository are copied to the working tree files when commands
-such as `git-checkout` and `git-merge` run. They also affect how
+such as 'git-checkout' and 'git-merge' run. They also affect how
git stores the contents you prepare in the working tree in the
-repository upon `git-add` and `git-commit`.
+repository upon 'git-add' and 'git-commit'.
`crlf`
^^^^^^
a conversion done to the files in the work tree, but there are a
few exceptions. Even though...
-- `git-add` itself does not touch the files in the work tree, the
+- 'git-add' itself does not touch the files in the work tree, the
next checkout would, so the safety triggers;
-- `git-apply` to update a text file with a patch does touch the files
+- 'git-apply' to update a text file with a patch does touch the files
in the work tree, but the operation is about text files and CRLF
conversion is about fixing the line ending inconsistencies, so the
safety does not trigger;
-- `git-diff` itself does not touch the files in the work tree, it is
- often run to inspect the changes you intend to next `git-add`. To
+- 'git-diff' itself does not touch the files in the work tree, it is
+ often run to inspect the changes you intend to next 'git-add'. To
catch potential problems early, safety triggers.
Generating diff text
~~~~~~~~~~~~~~~~~~~~
-The attribute `diff` affects if `git-diff` generates textual
+The attribute `diff` affects if 'git-diff' generates textual
patch for the path or just says `Binary files differ`. It also
can affect what line is shown on the hunk header `@@ -k,l +n,m @@`
line.
The text is called 'hunk header', and by default a line that
begins with an alphabet, an underscore or a dollar sign is used,
-which matches what GNU `diff -p` output uses. This default
+which matches what GNU 'diff -p' output uses. This default
selection however is not suited for some contents, and you can
use customized pattern to make a selection.
Set::
Built-in 3-way merge driver is used to merge the
- contents in a way similar to `merge` command of `RCS`
+ contents in a way similar to 'merge' command of `RCS`
suite. This is suitable for ordinary text files.
Unset::
^^^^^^^^^^^^
The `core.whitespace` configuration variable allows you to define what
-`diff` and `apply` should consider whitespace errors for all paths in
+'diff' and 'apply' should consider whitespace errors for all paths in
the project (See linkgit:git-config[1]). This attribute gives you finer
control per path.
variable.
+Creating an archive
+~~~~~~~~~~~~~~~~~~~
+
+`export-ignore`
+^^^^^^^^^^^^^^^
+
+Files and directories with the attribute `export-ignore` won't be added to
+archive files.
+
+`export-subst`
+^^^^^^^^^^^^^^
+
+If the attribute `export-subst` is set for a file then git will expand
+several placeholders when adding this file to an archive. The
+expansion depends on the availability of a commit ID, i.e., if
+linkgit:git-archive[1] has been given a tree instead of a commit or a
+tag then no replacement will be done. The placeholders are the same
+as those for the option `--pretty=format:` of linkgit:git-log[1],
+except that they need to be wrapped like this: `$Format:PLACEHOLDERS$`
+in the file. E.g. the string `$Format:%H$` will be replaced by the
+commit hash.
+
+
EXAMPLE
-------
----------------------------------------------------------------
-Creating an archive
-~~~~~~~~~~~~~~~~~~~
-
-`export-ignore`
-^^^^^^^^^^^^^^^
-
-Files and directories with the attribute `export-ignore` won't be added to
-archive files.
-
-`export-subst`
-^^^^^^^^^^^^^^
-
-If the attribute `export-subst` is set for a file then git will expand
-several placeholders when adding this file to an archive. The
-expansion depends on the availability of a commit ID, i.e., if
-`git-archive` has been given a tree instead of a commit or a
-tag then no replacement will be done. The placeholders are the same
-as those for the option `--pretty=format:` of linkgit:git-log[1],
-except that they need to be wrapped like this: `$Format:PLACEHOLDERS$`
-in the file. E.g. the string `$Format:%H$` will be replaced by the
-commit hash.
-
GIT
---
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gitcore-tutorial(7)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>git *</p>\r
+<div class="para"><p>git *</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This tutorial explains how to use the "core" git programs to set up and\r
-work with a git repository.</p>\r
-<p>If you just need to use git as a revision control system you may prefer\r
+<div class="para"><p>This tutorial explains how to use the "core" git programs to set up and\r
+work with a git repository.</p></div>\r
+<div class="para"><p>If you just need to use git as a revision control system you may prefer\r
to start with "A Tutorial Introduction to GIT" (<a href="gittutorial.html">gittutorial(7)</a>) or\r
-<a href="user-manual.html">the GIT User Manual</a>.</p>\r
-<p>However, an understanding of these low-level tools can be helpful if\r
-you want to understand git's internals.</p>\r
-<p>The core git is often called "plumbing", with the prettier user\r
+<a href="user-manual.html">the GIT User Manual</a>.</p></div>\r
+<div class="para"><p>However, an understanding of these low-level tools can be helpful if\r
+you want to understand git's internals.</p></div>\r
+<div class="para"><p>The core git is often called "plumbing", with the prettier user\r
interfaces on top of it called "porcelain". You may not want to use the\r
plumbing directly very often, but it can be good to know what the\r
-plumbing does for when the porcelain isn't flushing.</p>\r
+plumbing does for when the porcelain isn't flushing.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
</tr></table>\r
</div>\r
</div>\r
-<h2>Creating a git repository</h2>\r
+<h2 id="_creating_a_git_repository">Creating a git repository</h2>\r
<div class="sectionbody">\r
-<p>Creating a new git repository couldn't be easier: all git repositories start\r
+<div class="para"><p>Creating a new git repository couldn't be easier: all git repositories start\r
out empty, and the only thing you need to do is find yourself a\r
subdirectory that you want to use as a working tree - either an empty\r
one for a totally new project, or an existing working tree that you want\r
-to import into git.</p>\r
-<p>For our first example, we're going to start a totally new repository from\r
-scratch, with no pre-existing files, and we'll call it <tt>git-tutorial</tt>.\r
+to import into git.</p></div>\r
+<div class="para"><p>For our first example, we're going to start a totally new repository from\r
+scratch, with no pre-existing files, and we'll call it <em>git-tutorial</em>.\r
To start up, create a subdirectory for it, change into that\r
-subdirectory, and initialize the git infrastructure with <tt>git-init</tt>:</p>\r
+subdirectory, and initialize the git infrastructure with <em>git-init</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ mkdir git-tutorial\r
$ cd git-tutorial\r
$ git init</tt></pre>\r
</div></div>\r
-<p>to which git will reply</p>\r
+<div class="para"><p>to which git will reply</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Initialized empty Git repository in .git/</tt></pre>\r
</div></div>\r
-<p>which is just git's way of saying that you haven't been doing anything\r
+<div class="para"><p>which is just git's way of saying that you haven't been doing anything\r
strange, and that it will have created a local <tt>.git</tt> directory setup for\r
your new project. You will now have a <tt>.git</tt> directory, and you can\r
-inspect that with <tt>ls</tt>. For your new empty project, it should show you\r
-three entries, among other things:</p>\r
-<ul>\r
+inspect that with <em>ls</em>. For your new empty project, it should show you\r
+three entries, among other things:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
a file called <tt>HEAD</tt>, that has <tt>ref: refs/heads/master</tt> in it.\r
This is similar to a symbolic link and points at\r
<tt>refs/heads/master</tt> relative to the <tt>HEAD</tt> file.\r
</p>\r
-<p>Don't worry about the fact that the file that the <tt>HEAD</tt> link points to\r
+<div class="para"><p>Don't worry about the fact that the file that the <tt>HEAD</tt> link points to\r
doesn't even exist yet — you haven't created the commit that will\r
-start your <tt>HEAD</tt> development branch yet.</p>\r
+start your <tt>HEAD</tt> development branch yet.</p></div>\r
</li>\r
<li>\r
<p>\r
a subdirectory called <tt>refs</tt>, which contains references to objects.\r
</p>\r
</li>\r
-</ul>\r
-<p>In particular, the <tt>refs</tt> subdirectory will contain two other\r
+</ul></div>\r
+<div class="para"><p>In particular, the <tt>refs</tt> subdirectory will contain two other\r
subdirectories, named <tt>heads</tt> and <tt>tags</tt> respectively. They do\r
exactly what their names imply: they contain references to any number\r
of different <em>heads</em> of development (aka <em>branches</em>), and to any\r
<em>tags</em> that you have created to name specific versions in your\r
-repository.</p>\r
-<p>One note: the special <tt>master</tt> head is the default branch, which is\r
+repository.</p></div>\r
+<div class="para"><p>One note: the special <tt>master</tt> head is the default branch, which is\r
why the <tt>.git/HEAD</tt> file was created points to it even if it\r
doesn't yet exist. Basically, the <tt>HEAD</tt> link is supposed to always\r
point to the branch you are working on right now, and you always\r
-start out expecting to work on the <tt>master</tt> branch.</p>\r
-<p>However, this is only a convention, and you can name your branches\r
+start out expecting to work on the <tt>master</tt> branch.</p></div>\r
+<div class="para"><p>However, this is only a convention, and you can name your branches\r
anything you want, and don't have to ever even <em>have</em> a <tt>master</tt>\r
branch. A number of the git tools will assume that <tt>.git/HEAD</tt> is\r
-valid, though.</p>\r
+valid, though.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
after finishing this tutorial.</td>\r
</tr></table>\r
</div>\r
-<p>You have now created your first git repository. Of course, since it's\r
-empty, that's not very useful, so let's start populating it with data.</p>\r
+<div class="para"><p>You have now created your first git repository. Of course, since it's\r
+empty, that's not very useful, so let's start populating it with data.</p></div>\r
</div>\r
-<h2>Populating a git repository</h2>\r
+<h2 id="_populating_a_git_repository">Populating a git repository</h2>\r
<div class="sectionbody">\r
-<p>We'll keep this simple and stupid, so we'll start off with populating a\r
-few trivial files just to get a feel for it.</p>\r
-<p>Start off with just creating any random files that you want to maintain\r
+<div class="para"><p>We'll keep this simple and stupid, so we'll start off with populating a\r
+few trivial files just to get a feel for it.</p></div>\r
+<div class="para"><p>Start off with just creating any random files that you want to maintain\r
in your git repository. We'll start off with a few bad examples, just to\r
-get a feel for how this works:</p>\r
+get a feel for how this works:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ echo "Hello World" >hello\r
$ echo "Silly example" >example</tt></pre>\r
</div></div>\r
-<p>you have now created two files in your working tree (aka <em>working directory</em>),\r
-but to actually check in your hard work, you will have to go through two steps:</p>\r
-<ul>\r
+<div class="para"><p>you have now created two files in your working tree (aka <em>working directory</em>),\r
+but to actually check in your hard work, you will have to go through two steps:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
fill in the <em>index</em> file (aka <em>cache</em>) with the information about your\r
commit that index file as an object.\r
</p>\r
</li>\r
-</ul>\r
-<p>The first step is trivial: when you want to tell git about any changes\r
-to your working tree, you use the <tt>git-update-index</tt> program. That\r
+</ul></div>\r
+<div class="para"><p>The first step is trivial: when you want to tell git about any changes\r
+to your working tree, you use the <em>git-update-index</em> program. That\r
program normally just takes a list of filenames you want to update, but\r
to avoid trivial mistakes, it refuses to add new entries to the index\r
(or remove existing ones) unless you explicitly tell it that you're\r
adding a new entry with the <tt>--add</tt> flag (or removing an entry with the\r
-<tt>--remove</tt>) flag.</p>\r
-<p>So to populate the index with the two files you just created, you can do</p>\r
+<tt>--remove</tt>) flag.</p></div>\r
+<div class="para"><p>So to populate the index with the two files you just created, you can do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git update-index --add hello example</tt></pre>\r
</div></div>\r
-<p>and you have now told git to track those two files.</p>\r
-<p>In fact, as you did that, if you now look into your object directory,\r
+<div class="para"><p>and you have now told git to track those two files.</p></div>\r
+<div class="para"><p>In fact, as you did that, if you now look into your object directory,\r
you'll notice that git will have added two new objects to the object\r
-database. If you did exactly the steps above, you should now be able to do</p>\r
+database. If you did exactly the steps above, you should now be able to do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ ls .git/objects/??/*</tt></pre>\r
</div></div>\r
-<p>and see two files:</p>\r
+<div class="para"><p>and see two files:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>.git/objects/55/7db03de997c86a4a028e1ebd3a1ceb225be238\r
.git/objects/f2/4c74a2e500f5ee1332c86b94199f52b1d1d962</tt></pre>\r
</div></div>\r
-<p>which correspond with the objects with names of <tt>557db…</tt> and\r
-<tt>f24c7…</tt> respectively.</p>\r
-<p>If you want to, you can use <tt>git-cat-file</tt> to look at those objects, but\r
-you'll have to use the object name, not the filename of the object:</p>\r
+<div class="para"><p>which correspond with the objects with names of <tt>557db…</tt> and\r
+<tt>f24c7…</tt> respectively.</p></div>\r
+<div class="para"><p>If you want to, you can use <em>git-cat-file</em> to look at those objects, but\r
+you'll have to use the object name, not the filename of the object:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cat-file -t 557db03de997c86a4a028e1ebd3a1ceb225be238</tt></pre>\r
</div></div>\r
-<p>where the <tt>-t</tt> tells <tt>git-cat-file</tt> to tell you what the "type" of the\r
+<div class="para"><p>where the <tt>-t</tt> tells <em>git-cat-file</em> to tell you what the "type" of the\r
object is. git will tell you that you have a "blob" object (i.e., just a\r
-regular file), and you can see the contents with</p>\r
+regular file), and you can see the contents with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cat-file "blob" 557db03</tt></pre>\r
</div></div>\r
-<p>which will print out "Hello World". The object <tt>557db03</tt> is nothing\r
-more than the contents of your file <tt>hello</tt>.</p>\r
+<div class="para"><p>which will print out "Hello World". The object <tt>557db03</tt> is nothing\r
+more than the contents of your file <tt>hello</tt>.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
hexadecimal digits in most places.</td>\r
</tr></table>\r
</div>\r
-<p>Anyway, as we mentioned previously, you normally never actually take a\r
+<div class="para"><p>Anyway, as we mentioned previously, you normally never actually take a\r
look at the objects themselves, and typing long 40-character hex\r
names is not something you'd normally want to do. The above digression\r
-was just to show that <tt>git-update-index</tt> did something magical, and\r
+was just to show that <em>git-update-index</em> did something magical, and\r
actually saved away the contents of your files into the git object\r
-database.</p>\r
-<p>Updating the index did something else too: it created a <tt>.git/index</tt>\r
+database.</p></div>\r
+<div class="para"><p>Updating the index did something else too: it created a <tt>.git/index</tt>\r
file. This is the index that describes your current working tree, and\r
something you should be very aware of. Again, you normally never worry\r
about the index file itself, but you should be aware of the fact that\r
you have not actually really "checked in" your files into git so far,\r
-you've only <strong>told</strong> git about them.</p>\r
-<p>However, since git knows about them, you can now start using some of the\r
-most basic git commands to manipulate the files or look at their status.</p>\r
-<p>In particular, let's not even check in the two files into git yet, we'll\r
-start off by adding another line to <tt>hello</tt> first:</p>\r
+you've only <strong>told</strong> git about them.</p></div>\r
+<div class="para"><p>However, since git knows about them, you can now start using some of the\r
+most basic git commands to manipulate the files or look at their status.</p></div>\r
+<div class="para"><p>In particular, let's not even check in the two files into git yet, we'll\r
+start off by adding another line to <tt>hello</tt> first:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ echo "It's a new day for git" >>hello</tt></pre>\r
</div></div>\r
-<p>and you can now, since you told git about the previous state of <tt>hello</tt>, ask\r
+<div class="para"><p>and you can now, since you told git about the previous state of <tt>hello</tt>, ask\r
git what has changed in the tree compared to your old index, using the\r
-<tt>git-diff-files</tt> command:</p>\r
+<em>git-diff-files</em> command:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff-files</tt></pre>\r
</div></div>\r
-<p>Oops. That wasn't very readable. It just spit out its own internal\r
-version of a <tt>diff</tt>, but that internal version really just tells you\r
+<div class="para"><p>Oops. That wasn't very readable. It just spit out its own internal\r
+version of a <em>diff</em>, but that internal version really just tells you\r
that it has noticed that "hello" has been modified, and that the old object\r
-contents it had have been replaced with something else.</p>\r
-<p>To make it readable, we can tell <tt>git-diff-files</tt> to output the\r
-differences as a patch, using the <tt>-p</tt> flag:</p>\r
+contents it had have been replaced with something else.</p></div>\r
+<div class="para"><p>To make it readable, we can tell <em>git-diff-files</em> to output the\r
+differences as a patch, using the <tt>-p</tt> flag:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff-files -p\r
Hello World\r
+It's a new day for git</tt></pre>\r
</div></div>\r
-<p>i.e. the diff of the change we caused by adding another line to <tt>hello</tt>.</p>\r
-<p>In other words, <tt>git-diff-files</tt> always shows us the difference between\r
+<div class="para"><p>i.e. the diff of the change we caused by adding another line to <tt>hello</tt>.</p></div>\r
+<div class="para"><p>In other words, <em>git-diff-files</em> always shows us the difference between\r
what is recorded in the index, and what is currently in the working\r
-tree. That's very useful.</p>\r
-<p>A common shorthand for <tt>git diff-files -p</tt> is to just write <tt>git\r
-diff</tt>, which will do the same thing.</p>\r
+tree. That's very useful.</p></div>\r
+<div class="para"><p>A common shorthand for <tt>git diff-files -p</tt> is to just write <tt>git\r
+diff</tt>, which will do the same thing.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff\r
+It's a new day for git</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Committing git state</h2>\r
+<h2 id="_committing_git_state">Committing git state</h2>\r
<div class="sectionbody">\r
-<p>Now, we want to go to the next stage in git, which is to take the files\r
+<div class="para"><p>Now, we want to go to the next stage in git, which is to take the files\r
that git knows about in the index, and commit them as a real tree. We do\r
that in two phases: creating a <em>tree</em> object, and committing that <em>tree</em>\r
object as a <em>commit</em> object together with an explanation of what the\r
-tree was all about, along with information of how we came to that state.</p>\r
-<p>Creating a tree object is trivial, and is done with <tt>git-write-tree</tt>.\r
+tree was all about, along with information of how we came to that state.</p></div>\r
+<div class="para"><p>Creating a tree object is trivial, and is done with <em>git-write-tree</em>.\r
There are no options or other input: <tt>git write-tree</tt> will take the\r
current index state, and write an object that describes that whole\r
index. In other words, we're now tying together all the different\r
filenames with their contents (and their permissions), and we're\r
-creating the equivalent of a git "directory" object:</p>\r
+creating the equivalent of a git "directory" object:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git write-tree</tt></pre>\r
</div></div>\r
-<p>and this will just output the name of the resulting tree, in this case\r
-(if you have done exactly as I've described) it should be</p>\r
+<div class="para"><p>and this will just output the name of the resulting tree, in this case\r
+(if you have done exactly as I've described) it should be</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>8988da15d077d4829fc51d8544c097def6644dbb</tt></pre>\r
</div></div>\r
-<p>which is another incomprehensible object name. Again, if you want to,\r
+<div class="para"><p>which is another incomprehensible object name. Again, if you want to,\r
you can use <tt>git cat-file -t 8988d...</tt> to see that this time the object\r
is not a "blob" object, but a "tree" object (you can also use\r
<tt>git cat-file</tt> to actually output the raw object contents, but you'll see\r
-mainly a binary mess, so that's less interesting).</p>\r
-<p>However — normally you'd never use <tt>git-write-tree</tt> on its own, because\r
+mainly a binary mess, so that's less interesting).</p></div>\r
+<div class="para"><p>However — normally you'd never use <em>git-write-tree</em> on its own, because\r
normally you always commit a tree into a commit object using the\r
-<tt>git-commit-tree</tt> command. In fact, it's easier to not actually use\r
-<tt>git-write-tree</tt> on its own at all, but to just pass its result in as an\r
-argument to <tt>git-commit-tree</tt>.</p>\r
-<p><tt>git-commit-tree</tt> normally takes several arguments — it wants to know\r
+<em>git-commit-tree</em> command. In fact, it's easier to not actually use\r
+<em>git-write-tree</em> on its own at all, but to just pass its result in as an\r
+argument to <em>git-commit-tree</em>.</p></div>\r
+<div class="para"><p><em>git-commit-tree</em> normally takes several arguments — it wants to know\r
what the <em>parent</em> of a commit was, but since this is the first commit\r
ever in this new repository, and it has no parents, we only need to pass in\r
-the object name of the tree. However, <tt>git-commit-tree</tt> also wants to get a\r
+the object name of the tree. However, <em>git-commit-tree</em> also wants to get a\r
commit message on its standard input, and it will write out the resulting\r
-object name for the commit to its standard output.</p>\r
-<p>And this is where we create the <tt>.git/refs/heads/master</tt> file\r
+object name for the commit to its standard output.</p></div>\r
+<div class="para"><p>And this is where we create the <tt>.git/refs/heads/master</tt> file\r
which is pointed at by <tt>HEAD</tt>. This file is supposed to contain\r
the reference to the top-of-tree of the master branch, and since\r
-that's exactly what <tt>git-commit-tree</tt> spits out, we can do this\r
-all with a sequence of simple shell commands:</p>\r
+that's exactly what <em>git-commit-tree</em> spits out, we can do this\r
+all with a sequence of simple shell commands:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ tree=$(git write-tree)\r
$ commit=$(echo 'Initial commit' | git commit-tree $tree)\r
$ git update-ref HEAD $commit</tt></pre>\r
</div></div>\r
-<p>In this case this creates a totally new commit that is not related to\r
+<div class="para"><p>In this case this creates a totally new commit that is not related to\r
anything else. Normally you do this only <strong>once</strong> for a project ever, and\r
-all later commits will be parented on top of an earlier commit.</p>\r
-<p>Again, normally you'd never actually do this by hand. There is a\r
+all later commits will be parented on top of an earlier commit.</p></div>\r
+<div class="para"><p>Again, normally you'd never actually do this by hand. There is a\r
helpful script called <tt>git commit</tt> that will do all of this for you. So\r
you could have just written <tt>git commit</tt>\r
-instead, and it would have done the above magic scripting for you.</p>\r
+instead, and it would have done the above magic scripting for you.</p></div>\r
</div>\r
-<h2>Making a change</h2>\r
+<h2 id="_making_a_change">Making a change</h2>\r
<div class="sectionbody">\r
-<p>Remember how we did the <tt>git-update-index</tt> on file <tt>hello</tt> and then we\r
+<div class="para"><p>Remember how we did the <em>git-update-index</em> on file <tt>hello</tt> and then we\r
changed <tt>hello</tt> afterward, and could compare the new state of <tt>hello</tt> with the\r
-state we saved in the index file?</p>\r
-<p>Further, remember how I said that <tt>git-write-tree</tt> writes the contents\r
+state we saved in the index file?</p></div>\r
+<div class="para"><p>Further, remember how I said that <em>git-write-tree</em> writes the contents\r
of the <strong>index</strong> file to the tree, and thus what we just committed was in\r
fact the <strong>original</strong> contents of the file <tt>hello</tt>, not the new ones. We did\r
that on purpose, to show the difference between the index state, and the\r
state in the working tree, and how they don't have to match, even\r
-when we commit things.</p>\r
-<p>As before, if we do <tt>git diff-files -p</tt> in our git-tutorial project,\r
+when we commit things.</p></div>\r
+<div class="para"><p>As before, if we do <tt>git diff-files -p</tt> in our git-tutorial project,\r
we'll still see the same difference we saw last time: the index file\r
hasn't changed by the act of committing anything. However, now that we\r
have committed something, we can also learn to use a new command:\r
-<tt>git-diff-index</tt>.</p>\r
-<p>Unlike <tt>git-diff-files</tt>, which showed the difference between the index\r
-file and the working tree, <tt>git-diff-index</tt> shows the differences\r
+<em>git-diff-index</em>.</p></div>\r
+<div class="para"><p>Unlike <em>git-diff-files</em>, which showed the difference between the index\r
+file and the working tree, <em>git-diff-index</em> shows the differences\r
between a committed <strong>tree</strong> and either the index file or the working\r
-tree. In other words, <tt>git-diff-index</tt> wants a tree to be diffed\r
+tree. In other words, <em>git-diff-index</em> wants a tree to be diffed\r
against, and before we did the commit, we couldn't do that, because we\r
-didn't have anything to diff against.</p>\r
-<p>But now we can do</p>\r
+didn't have anything to diff against.</p></div>\r
+<div class="para"><p>But now we can do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff-index -p HEAD</tt></pre>\r
</div></div>\r
-<p>(where <tt>-p</tt> has the same meaning as it did in <tt>git-diff-files</tt>), and it\r
+<div class="para"><p>(where <tt>-p</tt> has the same meaning as it did in <em>git-diff-files</em>), and it\r
will show us the same difference, but for a totally different reason.\r
Now we're comparing the working tree not against the index file,\r
but against the tree we just wrote. It just so happens that those two\r
-are obviously the same, so we get the same result.</p>\r
-<p>Again, because this is a common operation, you can also just shorthand\r
-it with</p>\r
+are obviously the same, so we get the same result.</p></div>\r
+<div class="para"><p>Again, because this is a common operation, you can also just shorthand\r
+it with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff HEAD</tt></pre>\r
</div></div>\r
-<p>which ends up doing the above for you.</p>\r
-<p>In other words, <tt>git-diff-index</tt> normally compares a tree against the\r
+<div class="para"><p>which ends up doing the above for you.</p></div>\r
+<div class="para"><p>In other words, <em>git-diff-index</em> normally compares a tree against the\r
working tree, but when given the <tt>--cached</tt> flag, it is told to\r
instead compare against just the index cache contents, and ignore the\r
current working tree state entirely. Since we just wrote the index\r
file to HEAD, doing <tt>git diff-index --cached -p HEAD</tt> should thus return\r
-an empty set of differences, and that's exactly what it does.</p>\r
+an empty set of differences, and that's exactly what it does.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
<td class="content">\r
-<p><tt>git-diff-index</tt> really always uses the index for its\r
+<div class="para"><p><em>git-diff-index</em> really always uses the index for its\r
comparisons, and saying that it compares a tree against the working\r
tree is thus not strictly accurate. In particular, the list of\r
files to compare (the "meta-data") <strong>always</strong> comes from the index file,\r
regardless of whether the <tt>--cached</tt> flag is used or not. The <tt>--cached</tt>\r
flag really only determines whether the file <strong>contents</strong> to be compared\r
-come from the working tree or not.</p>\r
-<p>This is not hard to understand, as soon as you realize that git simply\r
+come from the working tree or not.</p></div>\r
+<div class="para"><p>This is not hard to understand, as soon as you realize that git simply\r
never knows (or cares) about files that it is not told about\r
explicitly. git will never go <strong>looking</strong> for files to compare, it\r
expects you to tell it what the files are, and that's what the index\r
-is there for.</p>\r
+is there for.</p></div>\r
</td>\r
</tr></table>\r
</div>\r
-<p>However, our next step is to commit the <strong>change</strong> we did, and again, to\r
+<div class="para"><p>However, our next step is to commit the <strong>change</strong> we did, and again, to\r
understand what's going on, keep in mind the difference between "working\r
tree contents", "index file" and "committed tree". We have changes\r
in the working tree that we want to commit, and we always have to\r
work through the index file, so the first thing we need to do is to\r
-update the index cache:</p>\r
+update the index cache:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git update-index hello</tt></pre>\r
</div></div>\r
-<p>(note how we didn't need the <tt>--add</tt> flag this time, since git knew\r
-about the file already).</p>\r
-<p>Note what happens to the different <tt>git-diff-*</tt> versions here. After\r
+<div class="para"><p>(note how we didn't need the <tt>--add</tt> flag this time, since git knew\r
+about the file already).</p></div>\r
+<div class="para"><p>Note what happens to the different <em>git-diff-*</em> versions here. After\r
we've updated <tt>hello</tt> in the index, <tt>git diff-files -p</tt> now shows no\r
differences, but <tt>git diff-index -p HEAD</tt> still *does* show that the\r
current state is different from the state we committed. In fact, now\r
-<tt>git-diff-index</tt> shows the same difference whether we use the <tt>--cached</tt>\r
-flag or not, since now the index is coherent with the working tree.</p>\r
-<p>Now, since we've updated <tt>hello</tt> in the index, we can commit the new\r
+<em>git-diff-index</em> shows the same difference whether we use the <tt>--cached</tt>\r
+flag or not, since now the index is coherent with the working tree.</p></div>\r
+<div class="para"><p>Now, since we've updated <tt>hello</tt> in the index, we can commit the new\r
version. We could do it by writing the tree by hand again, and\r
committing the tree (this time we'd have to use the <tt>-p HEAD</tt> flag to\r
tell commit that the HEAD was the <strong>parent</strong> of the new commit, and that\r
this wasn't an initial commit any more), but you've done that once\r
-already, so let's just use the helpful script this time:</p>\r
+already, so let's just use the helpful script this time:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit</tt></pre>\r
</div></div>\r
-<p>which starts an editor for you to write the commit message and tells you\r
-a bit about what you have done.</p>\r
-<p>Write whatever message you want, and all the lines that start with <em>#</em>\r
+<div class="para"><p>which starts an editor for you to write the commit message and tells you\r
+a bit about what you have done.</p></div>\r
+<div class="para"><p>Write whatever message you want, and all the lines that start with <em>#</em>\r
will be pruned out, and the rest will be used as the commit message for\r
the change. If you decide you don't want to commit anything after all at\r
this point (you can continue to edit things and update the index), you\r
can just leave an empty message. Otherwise <tt>git commit</tt> will commit\r
-the change for you.</p>\r
-<p>You've now made your first real git commit. And if you're interested in\r
+the change for you.</p></div>\r
+<div class="para"><p>You've now made your first real git commit. And if you're interested in\r
looking at what <tt>git commit</tt> really does, feel free to investigate:\r
it's a few very simple shell scripts to generate the helpful (?) commit\r
message headers, and a few one-liners that actually do the\r
-commit itself (<tt>git-commit</tt>).</p>\r
+commit itself (<em>git-commit</em>).</p></div>\r
</div>\r
-<h2>Inspecting Changes</h2>\r
+<h2 id="_inspecting_changes">Inspecting Changes</h2>\r
<div class="sectionbody">\r
-<p>While creating changes is useful, it's even more useful if you can tell\r
+<div class="para"><p>While creating changes is useful, it's even more useful if you can tell\r
later what changed. The most useful command for this is another of the\r
-<tt>diff</tt> family, namely <tt>git-diff-tree</tt>.</p>\r
-<p><tt>git-diff-tree</tt> can be given two arbitrary trees, and it will tell you the\r
+<em>diff</em> family, namely <em>git-diff-tree</em>.</p></div>\r
+<div class="para"><p><em>git-diff-tree</em> can be given two arbitrary trees, and it will tell you the\r
differences between them. Perhaps even more commonly, though, you can\r
give it just a single commit object, and it will figure out the parent\r
of that commit itself, and show the difference directly. Thus, to get\r
-the same diff that we've already seen several times, we can now do</p>\r
+the same diff that we've already seen several times, we can now do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff-tree -p HEAD</tt></pre>\r
</div></div>\r
-<p>(again, <tt>-p</tt> means to show the difference as a human-readable patch),\r
-and it will show what the last commit (in <tt>HEAD</tt>) actually changed.</p>\r
+<div class="para"><p>(again, <tt>-p</tt> means to show the difference as a human-readable patch),\r
+and it will show what the last commit (in <tt>HEAD</tt>) actually changed.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
<td class="content">\r
-<p>Here is an ASCII art by Jon Loeliger that illustrates how\r
-various diff-* commands compare things.</p>\r
+<div class="para"><p>Here is an ASCII art by Jon Loeliger that illustrates how\r
+various diff-* commands compare things.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt> diff-tree\r
</td>\r
</tr></table>\r
</div>\r
-<p>More interestingly, you can also give <tt>git-diff-tree</tt> the <tt>--pretty</tt> flag,\r
+<div class="para"><p>More interestingly, you can also give <em>git-diff-tree</em> the <tt>--pretty</tt> flag,\r
which tells it to also show the commit message and author and date of the\r
commit, and you can tell it to show a whole series of diffs.\r
Alternatively, you can tell it to be "silent", and not show the diffs at\r
-all, but just show the actual commit message.</p>\r
-<p>In fact, together with the <tt>git-rev-list</tt> program (which generates a\r
-list of revisions), <tt>git-diff-tree</tt> ends up being a veritable fount of\r
-changes. A trivial (but very useful) script called <tt>git-whatchanged</tt> is\r
+all, but just show the actual commit message.</p></div>\r
+<div class="para"><p>In fact, together with the <em>git-rev-list</em> program (which generates a\r
+list of revisions), <em>git-diff-tree</em> ends up being a veritable fount of\r
+changes. A trivial (but very useful) script called <em>git-whatchanged</em> is\r
included with git which does exactly this, and shows a log of recent\r
-activities.</p>\r
-<p>To see the whole history of our pitiful little git-tutorial project, you\r
-can do</p>\r
+activities.</p></div>\r
+<div class="para"><p>To see the whole history of our pitiful little git-tutorial project, you\r
+can do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log</tt></pre>\r
</div></div>\r
-<p>which shows just the log messages, or if we want to see the log together\r
+<div class="para"><p>which shows just the log messages, or if we want to see the log together\r
with the associated patches use the more complex (and much more\r
-powerful)</p>\r
+powerful)</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git whatchanged -p</tt></pre>\r
</div></div>\r
-<p>and you will see exactly what has changed in the repository over its\r
-short history.</p>\r
+<div class="para"><p>and you will see exactly what has changed in the repository over its\r
+short history.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
If this is a problem because it is huge, you can hide it by setting\r
the log.showroot configuration variable to false. Having this, you\r
can still show it for each command just adding the <tt>--root</tt> option,\r
-which is a flag for <tt>git-diff-tree</tt> accepted by both commands.</td>\r
+which is a flag for <em>git-diff-tree</em> accepted by both commands.</td>\r
</tr></table>\r
</div>\r
-<p>With that, you should now be having some inkling of what git does, and\r
-can explore on your own.</p>\r
+<div class="para"><p>With that, you should now be having some inkling of what git does, and\r
+can explore on your own.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
<td class="content">Most likely, you are not directly using the core\r
-git Plumbing commands, but using Porcelain such as <tt>git-add</tt>, `git-rm'\r
+git Plumbing commands, but using Porcelain such as <em>git-add</em>, `git-rm'\r
and `git-commit'.</td>\r
</tr></table>\r
</div>\r
</div>\r
-<h2>Tagging a version</h2>\r
+<h2 id="_tagging_a_version">Tagging a version</h2>\r
<div class="sectionbody">\r
-<p>In git, there are two kinds of tags, a "light" one, and an "annotated tag".</p>\r
-<p>A "light" tag is technically nothing more than a branch, except we put\r
+<div class="para"><p>In git, there are two kinds of tags, a "light" one, and an "annotated tag".</p></div>\r
+<div class="para"><p>A "light" tag is technically nothing more than a branch, except we put\r
it in the <tt>.git/refs/tags/</tt> subdirectory instead of calling it a <tt>head</tt>.\r
-So the simplest form of tag involves nothing more than</p>\r
+So the simplest form of tag involves nothing more than</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git tag my-first-tag</tt></pre>\r
</div></div>\r
-<p>which just writes the current <tt>HEAD</tt> into the <tt>.git/refs/tags/my-first-tag</tt>\r
+<div class="para"><p>which just writes the current <tt>HEAD</tt> into the <tt>.git/refs/tags/my-first-tag</tt>\r
file, after which point you can then use this symbolic name for that\r
-particular state. You can, for example, do</p>\r
+particular state. You can, for example, do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff my-first-tag</tt></pre>\r
</div></div>\r
-<p>to diff your current state against that tag which at this point will\r
+<div class="para"><p>to diff your current state against that tag which at this point will\r
obviously be an empty diff, but if you continue to develop and commit\r
stuff, you can use your tag as an "anchor-point" to see what has changed\r
-since you tagged it.</p>\r
-<p>An "annotated tag" is actually a real git object, and contains not only a\r
+since you tagged it.</p></div>\r
+<div class="para"><p>An "annotated tag" is actually a real git object, and contains not only a\r
pointer to the state you want to tag, but also a small tag name and\r
message, along with optionally a PGP signature that says that yes,\r
you really did\r
that tag. You create these annotated tags with either the <tt>-a</tt> or\r
-<tt>-s</tt> flag to <tt>git tag</tt>:</p>\r
+<tt>-s</tt> flag to <em>git-tag</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git tag -s <tagname></tt></pre>\r
</div></div>\r
-<p>which will sign the current <tt>HEAD</tt> (but you can also give it another\r
+<div class="para"><p>which will sign the current <tt>HEAD</tt> (but you can also give it another\r
argument that specifies the thing to tag, i.e., you could have tagged the\r
-current <tt>mybranch</tt> point by using <tt>git tag <tagname> mybranch</tt>).</p>\r
-<p>You normally only do signed tags for major releases or things\r
+current <tt>mybranch</tt> point by using <tt>git tag <tagname> mybranch</tt>).</p></div>\r
+<div class="para"><p>You normally only do signed tags for major releases or things\r
like that, while the light-weight tags are useful for any marking you\r
want to do — any time you decide that you want to remember a certain\r
point, just create a private tag for it, and you have a nice symbolic\r
-name for the state at that point.</p>\r
+name for the state at that point.</p></div>\r
</div>\r
-<h2>Copying repositories</h2>\r
+<h2 id="_copying_repositories">Copying repositories</h2>\r
<div class="sectionbody">\r
-<p>git repositories are normally totally self-sufficient and relocatable.\r
+<div class="para"><p>git repositories are normally totally self-sufficient and relocatable.\r
Unlike CVS, for example, there is no separate notion of\r
"repository" and "working tree". A git repository normally <strong>is</strong> the\r
working tree, with the local git information hidden in the <tt>.git</tt>\r
-subdirectory. There is nothing else. What you see is what you got.</p>\r
+subdirectory. There is nothing else. What you see is what you got.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
accurate, but it's a good model for all normal use.</td>\r
</tr></table>\r
</div>\r
-<p>This has two implications:</p>\r
-<ul>\r
+<div class="para"><p>This has two implications:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
if you grow bored with the tutorial repository you created (or you've\r
<div class="content">\r
<pre><tt>$ rm -rf git-tutorial</tt></pre>\r
</div></div>\r
-<p>and it will be gone. There's no external repository, and there's no\r
-history outside the project you created.</p>\r
+<div class="para"><p>and it will be gone. There's no external repository, and there's no\r
+history outside the project you created.</p></div>\r
</li>\r
<li>\r
<p>\r
if you want to move or duplicate a git repository, you can do so. There\r
- is <tt>git clone</tt> command, but if all you want to do is just to\r
+ is <em>git-clone</em> command, but if all you want to do is just to\r
create a copy of your repository (with all the full history that\r
went along with it), you can do so with a regular\r
<tt>cp -a git-tutorial new-git-tutorial</tt>.\r
</p>\r
-<p>Note that when you've moved or copied a git repository, your git index\r
+<div class="para"><p>Note that when you've moved or copied a git repository, your git index\r
file (which caches various information, notably some of the "stat"\r
information for the files involved) will likely need to be refreshed.\r
-So after you do a <tt>cp -a</tt> to create a new copy, you'll want to do</p>\r
+So after you do a <tt>cp -a</tt> to create a new copy, you'll want to do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git update-index --refresh</tt></pre>\r
</div></div>\r
-<p>in the new repository to make sure that the index file is up-to-date.</p>\r
+<div class="para"><p>in the new repository to make sure that the index file is up-to-date.</p></div>\r
</li>\r
-</ul>\r
-<p>Note that the second point is true even across machines. You can\r
+</ul></div>\r
+<div class="para"><p>Note that the second point is true even across machines. You can\r
duplicate a remote git repository with <strong>any</strong> regular copy mechanism, be it\r
-<tt>scp</tt>, <tt>rsync</tt> or <tt>wget</tt>.</p>\r
-<p>When copying a remote repository, you'll want to at a minimum update the\r
+<em>scp</em>, <em>rsync</em> or <em>wget</em>.</p></div>\r
+<div class="para"><p>When copying a remote repository, you'll want to at a minimum update the\r
index cache when you do this, and especially with other peoples'\r
repositories you often want to make sure that the index cache is in some\r
known state (you don't know <strong>what</strong> they've done and not yet checked in),\r
-so usually you'll precede the <tt>git-update-index</tt> with a</p>\r
+so usually you'll precede the <em>git-update-index</em> with a</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git read-tree --reset HEAD\r
$ git update-index --refresh</tt></pre>\r
</div></div>\r
-<p>which will force a total index re-build from the tree pointed to by <tt>HEAD</tt>.\r
-It resets the index contents to <tt>HEAD</tt>, and then the <tt>git-update-index</tt>\r
+<div class="para"><p>which will force a total index re-build from the tree pointed to by <tt>HEAD</tt>.\r
+It resets the index contents to <tt>HEAD</tt>, and then the <em>git-update-index</em>\r
makes sure to match up all index entries with the checked-out files.\r
If the original repository had uncommitted changes in its\r
working tree, <tt>git update-index --refresh</tt> notices them and\r
-tells you they need to be updated.</p>\r
-<p>The above can also be written as simply</p>\r
+tells you they need to be updated.</p></div>\r
+<div class="para"><p>The above can also be written as simply</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git reset</tt></pre>\r
</div></div>\r
-<p>and in fact a lot of the common git command combinations can be scripted\r
+<div class="para"><p>and in fact a lot of the common git command combinations can be scripted\r
with the <tt>git xyz</tt> interfaces. You can learn things by just looking\r
at what the various git scripts do. For example, <tt>git reset</tt> used to be\r
-the above two lines implemented in <tt>git-reset</tt>, but some things like\r
-<tt>git-status</tt> and <tt>git-commit</tt> are slightly more complex scripts around\r
-the basic git commands.</p>\r
-<p>Many (most?) public remote repositories will not contain any of\r
+the above two lines implemented in <em>git-reset</em>, but some things like\r
+<em>git-status</em> and <em>git-commit</em> are slightly more complex scripts around\r
+the basic git commands.</p></div>\r
+<div class="para"><p>Many (most?) public remote repositories will not contain any of\r
the checked out files or even an index file, and will <strong>only</strong> contain the\r
actual core git files. Such a repository usually doesn't even have the\r
<tt>.git</tt> subdirectory, but has all the git files directly in the\r
-repository.</p>\r
-<p>To create your own local live copy of such a "raw" git repository, you'd\r
+repository.</p></div>\r
+<div class="para"><p>To create your own local live copy of such a "raw" git repository, you'd\r
first create your own subdirectory for the project, and then copy the\r
raw repository contents into the <tt>.git</tt> directory. For example, to\r
-create your own copy of the git repository, you'd do the following</p>\r
+create your own copy of the git repository, you'd do the following</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ mkdir my-git\r
$ cd my-git\r
$ rsync -rL rsync://rsync.kernel.org/pub/scm/git/git.git/ .git</tt></pre>\r
</div></div>\r
-<p>followed by</p>\r
+<div class="para"><p>followed by</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git read-tree HEAD</tt></pre>\r
</div></div>\r
-<p>to populate the index. However, now you have populated the index, and\r
+<div class="para"><p>to populate the index. However, now you have populated the index, and\r
you have all the git internal files, but you will notice that you don't\r
actually have any of the working tree files to work on. To get\r
-those, you'd check them out with</p>\r
+those, you'd check them out with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout-index -u -a</tt></pre>\r
</div></div>\r
-<p>where the <tt>-u</tt> flag means that you want the checkout to keep the index\r
+<div class="para"><p>where the <tt>-u</tt> flag means that you want the checkout to keep the index\r
up-to-date (so that you don't have to refresh it afterward), and the\r
<tt>-a</tt> flag means "check out all files" (if you have a stale copy or an\r
older version of a checked out tree you may also need to add the <tt>-f</tt>\r
-flag first, to tell <tt>git-checkout-index</tt> to <strong>force</strong> overwriting of any old\r
-files).</p>\r
-<p>Again, this can all be simplified with</p>\r
+flag first, to tell <em>git-checkout-index</em> to <strong>force</strong> overwriting of any old\r
+files).</p></div>\r
+<div class="para"><p>Again, this can all be simplified with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git clone rsync://rsync.kernel.org/pub/scm/git/git.git/ my-git\r
$ cd my-git\r
$ git checkout</tt></pre>\r
</div></div>\r
-<p>which will end up doing all of the above for you.</p>\r
-<p>You have now successfully copied somebody else's (mine) remote\r
-repository, and checked it out.</p>\r
+<div class="para"><p>which will end up doing all of the above for you.</p></div>\r
+<div class="para"><p>You have now successfully copied somebody else's (mine) remote\r
+repository, and checked it out.</p></div>\r
</div>\r
-<h2>Creating a new branch</h2>\r
+<h2 id="_creating_a_new_branch">Creating a new branch</h2>\r
<div class="sectionbody">\r
-<p>Branches in git are really nothing more than pointers into the git\r
+<div class="para"><p>Branches in git are really nothing more than pointers into the git\r
object database from within the <tt>.git/refs/</tt> subdirectory, and as we\r
already discussed, the <tt>HEAD</tt> branch is nothing but a symlink to one of\r
-these object pointers.</p>\r
-<p>You can at any time create a new branch by just picking an arbitrary\r
+these object pointers.</p></div>\r
+<div class="para"><p>You can at any time create a new branch by just picking an arbitrary\r
point in the project history, and just writing the SHA1 name of that\r
object into a file under <tt>.git/refs/heads/</tt>. You can use any filename you\r
want (and indeed, subdirectories), but the convention is that the\r
"normal" branch is called <tt>master</tt>. That's just a convention, though,\r
-and nothing enforces it.</p>\r
-<p>To show that as an example, let's go back to the git-tutorial repository we\r
+and nothing enforces it.</p></div>\r
+<div class="para"><p>To show that as an example, let's go back to the git-tutorial repository we\r
used earlier, and create a branch in it. You do that by simply just\r
-saying that you want to check out a new branch:</p>\r
+saying that you want to check out a new branch:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout -b mybranch</tt></pre>\r
</div></div>\r
-<p>will create a new branch based at the current <tt>HEAD</tt> position, and switch\r
-to it.</p>\r
+<div class="para"><p>will create a new branch based at the current <tt>HEAD</tt> position, and switch\r
+to it.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
<td class="content">\r
-<p>If you make the decision to start your new branch at some\r
+<div class="para"><p>If you make the decision to start your new branch at some\r
other point in the history than the current <tt>HEAD</tt>, you can do so by\r
-just telling <tt>git checkout</tt> what the base of the checkout would be.\r
-In other words, if you have an earlier tag or branch, you'd just do</p>\r
+just telling <em>git-checkout</em> what the base of the checkout would be.\r
+In other words, if you have an earlier tag or branch, you'd just do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout -b mybranch earlier-commit</tt></pre>\r
</div></div>\r
-<p>and it would create the new branch <tt>mybranch</tt> at the earlier commit,\r
-and check out the state at that time.</p>\r
+<div class="para"><p>and it would create the new branch <tt>mybranch</tt> at the earlier commit,\r
+and check out the state at that time.</p></div>\r
</td>\r
</tr></table>\r
</div>\r
-<p>You can always just jump back to your original <tt>master</tt> branch by doing</p>\r
+<div class="para"><p>You can always just jump back to your original <tt>master</tt> branch by doing</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout master</tt></pre>\r
</div></div>\r
-<p>(or any other branch-name, for that matter) and if you forget which\r
-branch you happen to be on, a simple</p>\r
+<div class="para"><p>(or any other branch-name, for that matter) and if you forget which\r
+branch you happen to be on, a simple</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ cat .git/HEAD</tt></pre>\r
</div></div>\r
-<p>will tell you where it's pointing. To get the list of branches\r
-you have, you can say</p>\r
+<div class="para"><p>will tell you where it's pointing. To get the list of branches\r
+you have, you can say</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git branch</tt></pre>\r
</div></div>\r
-<p>which used to be nothing more than a simple script around <tt>ls .git/refs/heads</tt>.\r
-There will be an asterisk in front of the branch you are currently on.</p>\r
-<p>Sometimes you may wish to create a new branch _without_ actually\r
-checking it out and switching to it. If so, just use the command</p>\r
+<div class="para"><p>which used to be nothing more than a simple script around <tt>ls .git/refs/heads</tt>.\r
+There will be an asterisk in front of the branch you are currently on.</p></div>\r
+<div class="para"><p>Sometimes you may wish to create a new branch <em>without</em> actually\r
+checking it out and switching to it. If so, just use the command</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git branch <branchname> [startingpoint]</tt></pre>\r
</div></div>\r
-<p>which will simply _create_ the branch, but will not do anything further.\r
+<div class="para"><p>which will simply <em>create</em> the branch, but will not do anything further.\r
You can then later — once you decide that you want to actually develop\r
-on that branch — switch to that branch with a regular <tt>git checkout</tt>\r
-with the branchname as the argument.</p>\r
+on that branch — switch to that branch with a regular <em>git-checkout</em>\r
+with the branchname as the argument.</p></div>\r
</div>\r
-<h2>Merging two branches</h2>\r
+<h2 id="_merging_two_branches">Merging two branches</h2>\r
<div class="sectionbody">\r
-<p>One of the ideas of having a branch is that you do some (possibly\r
+<div class="para"><p>One of the ideas of having a branch is that you do some (possibly\r
experimental) work in it, and eventually merge it back to the main\r
branch. So assuming you created the above <tt>mybranch</tt> that started out\r
being the same as the original <tt>master</tt> branch, let's make sure we're in\r
-that branch, and do some work there.</p>\r
+that branch, and do some work there.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout mybranch\r
$ echo "Work, work, work" >>hello\r
$ git commit -m "Some work." -i hello</tt></pre>\r
</div></div>\r
-<p>Here, we just added another line to <tt>hello</tt>, and we used a shorthand for\r
+<div class="para"><p>Here, we just added another line to <tt>hello</tt>, and we used a shorthand for\r
doing both <tt>git update-index hello</tt> and <tt>git commit</tt> by just giving the\r
filename directly to <tt>git commit</tt>, with an <tt>-i</tt> flag (it tells\r
git to <em>include</em> that file in addition to what you have done to\r
the index file so far when making the commit). The <tt>-m</tt> flag is to give the\r
-commit log message from the command line.</p>\r
-<p>Now, to make it a bit more interesting, let's assume that somebody else\r
+commit log message from the command line.</p></div>\r
+<div class="para"><p>Now, to make it a bit more interesting, let's assume that somebody else\r
does some work in the original branch, and simulate that by going back\r
-to the master branch, and editing the same file differently there:</p>\r
+to the master branch, and editing the same file differently there:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout master</tt></pre>\r
</div></div>\r
-<p>Here, take a moment to look at the contents of <tt>hello</tt>, and notice how they\r
+<div class="para"><p>Here, take a moment to look at the contents of <tt>hello</tt>, and notice how they\r
don't contain the work we just did in <tt>mybranch</tt> — because that work\r
-hasn't happened in the <tt>master</tt> branch at all. Then do</p>\r
+hasn't happened in the <tt>master</tt> branch at all. Then do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ echo "Play, play, play" >>hello\r
$ echo "Lots of fun" >>example\r
$ git commit -m "Some fun." -i hello example</tt></pre>\r
</div></div>\r
-<p>since the master branch is obviously in a much better mood.</p>\r
-<p>Now, you've got two branches, and you decide that you want to merge the\r
+<div class="para"><p>since the master branch is obviously in a much better mood.</p></div>\r
+<div class="para"><p>Now, you've got two branches, and you decide that you want to merge the\r
work done. Before we do that, let's introduce a cool graphical tool that\r
-helps you view what's going on:</p>\r
+helps you view what's going on:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ gitk --all</tt></pre>\r
</div></div>\r
-<p>will show you graphically both of your branches (that's what the <tt>--all</tt>\r
+<div class="para"><p>will show you graphically both of your branches (that's what the <tt>--all</tt>\r
means: normally it will just show you your current <tt>HEAD</tt>) and their\r
histories. You can also see exactly how they came to be from a common\r
-source.</p>\r
-<p>Anyway, let's exit <tt>gitk</tt> (<tt>^Q</tt> or the File menu), and decide that we want\r
+source.</p></div>\r
+<div class="para"><p>Anyway, let's exit <em>gitk</em> (<tt>^Q</tt> or the File menu), and decide that we want\r
to merge the work we did on the <tt>mybranch</tt> branch into the <tt>master</tt>\r
branch (which is currently our <tt>HEAD</tt> too). To do that, there's a nice\r
-script called <tt>git merge</tt>, which wants to know which branches you want\r
-to resolve and what the merge is all about:</p>\r
+script called <em>git-merge</em>, which wants to know which branches you want\r
+to resolve and what the merge is all about:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git merge -m "Merge work in mybranch" mybranch</tt></pre>\r
</div></div>\r
-<p>where the first argument is going to be used as the commit message if\r
-the merge can be resolved automatically.</p>\r
-<p>Now, in this case we've intentionally created a situation where the\r
+<div class="para"><p>where the first argument is going to be used as the commit message if\r
+the merge can be resolved automatically.</p></div>\r
+<div class="para"><p>Now, in this case we've intentionally created a situation where the\r
merge will need to be fixed up by hand, though, so git will do as much\r
of it as it can automatically (which in this case is just merge the <tt>example</tt>\r
-file, which had no differences in the <tt>mybranch</tt> branch), and say:</p>\r
+file, which had no differences in the <tt>mybranch</tt> branch), and say:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> Auto-merging hello\r
CONFLICT (content): Merge conflict in hello\r
Automatic merge failed; fix up by hand</tt></pre>\r
</div></div>\r
-<p>It tells you that it did an "Automatic merge", which\r
-failed due to conflicts in <tt>hello</tt>.</p>\r
-<p>Not to worry. It left the (trivial) conflict in <tt>hello</tt> in the same form you\r
+<div class="para"><p>It tells you that it did an "Automatic merge", which\r
+failed due to conflicts in <tt>hello</tt>.</p></div>\r
+<div class="para"><p>Not to worry. It left the (trivial) conflict in <tt>hello</tt> in the same form you\r
should already be well used to if you've ever used CVS, so let's just\r
open <tt>hello</tt> in our editor (whatever that may be), and fix it up somehow.\r
-I'd suggest just making it so that <tt>hello</tt> contains all four lines:</p>\r
+I'd suggest just making it so that <tt>hello</tt> contains all four lines:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Hello World\r
Play, play, play\r
Work, work, work</tt></pre>\r
</div></div>\r
-<p>and once you're happy with your manual merge, just do a</p>\r
+<div class="para"><p>and once you're happy with your manual merge, just do a</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit -i hello</tt></pre>\r
</div></div>\r
-<p>which will very loudly warn you that you're now committing a merge\r
+<div class="para"><p>which will very loudly warn you that you're now committing a merge\r
(which is correct, so never mind), and you can write a small merge\r
-message about your adventures in <tt>git-merge</tt>-land.</p>\r
-<p>After you're done, start up <tt>gitk --all</tt> to see graphically what the\r
+message about your adventures in <em>git-merge</em>-land.</p></div>\r
+<div class="para"><p>After you're done, start up <tt>gitk --all</tt> to see graphically what the\r
history looks like. Notice that <tt>mybranch</tt> still exists, and you can\r
switch to it, and continue to work with it if you want to. The\r
<tt>mybranch</tt> branch will not contain the merge, but next time you merge it\r
from the <tt>master</tt> branch, git will know how you merged it, so you'll not\r
-have to do _that_ merge again.</p>\r
-<p>Another useful tool, especially if you do not always work in X-Window\r
-environment, is <tt>git show-branch</tt>.</p>\r
+have to do <em>that</em> merge again.</p></div>\r
+<div class="para"><p>Another useful tool, especially if you do not always work in X-Window\r
+environment, is <tt>git show-branch</tt>.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch --topo-order --more=1 master mybranch\r
*+ [mybranch] Some work.\r
* [master^] Some fun.</tt></pre>\r
</div></div>\r
-<p>The first two lines indicate that it is showing the two branches\r
+<div class="para"><p>The first two lines indicate that it is showing the two branches\r
and the first line of the commit log message from their\r
top-of-the-tree commits, you are currently on <tt>master</tt> branch\r
(notice the asterisk <tt>*</tt> character), and the first column for\r
name the commit. In the above example, <em>master</em> and <em>mybranch</em>\r
are branch heads. <em>master^</em> is the first parent of <em>master</em>\r
branch head. Please see <a href="git-rev-parse.html">git-rev-parse(1)</a> if you want to\r
-see more complex cases.</p>\r
+see more complex cases.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
-<td class="content">Without the <em>--more=1</em> option, <tt>git-show-branch</tt> would not output the\r
+<td class="content">Without the <em>--more=1</em> option, <em>git-show-branch</em> would not output the\r
<em>[master^]</em> commit, as <em>[mybranch]</em> commit is a common ancestor of\r
both <em>master</em> and <em>mybranch</em> tips. Please see <a href="git-show-branch.html">git-show-branch(1)</a>\r
for details.</td>\r
<div class="title">Note</div>\r
</td>\r
<td class="content">If there were more commits on the <em>master</em> branch after the merge, the\r
-merge commit itself would not be shown by <tt>git-show-branch</tt> by\r
+merge commit itself would not be shown by <em>git-show-branch</em> by\r
default. You would need to provide <em>--sparse</em> option to make the\r
merge commit visible in this case.</td>\r
</tr></table>\r
</div>\r
-<p>Now, let's pretend you are the one who did all the work in\r
+<div class="para"><p>Now, let's pretend you are the one who did all the work in\r
<tt>mybranch</tt>, and the fruit of your hard work has finally been merged\r
to the <tt>master</tt> branch. Let's go back to <tt>mybranch</tt>, and run\r
-<tt>git-merge</tt> to get the "upstream changes" back to your branch.</p>\r
+<em>git-merge</em> to get the "upstream changes" back to your branch.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout mybranch\r
$ git merge -m "Merge upstream changes." master</tt></pre>\r
</div></div>\r
-<p>This outputs something like this (the actual commit object names\r
-would be different)</p>\r
+<div class="para"><p>This outputs something like this (the actual commit object names\r
+would be different)</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Updating from ae3a2da... to a80b4aa....\r
hello | 1 +\r
2 files changed, 2 insertions(+), 0 deletions(-)</tt></pre>\r
</div></div>\r
-<p>Because your branch did not contain anything more than what are\r
+<div class="para"><p>Because your branch did not contain anything more than what are\r
already merged into the <tt>master</tt> branch, the merge operation did\r
not actually do a merge. Instead, it just updated the top of\r
the tree of your branch to that of the <tt>master</tt> branch. This is\r
-often called <em>fast forward</em> merge.</p>\r
-<p>You can run <tt>gitk --all</tt> again to see how the commit ancestry\r
-looks like, or run <tt>show-branch</tt>, which tells you this.</p>\r
+often called <em>fast forward</em> merge.</p></div>\r
+<div class="para"><p>You can run <tt>gitk --all</tt> again to see how the commit ancestry\r
+looks like, or run <em>show-branch</em>, which tells you this.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch master mybranch\r
-- [master] Merge work in mybranch</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Merging external work</h2>\r
+<h2 id="_merging_external_work">Merging external work</h2>\r
<div class="sectionbody">\r
-<p>It's usually much more common that you merge with somebody else than\r
+<div class="para"><p>It's usually much more common that you merge with somebody else than\r
merging with your own branches, so it's worth pointing out that git\r
makes that very easy too, and in fact, it's not that different from\r
-doing a <tt>git merge</tt>. In fact, a remote merge ends up being nothing\r
+doing a <em>git-merge</em>. In fact, a remote merge ends up being nothing\r
more than "fetch the work from a remote repository into a temporary tag"\r
-followed by a <tt>git merge</tt>.</p>\r
-<p>Fetching from a remote repository is done by, unsurprisingly,\r
-<tt>git fetch</tt>:</p>\r
+followed by a <em>git-merge</em>.</p></div>\r
+<div class="para"><p>Fetching from a remote repository is done by, unsurprisingly,\r
+<em>git-fetch</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git fetch <remote-repository></tt></pre>\r
</div></div>\r
-<p>One of the following transports can be used to name the\r
-repository to download from:</p>\r
-<dl>\r
+<div class="para"><p>One of the following transports can be used to name the\r
+repository to download from:</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
Rsync\r
</dt>\r
<p>\r
<tt>rsync://remote.machine/path/to/repo.git/</tt>\r
</p>\r
-<p>Rsync transport is usable for both uploading and downloading,\r
+<div class="para"><p>Rsync transport is usable for both uploading and downloading,\r
but is completely unaware of what git does, and can produce\r
unexpected results when you download from the public repository\r
while the repository owner is uploading into it via <tt>rsync</tt>\r
before uploading the files in <tt>objects/</tt> — the downloader would\r
obtain head commit object name while that object itself is still\r
not available in the repository. For this reason, it is\r
-considered deprecated.</p>\r
+considered deprecated.</p></div>\r
</dd>\r
<dt>\r
SSH\r
<p>\r
<tt>remote.machine:/path/to/repo.git/</tt> or\r
</p>\r
-<p><tt>ssh://remote.machine/path/to/repo.git/</tt></p>\r
-<p>This transport can be used for both uploading and downloading,\r
+<div class="para"><p><tt>ssh://remote.machine/path/to/repo.git/</tt></p></div>\r
+<div class="para"><p>This transport can be used for both uploading and downloading,\r
and requires you to have a log-in privilege over <tt>ssh</tt> to the\r
remote machine. It finds out the set of objects the other side\r
lacks by exchanging the head commits both ends have and\r
transfers (close to) minimum set of objects. It is by far the\r
-most efficient way to exchange git objects between repositories.</p>\r
+most efficient way to exchange git objects between repositories.</p></div>\r
</dd>\r
<dt>\r
Local directory\r
<p>\r
<tt>/path/to/repo.git/</tt>\r
</p>\r
-<p>This transport is the same as SSH transport but uses <tt>sh</tt> to run\r
+<div class="para"><p>This transport is the same as SSH transport but uses <em>sh</em> to run\r
both ends on the local machine instead of running other end on\r
-the remote machine via <tt>ssh</tt>.</p>\r
+the remote machine via <em>ssh</em>.</p></div>\r
</dd>\r
<dt>\r
git Native\r
<p>\r
<tt>git://remote.machine/path/to/repo.git/</tt>\r
</p>\r
-<p>This transport was designed for anonymous downloading. Like SSH\r
+<div class="para"><p>This transport was designed for anonymous downloading. Like SSH\r
transport, it finds out the set of objects the downstream side\r
-lacks and transfers (close to) minimum set of objects.</p>\r
+lacks and transfers (close to) minimum set of objects.</p></div>\r
</dd>\r
<dt>\r
HTTP(S)\r
<p>\r
<tt>http://remote.machine/path/to/repo.git/</tt>\r
</p>\r
-<p>Downloader from http and https URL\r
+<div class="para"><p>Downloader from http and https URL\r
first obtains the topmost commit object name from the remote site\r
by looking at the specified refname under <tt>repo.git/refs/</tt> directory,\r
and then tries to obtain the\r
commit object to find out its parent commits and the associate\r
tree object; it repeats this process until it gets all the\r
necessary objects. Because of this behavior, they are\r
-sometimes also called <em>commit walkers</em>.</p>\r
-<p>The <em>commit walkers</em> are sometimes also called <em>dumb\r
+sometimes also called <em>commit walkers</em>.</p></div>\r
+<div class="para"><p>The <em>commit walkers</em> are sometimes also called <em>dumb\r
transports</em>, because they do not require any git aware smart\r
server like git Native transport does. Any stock HTTP server\r
that does not even support directory index would suffice. But\r
-you must prepare your repository with <tt>git-update-server-info</tt>\r
-to help dumb transport downloaders.</p>\r
+you must prepare your repository with <em>git-update-server-info</em>\r
+to help dumb transport downloaders.</p></div>\r
</dd>\r
-</dl>\r
-<p>Once you fetch from the remote repository, you <tt>merge</tt> that\r
-with your current branch.</p>\r
-<p>However — it's such a common thing to <tt>fetch</tt> and then\r
+</dl></div>\r
+<div class="para"><p>Once you fetch from the remote repository, you <tt>merge</tt> that\r
+with your current branch.</p></div>\r
+<div class="para"><p>However — it's such a common thing to <tt>fetch</tt> and then\r
immediately <tt>merge</tt>, that it's called <tt>git pull</tt>, and you can\r
-simply do</p>\r
+simply do</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git pull <remote-repository></tt></pre>\r
</div></div>\r
-<p>and optionally give a branch-name for the remote end as a second\r
-argument.</p>\r
+<div class="para"><p>and optionally give a branch-name for the remote end as a second\r
+argument.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
</td>\r
<td class="content">You could do without using any branches at all, by\r
keeping as many local repositories as you would like to have\r
-branches, and merging between them with <tt>git pull</tt>, just like\r
+branches, and merging between them with <em>git-pull</em>, just like\r
you merge between branches. The advantage of this approach is\r
that it lets you keep a set of files for each <tt>branch</tt> checked\r
out and you may find it easier to switch back and forth if you\r
multiple working trees, but disk space is cheap these days.</td>\r
</tr></table>\r
</div>\r
-<p>It is likely that you will be pulling from the same remote\r
+<div class="para"><p>It is likely that you will be pulling from the same remote\r
repository from time to time. As a short hand, you can store\r
the remote repository URL in the local repository's config file\r
-like this:</p>\r
+like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git config remote.linus.url http://www.kernel.org/pub/scm/git/git.git/</tt></pre>\r
</div></div>\r
-<p>and use the "linus" keyword with <tt>git pull</tt> instead of the full URL.</p>\r
-<p>Examples.</p>\r
-<ol>\r
+<div class="para"><p>and use the "linus" keyword with <em>git-pull</em> instead of the full URL.</p></div>\r
+<div class="para"><p>Examples.</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
<tt>git pull linus</tt>\r
<tt>git pull linus tag v0.99.1</tt>\r
</p>\r
</li>\r
-</ol>\r
-<p>the above are equivalent to:</p>\r
-<ol>\r
+</ol></div>\r
+<div class="para"><p>the above are equivalent to:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
<tt>git pull http://www.kernel.org/pub/scm/git/git.git/ HEAD</tt>\r
<tt>git pull http://www.kernel.org/pub/scm/git/git.git/ tag v0.99.1</tt>\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2>How does the merge work?</h2>\r
+<h2 id="_how_does_the_merge_work">How does the merge work?</h2>\r
<div class="sectionbody">\r
-<p>We said this tutorial shows what plumbing does to help you cope\r
+<div class="para"><p>We said this tutorial shows what plumbing does to help you cope\r
with the porcelain that isn't flushing, but we so far did not\r
talk about how the merge really works. If you are following\r
this tutorial the first time, I'd suggest to skip to "Publishing\r
-your work" section and come back here later.</p>\r
-<p>OK, still with me? To give us an example to look at, let's go\r
+your work" section and come back here later.</p></div>\r
+<div class="para"><p>OK, still with me? To give us an example to look at, let's go\r
back to the earlier repository with "hello" and "example" file,\r
-and bring ourselves back to the pre-merge state:</p>\r
+and bring ourselves back to the pre-merge state:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch --more=2 master mybranch\r
+* [master^2] Some work.\r
+* [master^] Some fun.</tt></pre>\r
</div></div>\r
-<p>Remember, before running <tt>git merge</tt>, our <tt>master</tt> head was at\r
+<div class="para"><p>Remember, before running <em>git-merge</em>, our <tt>master</tt> head was at\r
"Some fun." commit, while our <tt>mybranch</tt> head was at "Some\r
-work." commit.</p>\r
+work." commit.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout mybranch\r
$ git checkout master\r
$ git reset --hard master^</tt></pre>\r
</div></div>\r
-<p>After rewinding, the commit structure should look like this:</p>\r
+<div class="para"><p>After rewinding, the commit structure should look like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch\r
* [master] Some fun.\r
*+ [mybranch^] New day.</tt></pre>\r
</div></div>\r
-<p>Now we are ready to experiment with the merge by hand.</p>\r
-<p><tt>git merge</tt> command, when merging two branches, uses 3-way merge\r
+<div class="para"><p>Now we are ready to experiment with the merge by hand.</p></div>\r
+<div class="para"><p><tt>git merge</tt> command, when merging two branches, uses 3-way merge\r
algorithm. First, it finds the common ancestor between them.\r
-The command it uses is <tt>git-merge-base</tt>:</p>\r
+The command it uses is <em>git-merge-base</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ mb=$(git merge-base HEAD mybranch)</tt></pre>\r
</div></div>\r
-<p>The command writes the commit object name of the common ancestor\r
+<div class="para"><p>The command writes the commit object name of the common ancestor\r
to the standard output, so we captured its output to a variable,\r
because we will be using it in the next step. By the way, the common\r
ancestor commit is the "New day." commit in this case. You can\r
-tell it by:</p>\r
+tell it by:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git name-rev $mb\r
my-first-tag</tt></pre>\r
</div></div>\r
-<p>After finding out a common ancestor commit, the second step is\r
-this:</p>\r
+<div class="para"><p>After finding out a common ancestor commit, the second step is\r
+this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git read-tree -m -u $mb HEAD mybranch</tt></pre>\r
</div></div>\r
-<p>This is the same <tt>git-read-tree</tt> command we have already seen,\r
+<div class="para"><p>This is the same <em>git-read-tree</em> command we have already seen,\r
but it takes three trees, unlike previous examples. This reads\r
the contents of each tree into different <em>stage</em> in the index\r
file (the first tree goes to stage 1, the second to stage 2,\r
0. Also paths that are the same in two of three stages are\r
collapsed into stage 0, taking the SHA1 from either stage 2 or\r
stage 3, whichever is different from stage 1 (i.e. only one side\r
-changed from the common ancestor).</p>\r
-<p>After <em>collapsing</em> operation, paths that are different in three\r
+changed from the common ancestor).</p></div>\r
+<div class="para"><p>After <em>collapsing</em> operation, paths that are different in three\r
trees are left in non-zero stages. At this point, you can\r
-inspect the index file with this command:</p>\r
+inspect the index file with this command:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-files --stage\r
100644 06fa6a24256dc7e560efa5687fa84b51f0263c3a 2 hello\r
100644 cc44c73eb783565da5831b4d820c962954019b69 3 hello</tt></pre>\r
</div></div>\r
-<p>In our example of only two files, we did not have unchanged\r
+<div class="para"><p>In our example of only two files, we did not have unchanged\r
files so only <em>example</em> resulted in collapsing, but in real-life\r
large projects, only small number of files change in one commit,\r
and this <em>collapsing</em> tends to trivially merge most of the paths\r
fairly quickly, leaving only a handful the real changes in non-zero\r
-stages.</p>\r
-<p>To look at only non-zero stages, use <tt>--unmerged</tt> flag:</p>\r
+stages.</p></div>\r
+<div class="para"><p>To look at only non-zero stages, use <tt>--unmerged</tt> flag:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-files --unmerged\r
100644 06fa6a24256dc7e560efa5687fa84b51f0263c3a 2 hello\r
100644 cc44c73eb783565da5831b4d820c962954019b69 3 hello</tt></pre>\r
</div></div>\r
-<p>The next step of merging is to merge these three versions of the\r
+<div class="para"><p>The next step of merging is to merge these three versions of the\r
file, using 3-way merge. This is done by giving\r
-<tt>git-merge-one-file</tt> command as one of the arguments to\r
-<tt>git-merge-index</tt> command:</p>\r
+<em>git-merge-one-file</em> command as one of the arguments to\r
+<em>git-merge-index</em> command:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git merge-index git-merge-one-file hello\r
ERROR: Merge conflict in hello.\r
fatal: merge program failed</tt></pre>\r
</div></div>\r
-<p><tt>git-merge-one-file</tt> script is called with parameters to\r
+<div class="para"><p><em>git-merge-one-file</em> script is called with parameters to\r
describe those three versions, and is responsible to leave the\r
merge results in the working tree.\r
It is a fairly straightforward shell script, and\r
-eventually calls <tt>merge</tt> program from RCS suite to perform a\r
-file-level 3-way merge. In this case, <tt>merge</tt> detects\r
+eventually calls <em>merge</em> program from RCS suite to perform a\r
+file-level 3-way merge. In this case, <em>merge</em> detects\r
conflicts, and the merge result with conflict marks is left in\r
the working tree.. This can be seen if you run <tt>ls-files\r
---stage</tt> again at this point:</p>\r
+--stage</tt> again at this point:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-files --stage\r
100644 06fa6a24256dc7e560efa5687fa84b51f0263c3a 2 hello\r
100644 cc44c73eb783565da5831b4d820c962954019b69 3 hello</tt></pre>\r
</div></div>\r
-<p>This is the state of the index file and the working file after\r
-<tt>git-merge</tt> returns control back to you, leaving the conflicting\r
+<div class="para"><p>This is the state of the index file and the working file after\r
+<em>git-merge</em> returns control back to you, leaving the conflicting\r
merge for you to resolve. Notice that the path <tt>hello</tt> is still\r
-unmerged, and what you see with <tt>git-diff</tt> at this point is\r
-differences since stage 2 (i.e. your version).</p>\r
+unmerged, and what you see with <em>git-diff</em> at this point is\r
+differences since stage 2 (i.e. your version).</p></div>\r
</div>\r
-<h2>Publishing your work</h2>\r
+<h2 id="_publishing_your_work">Publishing your work</h2>\r
<div class="sectionbody">\r
-<p>So, we can use somebody else's work from a remote repository, but\r
+<div class="para"><p>So, we can use somebody else's work from a remote repository, but\r
how can <strong>you</strong> prepare a repository to let other people pull from\r
-it?</p>\r
-<p>You do your real work in your working tree that has your\r
+it?</p></div>\r
+<div class="para"><p>You do your real work in your working tree that has your\r
primary repository hanging under it as its <tt>.git</tt> subdirectory.\r
You <strong>could</strong> make that repository accessible remotely and ask\r
people to pull from it, but in practice that is not the way\r
repository, make it reachable by other people, and when the\r
changes you made in your primary working tree are in good shape,\r
update the public repository from it. This is often called\r
-<em>pushing</em>.</p>\r
+<em>pushing</em>.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
how git repositories at <tt>kernel.org</tt> are managed.</td>\r
</tr></table>\r
</div>\r
-<p>Publishing the changes from your local (private) repository to\r
+<div class="para"><p>Publishing the changes from your local (private) repository to\r
your remote (public) repository requires a write privilege on\r
the remote machine. You need to have an SSH account there to\r
-run a single command, <tt>git-receive-pack</tt>.</p>\r
-<p>First, you need to create an empty repository on the remote\r
+run a single command, <em>git-receive-pack</em>.</p></div>\r
+<div class="para"><p>First, you need to create an empty repository on the remote\r
machine that will house your public repository. This empty\r
repository will be populated and be kept up-to-date by pushing\r
into it later. Obviously, this repository creation needs to be\r
-done only once.</p>\r
+done only once.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
-<td class="content"><tt>git-push</tt> uses a pair of programs,\r
-<tt>git-send-pack</tt> on your local machine, and <tt>git-receive-pack</tt>\r
+<td class="content"><em>git-push</em> uses a pair of programs,\r
+<em>git-send-pack</em> on your local machine, and <em>git-receive-pack</em>\r
on the remote machine. The communication between the two over\r
the network internally uses an SSH connection.</td>\r
</tr></table>\r
</div>\r
-<p>Your private repository's git directory is usually <tt>.git</tt>, but\r
+<div class="para"><p>Your private repository's git directory is usually <tt>.git</tt>, but\r
your public repository is often named after the project name,\r
i.e. <tt><project>.git</tt>. Let's create such a public repository for\r
project <tt>my-git</tt>. After logging into the remote machine, create\r
-an empty directory:</p>\r
+an empty directory:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ mkdir my-git.git</tt></pre>\r
</div></div>\r
-<p>Then, make that directory into a git repository by running\r
-<tt>git init</tt>, but this time, since its name is not the usual\r
-<tt>.git</tt>, we do things slightly differently:</p>\r
+<div class="para"><p>Then, make that directory into a git repository by running\r
+<em>git-init</em>, but this time, since its name is not the usual\r
+<tt>.git</tt>, we do things slightly differently:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ GIT_DIR=my-git.git git init</tt></pre>\r
</div></div>\r
-<p>Make sure this directory is available for others you want your\r
+<div class="para"><p>Make sure this directory is available for others you want your\r
changes to be pulled by via the transport of your choice. Also\r
-you need to make sure that you have the <tt>git-receive-pack</tt>\r
-program on the <tt>$PATH</tt>.</p>\r
+you need to make sure that you have the <em>git-receive-pack</em>\r
+program on the <tt>$PATH</tt>.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
</td>\r
<td class="content">Many installations of sshd do not invoke your shell as the login\r
shell when you directly run programs; what this means is that if\r
-your login shell is <tt>bash</tt>, only <tt>.bashrc</tt> is read and not\r
+your login shell is <em>bash</em>, only <tt>.bashrc</tt> is read and not\r
<tt>.bash_profile</tt>. As a workaround, make sure <tt>.bashrc</tt> sets up\r
-<tt>$PATH</tt> so that you can run <tt>git-receive-pack</tt> program.</td>\r
+<tt>$PATH</tt> so that you can run <em>git-receive-pack</em> program.</td>\r
</tr></table>\r
</div>\r
<div class="admonitionblock">\r
repository, <tt>git update-server-info</tt> is run.</td>\r
</tr></table>\r
</div>\r
-<p>Your "public repository" is now ready to accept your changes.\r
+<div class="para"><p>Your "public repository" is now ready to accept your changes.\r
Come back to the machine you have your private repository. From\r
-there, run this command:</p>\r
+there, run this command:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git push <public-host>:/path/to/my-git.git master</tt></pre>\r
</div></div>\r
-<p>This synchronizes your public repository to match the named\r
+<div class="para"><p>This synchronizes your public repository to match the named\r
branch head (i.e. <tt>master</tt> in this case) and objects reachable\r
-from them in your current repository.</p>\r
-<p>As a real example, this is how I update my public git\r
+from them in your current repository.</p></div>\r
+<div class="para"><p>As a real example, this is how I update my public git\r
repository. Kernel.org mirror network takes care of the\r
-propagation to other publicly visible machines:</p>\r
+propagation to other publicly visible machines:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git push master.kernel.org:/pub/scm/git/git.git/</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Packing your repository</h2>\r
+<h2 id="_packing_your_repository">Packing your repository</h2>\r
<div class="sectionbody">\r
-<p>Earlier, we saw that one file under <tt>.git/objects/??/</tt> directory\r
+<div class="para"><p>Earlier, we saw that one file under <tt>.git/objects/??/</tt> directory\r
is stored for each git object you create. This representation\r
is efficient to create atomically and safely, but\r
not so convenient to transport over the network. Since git objects are\r
immutable once they are created, there is a way to optimize the\r
-storage by "packing them together". The command</p>\r
+storage by "packing them together". The command</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git repack</tt></pre>\r
</div></div>\r
-<p>will do it for you. If you followed the tutorial examples, you\r
+<div class="para"><p>will do it for you. If you followed the tutorial examples, you\r
would have accumulated about 17 objects in <tt>.git/objects/??/</tt>\r
-directories by now. <tt>git repack</tt> tells you how many objects it\r
+directories by now. <em>git-repack</em> tells you how many objects it\r
packed, and stores the packed file in <tt>.git/objects/pack</tt>\r
-directory.</p>\r
+directory.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
access.</td>\r
</tr></table>\r
</div>\r
-<p>If you are paranoid, running <tt>git-verify-pack</tt> command would\r
+<div class="para"><p>If you are paranoid, running <em>git-verify-pack</em> command would\r
detect if you have a corrupt pack, but do not worry too much.\r
-Our programs are always perfect ;-).</p>\r
-<p>Once you have packed objects, you do not need to leave the\r
-unpacked objects that are contained in the pack file anymore.</p>\r
+Our programs are always perfect ;-).</p></div>\r
+<div class="para"><p>Once you have packed objects, you do not need to leave the\r
+unpacked objects that are contained in the pack file anymore.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git prune-packed</tt></pre>\r
</div></div>\r
-<p>would remove them for you.</p>\r
-<p>You can try running <tt>find .git/objects -type f</tt> before and after\r
+<div class="para"><p>would remove them for you.</p></div>\r
+<div class="para"><p>You can try running <tt>find .git/objects -type f</tt> before and after\r
you run <tt>git prune-packed</tt> if you are curious. Also <tt>git\r
count-objects</tt> would tell you how many unpacked objects are in\r
-your repository and how much space they are consuming.</p>\r
+your repository and how much space they are consuming.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
never.</td>\r
</tr></table>\r
</div>\r
-<p>If you run <tt>git repack</tt> again at this point, it will say\r
+<div class="para"><p>If you run <tt>git repack</tt> again at this point, it will say\r
"Nothing to pack". Once you continue your development and\r
accumulate the changes, running <tt>git repack</tt> again will create a\r
new pack, that contains objects created since you packed your\r
repository the last time. We recommend that you pack your project\r
soon after the initial import (unless you are starting your\r
project from scratch), and then run <tt>git repack</tt> every once in a\r
-while, depending on how active your project is.</p>\r
-<p>When a repository is synchronized via <tt>git push</tt> and <tt>git pull</tt>\r
+while, depending on how active your project is.</p></div>\r
+<div class="para"><p>When a repository is synchronized via <tt>git push</tt> and <tt>git pull</tt>\r
objects packed in the source repository are usually stored\r
unpacked in the destination, unless rsync transport is used.\r
While this allows you to use different packing strategies on\r
both ends, it also means you may need to repack both\r
-repositories every once in a while.</p>\r
+repositories every once in a while.</p></div>\r
</div>\r
-<h2>Working with Others</h2>\r
+<h2 id="_working_with_others">Working with Others</h2>\r
<div class="sectionbody">\r
-<p>Although git is a truly distributed system, it is often\r
+<div class="para"><p>Although git is a truly distributed system, it is often\r
convenient to organize your project with an informal hierarchy\r
of developers. Linux kernel development is run this way. There\r
is a nice illustration (page 17, "Merges to Mainline") in\r
-<a href="http://www.xenotime.net/linux/mentor/linux-mentoring-2006.pdf">Randy Dunlap's presentation</a>.</p>\r
-<p>It should be stressed that this hierarchy is purely <strong>informal</strong>.\r
+<a href="http://www.xenotime.net/linux/mentor/linux-mentoring-2006.pdf">Randy Dunlap's presentation</a>.</p></div>\r
+<div class="para"><p>It should be stressed that this hierarchy is purely <strong>informal</strong>.\r
There is nothing fundamental in git that enforces the "chain of\r
patch flow" this hierarchy implies. You do not have to pull\r
-from only one remote repository.</p>\r
-<p>A recommended workflow for a "project lead" goes like this:</p>\r
-<ol>\r
+from only one remote repository.</p></div>\r
+<div class="para"><p>A recommended workflow for a "project lead" goes like this:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
Prepare your primary repository on your local machine. Your\r
<p>\r
Prepare a public repository accessible to others.\r
</p>\r
-<p>If other people are pulling from your repository over dumb\r
+<div class="para"><p>If other people are pulling from your repository over dumb\r
transport protocols (HTTP), you need to keep this repository\r
<em>dumb transport friendly</em>. After <tt>git init</tt>,\r
<tt>$GIT_DIR/hooks/post-update</tt> copied from the standard templates\r
-would contain a call to <tt>git-update-server-info</tt> but the\r
+would contain a call to <em>git-update-server-info</em> but the\r
<tt>post-update</tt> hook itself is disabled by default — enable it\r
-with <tt>chmod +x post-update</tt>. This makes sure <tt>git-update-server-info</tt>\r
-keeps the necessary files up-to-date.</p>\r
+with <tt>chmod +x post-update</tt>. This makes sure <em>git-update-server-info</em>\r
+keeps the necessary files up-to-date.</p></div>\r
</li>\r
<li>\r
<p>\r
</li>\r
<li>\r
<p>\r
-<tt>git-repack</tt> the public repository. This establishes a big\r
+<em>git-repack</em> the public repository. This establishes a big\r
pack that contains the initial set of objects as the\r
- baseline, and possibly <tt>git-prune</tt> if the transport\r
+ baseline, and possibly <em>git-prune</em> if the transport\r
used for pulling from your repository supports packed\r
repositories.\r
</p>\r
e-mails, and merges resulting from pulling the "public"\r
repositories of your "subsystem maintainers".\r
</p>\r
-<p>You can repack this private repository whenever you feel like.</p>\r
+<div class="para"><p>You can repack this private repository whenever you feel like.</p></div>\r
</li>\r
<li>\r
<p>\r
Go back to step 5. and continue working.\r
</p>\r
</li>\r
-</ol>\r
-<p>A recommended work cycle for a "subsystem maintainer" who works\r
-on that project and has an own "public repository" goes like this:</p>\r
-<ol>\r
+</ol></div>\r
+<div class="para"><p>A recommended work cycle for a "subsystem maintainer" who works\r
+on that project and has an own "public repository" goes like this:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
-Prepare your work repository, by <tt>git-clone</tt> the public\r
+Prepare your work repository, by <em>git-clone</em> the public\r
repository of the "project lead". The URL used for the\r
initial cloning is stored in the remote.origin.url\r
configuration variable.\r
<li>\r
<p>\r
Push into the public repository from your primary\r
- repository. Run <tt>git-repack</tt>, and possibly <tt>git-prune</tt> if the\r
+ repository. Run <em>git-repack</em>, and possibly <em>git-prune</em> if the\r
transport used for pulling from your repository supports\r
packed repositories.\r
</p>\r
repositories of your "project lead" and possibly your\r
"sub-subsystem maintainers".\r
</p>\r
-<p>You can repack this private repository whenever you feel\r
-like.</p>\r
+<div class="para"><p>You can repack this private repository whenever you feel\r
+like.</p></div>\r
</li>\r
<li>\r
<p>\r
</li>\r
<li>\r
<p>\r
-Every once in a while, <tt>git-repack</tt> the public repository.\r
+Every once in a while, <em>git-repack</em> the public repository.\r
Go back to step 5. and continue working.\r
</p>\r
</li>\r
-</ol>\r
-<p>A recommended work cycle for an "individual developer" who does\r
+</ol></div>\r
+<div class="para"><p>A recommended work cycle for an "individual developer" who does\r
not have a "public" repository is somewhat different. It goes\r
-like this:</p>\r
-<ol>\r
+like this:</p></div>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
-Prepare your work repository, by <tt>git-clone</tt> the public\r
+Prepare your work repository, by <em>git-clone</em> the public\r
repository of the "project lead" (or a "subsystem\r
maintainer", if you work on a subsystem). The URL used for\r
the initial cloning is stored in the remote.origin.url\r
step 2. and continue.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</div>\r
-<h2>Working with Others, Shared Repository Style</h2>\r
+<h2 id="_working_with_others_shared_repository_style">Working with Others, Shared Repository Style</h2>\r
<div class="sectionbody">\r
-<p>If you are coming from CVS background, the style of cooperation\r
+<div class="para"><p>If you are coming from CVS background, the style of cooperation\r
suggested in the previous section may be new to you. You do not\r
have to worry. git supports "shared public repository" style of\r
-cooperation you are probably more familiar with as well.</p>\r
-<p>See <a href="gitcvs-migration.html">gitcvs-migration(7)</a> for the details.</p>\r
+cooperation you are probably more familiar with as well.</p></div>\r
+<div class="para"><p>See <a href="gitcvs-migration.html">gitcvs-migration(7)</a> for the details.</p></div>\r
</div>\r
-<h2>Bundling your work together</h2>\r
+<h2 id="_bundling_your_work_together">Bundling your work together</h2>\r
<div class="sectionbody">\r
-<p>It is likely that you will be working on more than one thing at\r
+<div class="para"><p>It is likely that you will be working on more than one thing at\r
a time. It is easy to manage those more-or-less independent tasks\r
-using branches with git.</p>\r
-<p>We have already seen how branches work previously,\r
+using branches with git.</p></div>\r
+<div class="para"><p>We have already seen how branches work previously,\r
with "fun and work" example using two branches. The idea is the\r
same if there are more than two branches. Let's say you started\r
out from "master" head, and have some new code in the "master"\r
branch, and two independent fixes in the "commit-fix" and\r
-"diff-fix" branches:</p>\r
+"diff-fix" branches:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch\r
* [master] Release candidate #1\r
++* [diff-fix~2] Pretty-print messages.</tt></pre>\r
</div></div>\r
-<p>Both fixes are tested well, and at this point, you want to merge\r
+<div class="para"><p>Both fixes are tested well, and at this point, you want to merge\r
in both of them. You could merge in <em>diff-fix</em> first and then\r
-<em>commit-fix</em> next, like this:</p>\r
+<em>commit-fix</em> next, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git merge -m "Merge fix in diff-fix" diff-fix\r
$ git merge -m "Merge fix in commit-fix" commit-fix</tt></pre>\r
</div></div>\r
-<p>Which would result in:</p>\r
+<div class="para"><p>Which would result in:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show-branch\r
* [master~2] Release candidate #1\r
++* [master~3] Pretty-print messages.</tt></pre>\r
</div></div>\r
-<p>However, there is no particular reason to merge in one branch\r
+<div class="para"><p>However, there is no particular reason to merge in one branch\r
first and the other next, when what you have are a set of truly\r
independent changes (if the order mattered, then they are not\r
independent by definition). You could instead merge those two\r
branches into the current branch at once. First let's undo what\r
we just did and start over. We would want to get the master\r
-branch before these two merges by resetting it to <em>master~2</em>:</p>\r
+branch before these two merges by resetting it to <em>master~2</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git reset --hard master~2</tt></pre>\r
</div></div>\r
-<p>You can make sure <em>git show-branch</em> matches the state before\r
-those two <em>git merge</em> you just did. Then, instead of running\r
-two <em>git merge</em> commands in a row, you would merge these two\r
-branch heads (this is known as <em>making an Octopus</em>):</p>\r
+<div class="para"><p>You can make sure <tt>git show-branch</tt> matches the state before\r
+those two <em>git-merge</em> you just did. Then, instead of running\r
+two <em>git-merge</em> commands in a row, you would merge these two\r
+branch heads (this is known as <em>making an Octopus</em>):</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git merge commit-fix diff-fix\r
* [master~1] Release candidate #1\r
++* [master~2] Pretty-print messages.</tt></pre>\r
</div></div>\r
-<p>Note that you should not do Octopus because you can. An octopus\r
+<div class="para"><p>Note that you should not do Octopus because you can. An octopus\r
is a valid thing to do and often makes it easier to view the\r
commit history if you are merging more than two independent\r
changes at the same time. However, if you have merge conflicts\r
merge two at a time, documenting how you resolved the conflicts,\r
and the reason why you preferred changes made in one side over\r
the other. Otherwise it would make the project history harder\r
-to follow, not easier.</p>\r
+to follow, not easier.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
+<div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
<a href="giteveryday.html">giteveryday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
-<a href="user-manual.html">The Git User's Manual</a></p>\r
+<a href="user-manual.html">The Git User's Manual</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite.</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:12 UTC\r
+Last updated 2008-07-06 05:17:12 UTC\r
</div>\r
</div>\r
</body>\r
to import into git.
For our first example, we're going to start a totally new repository from
-scratch, with no pre-existing files, and we'll call it `git-tutorial`.
+scratch, with no pre-existing files, and we'll call it 'git-tutorial'.
To start up, create a subdirectory for it, change into that
-subdirectory, and initialize the git infrastructure with `git-init`:
+subdirectory, and initialize the git infrastructure with 'git-init':
------------------------------------------------
$ mkdir git-tutorial
which is just git's way of saying that you haven't been doing anything
strange, and that it will have created a local `.git` directory setup for
your new project. You will now have a `.git` directory, and you can
-inspect that with `ls`. For your new empty project, it should show you
+inspect that with 'ls'. For your new empty project, it should show you
three entries, among other things:
- a file called `HEAD`, that has `ref: refs/heads/master` in it.
- commit that index file as an object.
The first step is trivial: when you want to tell git about any changes
-to your working tree, you use the `git-update-index` program. That
+to your working tree, you use the 'git-update-index' program. That
program normally just takes a list of filenames you want to update, but
to avoid trivial mistakes, it refuses to add new entries to the index
(or remove existing ones) unless you explicitly tell it that you're
which correspond with the objects with names of `557db...` and
`f24c7...` respectively.
-If you want to, you can use `git-cat-file` to look at those objects, but
+If you want to, you can use 'git-cat-file' to look at those objects, but
you'll have to use the object name, not the filename of the object:
----------------
$ git cat-file -t 557db03de997c86a4a028e1ebd3a1ceb225be238
----------------
-where the `-t` tells `git-cat-file` to tell you what the "type" of the
+where the `-t` tells 'git-cat-file' to tell you what the "type" of the
object is. git will tell you that you have a "blob" object (i.e., just a
regular file), and you can see the contents with
Anyway, as we mentioned previously, you normally never actually take a
look at the objects themselves, and typing long 40-character hex
names is not something you'd normally want to do. The above digression
-was just to show that `git-update-index` did something magical, and
+was just to show that 'git-update-index' did something magical, and
actually saved away the contents of your files into the git object
database.
and you can now, since you told git about the previous state of `hello`, ask
git what has changed in the tree compared to your old index, using the
-`git-diff-files` command:
+'git-diff-files' command:
------------
$ git diff-files
------------
Oops. That wasn't very readable. It just spit out its own internal
-version of a `diff`, but that internal version really just tells you
+version of a 'diff', but that internal version really just tells you
that it has noticed that "hello" has been modified, and that the old object
contents it had have been replaced with something else.
-To make it readable, we can tell `git-diff-files` to output the
+To make it readable, we can tell 'git-diff-files' to output the
differences as a patch, using the `-p` flag:
------------
i.e. the diff of the change we caused by adding another line to `hello`.
-In other words, `git-diff-files` always shows us the difference between
+In other words, 'git-diff-files' always shows us the difference between
what is recorded in the index, and what is currently in the working
tree. That's very useful.
object as a 'commit' object together with an explanation of what the
tree was all about, along with information of how we came to that state.
-Creating a tree object is trivial, and is done with `git-write-tree`.
+Creating a tree object is trivial, and is done with 'git-write-tree'.
There are no options or other input: `git write-tree` will take the
current index state, and write an object that describes that whole
index. In other words, we're now tying together all the different
`git cat-file` to actually output the raw object contents, but you'll see
mainly a binary mess, so that's less interesting).
-However -- normally you'd never use `git-write-tree` on its own, because
+However -- normally you'd never use 'git-write-tree' on its own, because
normally you always commit a tree into a commit object using the
-`git-commit-tree` command. In fact, it's easier to not actually use
-`git-write-tree` on its own at all, but to just pass its result in as an
-argument to `git-commit-tree`.
+'git-commit-tree' command. In fact, it's easier to not actually use
+'git-write-tree' on its own at all, but to just pass its result in as an
+argument to 'git-commit-tree'.
-`git-commit-tree` normally takes several arguments -- it wants to know
+'git-commit-tree' normally takes several arguments -- it wants to know
what the 'parent' of a commit was, but since this is the first commit
ever in this new repository, and it has no parents, we only need to pass in
-the object name of the tree. However, `git-commit-tree` also wants to get a
+the object name of the tree. However, 'git-commit-tree' also wants to get a
commit message on its standard input, and it will write out the resulting
object name for the commit to its standard output.
And this is where we create the `.git/refs/heads/master` file
which is pointed at by `HEAD`. This file is supposed to contain
the reference to the top-of-tree of the master branch, and since
-that's exactly what `git-commit-tree` spits out, we can do this
+that's exactly what 'git-commit-tree' spits out, we can do this
all with a sequence of simple shell commands:
------------------------------------------------
Making a change
---------------
-Remember how we did the `git-update-index` on file `hello` and then we
+Remember how we did the 'git-update-index' on file `hello` and then we
changed `hello` afterward, and could compare the new state of `hello` with the
state we saved in the index file?
-Further, remember how I said that `git-write-tree` writes the contents
+Further, remember how I said that 'git-write-tree' writes the contents
of the *index* file to the tree, and thus what we just committed was in
fact the *original* contents of the file `hello`, not the new ones. We did
that on purpose, to show the difference between the index state, and the
we'll still see the same difference we saw last time: the index file
hasn't changed by the act of committing anything. However, now that we
have committed something, we can also learn to use a new command:
-`git-diff-index`.
+'git-diff-index'.
-Unlike `git-diff-files`, which showed the difference between the index
-file and the working tree, `git-diff-index` shows the differences
+Unlike 'git-diff-files', which showed the difference between the index
+file and the working tree, 'git-diff-index' shows the differences
between a committed *tree* and either the index file or the working
-tree. In other words, `git-diff-index` wants a tree to be diffed
+tree. In other words, 'git-diff-index' wants a tree to be diffed
against, and before we did the commit, we couldn't do that, because we
didn't have anything to diff against.
$ git diff-index -p HEAD
----------------
-(where `-p` has the same meaning as it did in `git-diff-files`), and it
+(where `-p` has the same meaning as it did in 'git-diff-files'), and it
will show us the same difference, but for a totally different reason.
Now we're comparing the working tree not against the index file,
but against the tree we just wrote. It just so happens that those two
which ends up doing the above for you.
-In other words, `git-diff-index` normally compares a tree against the
+In other words, 'git-diff-index' normally compares a tree against the
working tree, but when given the `\--cached` flag, it is told to
instead compare against just the index cache contents, and ignore the
current working tree state entirely. Since we just wrote the index
[NOTE]
================
-`git-diff-index` really always uses the index for its
+'git-diff-index' really always uses the index for its
comparisons, and saying that it compares a tree against the working
tree is thus not strictly accurate. In particular, the list of
files to compare (the "meta-data") *always* comes from the index file,
(note how we didn't need the `\--add` flag this time, since git knew
about the file already).
-Note what happens to the different `git-diff-\*` versions here. After
+Note what happens to the different 'git-diff-\*' versions here. After
we've updated `hello` in the index, `git diff-files -p` now shows no
differences, but `git diff-index -p HEAD` still *does* show that the
current state is different from the state we committed. In fact, now
-`git-diff-index` shows the same difference whether we use the `--cached`
+'git-diff-index' shows the same difference whether we use the `--cached`
flag or not, since now the index is coherent with the working tree.
Now, since we've updated `hello` in the index, we can commit the new
looking at what `git commit` really does, feel free to investigate:
it's a few very simple shell scripts to generate the helpful (?) commit
message headers, and a few one-liners that actually do the
-commit itself (`git-commit`).
+commit itself ('git-commit').
Inspecting Changes
While creating changes is useful, it's even more useful if you can tell
later what changed. The most useful command for this is another of the
-`diff` family, namely `git-diff-tree`.
+'diff' family, namely 'git-diff-tree'.
-`git-diff-tree` can be given two arbitrary trees, and it will tell you the
+'git-diff-tree' can be given two arbitrary trees, and it will tell you the
differences between them. Perhaps even more commonly, though, you can
give it just a single commit object, and it will figure out the parent
of that commit itself, and show the difference directly. Thus, to get
+-----------+
============
-More interestingly, you can also give `git-diff-tree` the `--pretty` flag,
+More interestingly, you can also give 'git-diff-tree' the `--pretty` flag,
which tells it to also show the commit message and author and date of the
commit, and you can tell it to show a whole series of diffs.
Alternatively, you can tell it to be "silent", and not show the diffs at
all, but just show the actual commit message.
-In fact, together with the `git-rev-list` program (which generates a
-list of revisions), `git-diff-tree` ends up being a veritable fount of
-changes. A trivial (but very useful) script called `git-whatchanged` is
+In fact, together with the 'git-rev-list' program (which generates a
+list of revisions), 'git-diff-tree' ends up being a veritable fount of
+changes. A trivial (but very useful) script called 'git-whatchanged' is
included with git which does exactly this, and shows a log of recent
activities.
If this is a problem because it is huge, you can hide it by setting
the log.showroot configuration variable to false. Having this, you
can still show it for each command just adding the `\--root` option,
-which is a flag for `git-diff-tree` accepted by both commands.
+which is a flag for 'git-diff-tree' accepted by both commands.
With that, you should now be having some inkling of what git does, and
can explore on your own.
[NOTE]
Most likely, you are not directly using the core
-git Plumbing commands, but using Porcelain such as `git-add`, `git-rm'
+git Plumbing commands, but using Porcelain such as 'git-add', `git-rm'
and `git-commit'.
message, along with optionally a PGP signature that says that yes,
you really did
that tag. You create these annotated tags with either the `-a` or
-`-s` flag to `git tag`:
+`-s` flag to 'git-tag':
----------------
$ git tag -s <tagname>
history outside the project you created.
- if you want to move or duplicate a git repository, you can do so. There
- is `git clone` command, but if all you want to do is just to
+ is 'git-clone' command, but if all you want to do is just to
create a copy of your repository (with all the full history that
went along with it), you can do so with a regular
`cp -a git-tutorial new-git-tutorial`.
Note that the second point is true even across machines. You can
duplicate a remote git repository with *any* regular copy mechanism, be it
-`scp`, `rsync` or `wget`.
+'scp', 'rsync' or 'wget'.
When copying a remote repository, you'll want to at a minimum update the
index cache when you do this, and especially with other peoples'
repositories you often want to make sure that the index cache is in some
known state (you don't know *what* they've done and not yet checked in),
-so usually you'll precede the `git-update-index` with a
+so usually you'll precede the 'git-update-index' with a
----------------
$ git read-tree --reset HEAD
----------------
which will force a total index re-build from the tree pointed to by `HEAD`.
-It resets the index contents to `HEAD`, and then the `git-update-index`
+It resets the index contents to `HEAD`, and then the 'git-update-index'
makes sure to match up all index entries with the checked-out files.
If the original repository had uncommitted changes in its
working tree, `git update-index --refresh` notices them and
and in fact a lot of the common git command combinations can be scripted
with the `git xyz` interfaces. You can learn things by just looking
at what the various git scripts do. For example, `git reset` used to be
-the above two lines implemented in `git-reset`, but some things like
-`git-status` and `git-commit` are slightly more complex scripts around
+the above two lines implemented in 'git-reset', but some things like
+'git-status' and 'git-commit' are slightly more complex scripts around
the basic git commands.
Many (most?) public remote repositories will not contain any of
up-to-date (so that you don't have to refresh it afterward), and the
`-a` flag means "check out all files" (if you have a stale copy or an
older version of a checked out tree you may also need to add the `-f`
-flag first, to tell `git-checkout-index` to *force* overwriting of any old
+flag first, to tell 'git-checkout-index' to *force* overwriting of any old
files).
Again, this can all be simplified with
================================================
If you make the decision to start your new branch at some
other point in the history than the current `HEAD`, you can do so by
-just telling `git checkout` what the base of the checkout would be.
+just telling 'git-checkout' what the base of the checkout would be.
In other words, if you have an earlier tag or branch, you'd just do
------------
which will simply _create_ the branch, but will not do anything further.
You can then later -- once you decide that you want to actually develop
-on that branch -- switch to that branch with a regular `git checkout`
+on that branch -- switch to that branch with a regular 'git-checkout'
with the branchname as the argument.
histories. You can also see exactly how they came to be from a common
source.
-Anyway, let's exit `gitk` (`^Q` or the File menu), and decide that we want
+Anyway, let's exit 'gitk' (`^Q` or the File menu), and decide that we want
to merge the work we did on the `mybranch` branch into the `master`
branch (which is currently our `HEAD` too). To do that, there's a nice
-script called `git merge`, which wants to know which branches you want
+script called 'git-merge', which wants to know which branches you want
to resolve and what the merge is all about:
------------
which will very loudly warn you that you're now committing a merge
(which is correct, so never mind), and you can write a small merge
-message about your adventures in `git-merge`-land.
+message about your adventures in 'git-merge'-land.
After you're done, start up `gitk \--all` to see graphically what the
history looks like. Notice that `mybranch` still exists, and you can
see more complex cases.
[NOTE]
-Without the '--more=1' option, `git-show-branch` would not output the
+Without the '--more=1' option, 'git-show-branch' would not output the
'[master^]' commit, as '[mybranch]' commit is a common ancestor of
both 'master' and 'mybranch' tips. Please see linkgit:git-show-branch[1]
for details.
[NOTE]
If there were more commits on the 'master' branch after the merge, the
-merge commit itself would not be shown by `git-show-branch` by
+merge commit itself would not be shown by 'git-show-branch' by
default. You would need to provide '--sparse' option to make the
merge commit visible in this case.
Now, let's pretend you are the one who did all the work in
`mybranch`, and the fruit of your hard work has finally been merged
to the `master` branch. Let's go back to `mybranch`, and run
-`git-merge` to get the "upstream changes" back to your branch.
+'git-merge' to get the "upstream changes" back to your branch.
------------
$ git checkout mybranch
often called 'fast forward' merge.
You can run `gitk \--all` again to see how the commit ancestry
-looks like, or run `show-branch`, which tells you this.
+looks like, or run 'show-branch', which tells you this.
------------------------------------------------
$ git show-branch master mybranch
It's usually much more common that you merge with somebody else than
merging with your own branches, so it's worth pointing out that git
makes that very easy too, and in fact, it's not that different from
-doing a `git merge`. In fact, a remote merge ends up being nothing
+doing a 'git-merge'. In fact, a remote merge ends up being nothing
more than "fetch the work from a remote repository into a temporary tag"
-followed by a `git merge`.
+followed by a 'git-merge'.
Fetching from a remote repository is done by, unsurprisingly,
-`git fetch`:
+'git-fetch':
----------------
$ git fetch <remote-repository>
Local directory::
`/path/to/repo.git/`
+
-This transport is the same as SSH transport but uses `sh` to run
+This transport is the same as SSH transport but uses 'sh' to run
both ends on the local machine instead of running other end on
-the remote machine via `ssh`.
+the remote machine via 'ssh'.
git Native::
`git://remote.machine/path/to/repo.git/`
transports', because they do not require any git aware smart
server like git Native transport does. Any stock HTTP server
that does not even support directory index would suffice. But
-you must prepare your repository with `git-update-server-info`
+you must prepare your repository with 'git-update-server-info'
to help dumb transport downloaders.
Once you fetch from the remote repository, you `merge` that
[NOTE]
You could do without using any branches at all, by
keeping as many local repositories as you would like to have
-branches, and merging between them with `git pull`, just like
+branches, and merging between them with 'git-pull', just like
you merge between branches. The advantage of this approach is
that it lets you keep a set of files for each `branch` checked
out and you may find it easier to switch back and forth if you
$ git config remote.linus.url http://www.kernel.org/pub/scm/git/git.git/
------------------------------------------------
-and use the "linus" keyword with `git pull` instead of the full URL.
+and use the "linus" keyword with 'git-pull' instead of the full URL.
Examples.
+* [master^] Some fun.
------------
-Remember, before running `git merge`, our `master` head was at
+Remember, before running 'git-merge', our `master` head was at
"Some fun." commit, while our `mybranch` head was at "Some
work." commit.
`git merge` command, when merging two branches, uses 3-way merge
algorithm. First, it finds the common ancestor between them.
-The command it uses is `git-merge-base`:
+The command it uses is 'git-merge-base':
------------
$ mb=$(git merge-base HEAD mybranch)
$ git read-tree -m -u $mb HEAD mybranch
------------
-This is the same `git-read-tree` command we have already seen,
+This is the same 'git-read-tree' command we have already seen,
but it takes three trees, unlike previous examples. This reads
the contents of each tree into different 'stage' in the index
file (the first tree goes to stage 1, the second to stage 2,
The next step of merging is to merge these three versions of the
file, using 3-way merge. This is done by giving
-`git-merge-one-file` command as one of the arguments to
-`git-merge-index` command:
+'git-merge-one-file' command as one of the arguments to
+'git-merge-index' command:
------------
$ git merge-index git-merge-one-file hello
fatal: merge program failed
------------
-`git-merge-one-file` script is called with parameters to
+'git-merge-one-file' script is called with parameters to
describe those three versions, and is responsible to leave the
merge results in the working tree.
It is a fairly straightforward shell script, and
-eventually calls `merge` program from RCS suite to perform a
-file-level 3-way merge. In this case, `merge` detects
+eventually calls 'merge' program from RCS suite to perform a
+file-level 3-way merge. In this case, 'merge' detects
conflicts, and the merge result with conflict marks is left in
the working tree.. This can be seen if you run `ls-files
--stage` again at this point:
------------
This is the state of the index file and the working file after
-`git-merge` returns control back to you, leaving the conflicting
+'git-merge' returns control back to you, leaving the conflicting
merge for you to resolve. Notice that the path `hello` is still
-unmerged, and what you see with `git-diff` at this point is
+unmerged, and what you see with 'git-diff' at this point is
differences since stage 2 (i.e. your version).
Publishing the changes from your local (private) repository to
your remote (public) repository requires a write privilege on
the remote machine. You need to have an SSH account there to
-run a single command, `git-receive-pack`.
+run a single command, 'git-receive-pack'.
First, you need to create an empty repository on the remote
machine that will house your public repository. This empty
done only once.
[NOTE]
-`git-push` uses a pair of programs,
-`git-send-pack` on your local machine, and `git-receive-pack`
+'git-push' uses a pair of programs,
+'git-send-pack' on your local machine, and 'git-receive-pack'
on the remote machine. The communication between the two over
the network internally uses an SSH connection.
------------
Then, make that directory into a git repository by running
-`git init`, but this time, since its name is not the usual
+'git-init', but this time, since its name is not the usual
`.git`, we do things slightly differently:
------------
Make sure this directory is available for others you want your
changes to be pulled by via the transport of your choice. Also
-you need to make sure that you have the `git-receive-pack`
+you need to make sure that you have the 'git-receive-pack'
program on the `$PATH`.
[NOTE]
Many installations of sshd do not invoke your shell as the login
shell when you directly run programs; what this means is that if
-your login shell is `bash`, only `.bashrc` is read and not
+your login shell is 'bash', only `.bashrc` is read and not
`.bash_profile`. As a workaround, make sure `.bashrc` sets up
-`$PATH` so that you can run `git-receive-pack` program.
+`$PATH` so that you can run 'git-receive-pack' program.
[NOTE]
If you plan to publish this repository to be accessed over http,
will do it for you. If you followed the tutorial examples, you
would have accumulated about 17 objects in `.git/objects/??/`
-directories by now. `git repack` tells you how many objects it
+directories by now. 'git-repack' tells you how many objects it
packed, and stores the packed file in `.git/objects/pack`
directory.
in the pack, and the latter holds the index for random
access.
-If you are paranoid, running `git-verify-pack` command would
+If you are paranoid, running 'git-verify-pack' command would
detect if you have a corrupt pack, but do not worry too much.
Our programs are always perfect ;-).
transport protocols (HTTP), you need to keep this repository
'dumb transport friendly'. After `git init`,
`$GIT_DIR/hooks/post-update` copied from the standard templates
-would contain a call to `git-update-server-info` but the
+would contain a call to 'git-update-server-info' but the
`post-update` hook itself is disabled by default -- enable it
-with `chmod +x post-update`. This makes sure `git-update-server-info`
+with `chmod +x post-update`. This makes sure 'git-update-server-info'
keeps the necessary files up-to-date.
3. Push into the public repository from your primary
repository.
-4. `git-repack` the public repository. This establishes a big
+4. 'git-repack' the public repository. This establishes a big
pack that contains the initial set of objects as the
- baseline, and possibly `git-prune` if the transport
+ baseline, and possibly 'git-prune' if the transport
used for pulling from your repository supports packed
repositories.
A recommended work cycle for a "subsystem maintainer" who works
on that project and has an own "public repository" goes like this:
-1. Prepare your work repository, by `git-clone` the public
+1. Prepare your work repository, by 'git-clone' the public
repository of the "project lead". The URL used for the
initial cloning is stored in the remote.origin.url
configuration variable.
point at the repository you are borrowing from.
4. Push into the public repository from your primary
- repository. Run `git-repack`, and possibly `git-prune` if the
+ repository. Run 'git-repack', and possibly 'git-prune' if the
transport used for pulling from your repository supports
packed repositories.
"project lead" and possibly your "sub-subsystem
maintainers" to pull from it.
-7. Every once in a while, `git-repack` the public repository.
+7. Every once in a while, 'git-repack' the public repository.
Go back to step 5. and continue working.
not have a "public" repository is somewhat different. It goes
like this:
-1. Prepare your work repository, by `git-clone` the public
+1. Prepare your work repository, by 'git-clone' the public
repository of the "project lead" (or a "subsystem
maintainer", if you work on a subsystem). The URL used for
the initial cloning is stored in the remote.origin.url
$ git reset --hard master~2
------------
-You can make sure 'git show-branch' matches the state before
-those two 'git merge' you just did. Then, instead of running
-two 'git merge' commands in a row, you would merge these two
+You can make sure `git show-branch` matches the state before
+those two 'git-merge' you just did. Then, instead of running
+two 'git-merge' commands in a row, you would merge these two
branch heads (this is known as 'making an Octopus'):
------------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gitcvs-migration(7)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>git cvsimport *</p>\r
+<div class="para"><p>git cvsimport *</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Git differs from CVS in that every working tree contains a repository with\r
+<div class="para"><p>Git differs from CVS in that every working tree contains a repository with\r
a full copy of the project history, and no repository is inherently more\r
important than any other. However, you can emulate the CVS model by\r
designating a single shared repository which people can synchronize with;\r
-this document explains how to do that.</p>\r
-<p>Some basic familiarity with git is required. Having gone through\r
+this document explains how to do that.</p></div>\r
+<div class="para"><p>Some basic familiarity with git is required. Having gone through\r
<a href="gittutorial.html">gittutorial(7)</a> and\r
-<a href="gitglossary.html">gitglossary(7)</a> should be sufficient.</p>\r
+<a href="gitglossary.html">gitglossary(7)</a> should be sufficient.</p></div>\r
</div>\r
-<h2>Developing against a shared repository</h2>\r
+<h2 id="_developing_against_a_shared_repository">Developing against a shared repository</h2>\r
<div class="sectionbody">\r
-<p>Suppose a shared repository is set up in /pub/repo.git on the host\r
+<div class="para"><p>Suppose a shared repository is set up in /pub/repo.git on the host\r
foo.com. Then as an individual committer you can clone the shared\r
-repository over ssh with:</p>\r
+repository over ssh with:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git clone foo.com:/pub/repo.git/ my-project\r
$ cd my-project</tt></pre>\r
</div></div>\r
-<p>and hack away. The equivalent of <tt>cvs update</tt> is</p>\r
+<div class="para"><p>and hack away. The equivalent of <em>cvs update</em> is</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git pull origin</tt></pre>\r
</div></div>\r
-<p>which merges in any work that others might have done since the clone\r
+<div class="para"><p>which merges in any work that others might have done since the clone\r
operation. If there are uncommitted changes in your working tree, commit\r
-them first before running git pull.</p>\r
+them first before running git pull.</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="title">Note</div>\r
</td>\r
<td class="content">\r
-<p>The <tt>pull</tt> command knows where to get updates from because of certain\r
-configuration variables that were set by the first <tt>git-clone</tt>\r
+<div class="para"><p>The <em>pull</em> command knows where to get updates from because of certain\r
+configuration variables that were set by the first <em>git-clone</em>\r
command; see <tt>git config -l</tt> and the <a href="git-config.html">git-config(1)</a> man\r
-page for details.</p>\r
+page for details.</p></div>\r
</td>\r
</tr></table>\r
</div>\r
-<p>You can update the shared repository with your changes by first committing\r
-your changes, and then using the <tt>git-push</tt> command:</p>\r
+<div class="para"><p>You can update the shared repository with your changes by first committing\r
+your changes, and then using the <em>git-push</em> command:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git push origin master</tt></pre>\r
</div></div>\r
-<p>to "push" those commits to the shared repository. If someone else has\r
-updated the repository more recently, <tt>git-push</tt>, like <tt>cvs commit</tt>, will\r
+<div class="para"><p>to "push" those commits to the shared repository. If someone else has\r
+updated the repository more recently, <em>git-push</em>, like <em>cvs commit</em>, will\r
complain, in which case you must pull any changes before attempting the\r
-push again.</p>\r
-<p>In the <tt>git-push</tt> command above we specify the name of the remote branch\r
-to update (<tt>master</tt>). If we leave that out, <tt>git-push</tt> tries to update\r
+push again.</p></div>\r
+<div class="para"><p>In the <em>git-push</em> command above we specify the name of the remote branch\r
+to update (<tt>master</tt>). If we leave that out, <em>git-push</em> tries to update\r
any branches in the remote repository that have the same name as a branch\r
-in the local repository. So the last <tt>push</tt> can be done with either of:</p>\r
+in the local repository. So the last <em>push</em> can be done with either of:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git push origin\r
$ git push foo.com:/pub/project.git/</tt></pre>\r
</div></div>\r
-<p>as long as the shared repository does not have any branches\r
-other than <tt>master</tt>.</p>\r
+<div class="para"><p>as long as the shared repository does not have any branches\r
+other than <tt>master</tt>.</p></div>\r
</div>\r
-<h2>Setting Up a Shared Repository</h2>\r
+<h2 id="_setting_up_a_shared_repository">Setting Up a Shared Repository</h2>\r
<div class="sectionbody">\r
-<p>We assume you have already created a git repository for your project,\r
+<div class="para"><p>We assume you have already created a git repository for your project,\r
possibly created from scratch or from a tarball (see\r
<a href="gittutorial.html">gittutorial(7)</a>), or imported from an already existing CVS\r
-repository (see the next section).</p>\r
-<p>Assume your existing repo is at /home/alice/myproject. Create a new "bare"\r
+repository (see the next section).</p></div>\r
+<div class="para"><p>Assume your existing repo is at /home/alice/myproject. Create a new "bare"\r
repository (a repository without a working tree) and fetch your project into\r
-it:</p>\r
+it:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ mkdir /pub/my-repo.git\r
$ git --bare init --shared\r
$ git --bare fetch /home/alice/myproject master:master</tt></pre>\r
</div></div>\r
-<p>Next, give every team member read/write access to this repository. One\r
+<div class="para"><p>Next, give every team member read/write access to this repository. One\r
easy way to do this is to give all the team members ssh access to the\r
machine where the repository is hosted. If you don't want to give them a\r
full shell on the machine, there is a restricted shell which only allows\r
-users to do git pushes and pulls; see <a href="git-shell.html">git-shell(1)</a>.</p>\r
-<p>Put all the committers in the same group, and make the repository\r
-writable by that group:</p>\r
+users to do git pushes and pulls; see <a href="git-shell.html">git-shell(1)</a>.</p></div>\r
+<div class="para"><p>Put all the committers in the same group, and make the repository\r
+writable by that group:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ chgrp -R $group /pub/my-repo.git</tt></pre>\r
</div></div>\r
-<p>Make sure committers have a umask of at most 027, so that the directories\r
-they create are writable and searchable by other group members.</p>\r
+<div class="para"><p>Make sure committers have a umask of at most 027, so that the directories\r
+they create are writable and searchable by other group members.</p></div>\r
</div>\r
-<h2>Importing a CVS archive</h2>\r
+<h2 id="_importing_a_cvs_archive">Importing a CVS archive</h2>\r
<div class="sectionbody">\r
-<p>First, install version 2.1 or higher of cvsps from\r
+<div class="para"><p>First, install version 2.1 or higher of cvsps from\r
<a href="http://www.cobite.com/cvsps/">http://www.cobite.com/cvsps/</a> and make\r
sure it is in your path. Then cd to a checked out CVS working directory\r
-of the project you are interested in and run <tt>git-cvsimport</tt>:</p>\r
+of the project you are interested in and run <em>git-cvsimport</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cvsimport -C <destination> <module></tt></pre>\r
</div></div>\r
-<p>This puts a git archive of the named CVS module in the directory\r
-<destination>, which will be created if necessary.</p>\r
-<p>The import checks out from CVS every revision of every file. Reportedly\r
+<div class="para"><p>This puts a git archive of the named CVS module in the directory\r
+<destination>, which will be created if necessary.</p></div>\r
+<div class="para"><p>The import checks out from CVS every revision of every file. Reportedly\r
cvsimport can average some twenty revisions per second, so for a\r
medium-sized project this should not take more than a couple of minutes.\r
-Larger projects or remote repositories may take longer.</p>\r
-<p>The main trunk is stored in the git branch named <tt>origin</tt>, and additional\r
+Larger projects or remote repositories may take longer.</p></div>\r
+<div class="para"><p>The main trunk is stored in the git branch named <tt>origin</tt>, and additional\r
CVS branches are stored in git branches with the same names. The most\r
recent version of the main trunk is also left checked out on the <tt>master</tt>\r
-branch, so you can start adding your own changes right away.</p>\r
-<p>The import is incremental, so if you call it again next month it will\r
+branch, so you can start adding your own changes right away.</p></div>\r
+<div class="para"><p>The import is incremental, so if you call it again next month it will\r
fetch any CVS updates that have been made in the meantime. For this to\r
work, you must not modify the imported branches; instead, create new\r
branches for your own changes, and merge in the imported branches as\r
-necessary.</p>\r
+necessary.</p></div>\r
+<div class="para"><p>If you want a shared repository, you will need to make a bare clone\r
+of the imported directory, as described above. Then treat the imported\r
+directory as another development clone for purposes of merging\r
+incremental imports.</p></div>\r
</div>\r
-<h2>Advanced Shared Repository Management</h2>\r
+<h2 id="_advanced_shared_repository_management">Advanced Shared Repository Management</h2>\r
<div class="sectionbody">\r
-<p>Git allows you to specify scripts called "hooks" to be run at certain\r
+<div class="para"><p>Git allows you to specify scripts called "hooks" to be run at certain\r
points. You can use these, for example, to send all commits to the shared\r
-repository to a mailing list. See <a href="githooks.html">githooks(5)</a>.</p>\r
-<p>You can enforce finer grained permissions using update hooks. See\r
+repository to a mailing list. See <a href="githooks.html">githooks(5)</a>.</p></div>\r
+<div class="para"><p>You can enforce finer grained permissions using update hooks. See\r
<a href="howto/update-hook-example.txt">Controlling access to branches using\r
-update hooks</a>.</p>\r
+update hooks</a>.</p></div>\r
</div>\r
-<h2>Providing CVS Access to a git Repository</h2>\r
+<h2 id="_providing_cvs_access_to_a_git_repository">Providing CVS Access to a git Repository</h2>\r
<div class="sectionbody">\r
-<p>It is also possible to provide true CVS access to a git repository, so\r
+<div class="para"><p>It is also possible to provide true CVS access to a git repository, so\r
that developers can still use CVS; see <a href="git-cvsserver.html">git-cvsserver(1)</a> for\r
-details.</p>\r
+details.</p></div>\r
</div>\r
-<h2>Alternative Development Models</h2>\r
+<h2 id="_alternative_development_models">Alternative Development Models</h2>\r
<div class="sectionbody">\r
-<p>CVS users are accustomed to giving a group of developers commit access to\r
+<div class="para"><p>CVS users are accustomed to giving a group of developers commit access to\r
a common repository. As we've seen, this is also possible with git.\r
However, the distributed nature of git allows other development models,\r
and you may want to first consider whether one of them might be a better\r
-fit for your project.</p>\r
-<p>For example, you can choose a single person to maintain the project's\r
+fit for your project.</p></div>\r
+<div class="para"><p>For example, you can choose a single person to maintain the project's\r
primary public repository. Other developers then clone this repository\r
and each work in their own clone. When they have a series of changes that\r
they're happy with, they ask the maintainer to pull from the branch\r
containing the changes. The maintainer reviews their changes and pulls\r
them into the primary repository, which other developers pull from as\r
necessary to stay coordinated. The Linux kernel and other projects use\r
-variants of this model.</p>\r
-<p>With a small group, developers may just pull changes from each other's\r
-repositories without the need for a central maintainer.</p>\r
+variants of this model.</p></div>\r
+<div class="para"><p>With a small group, developers may just pull changes from each other's\r
+repositories without the need for a central maintainer.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="gittutorial.html">gittutorial(7)</a>,\r
+<div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>,\r
<a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
<a href="gitcore-tutorial.html">gitcore-tutorial(7)</a>,\r
<a href="gitglossary.html">gitglossary(7)</a>,\r
<a href="everyday.html">Everyday Git</a>,\r
-<a href="user-manual.html">The Git User's Manual</a></p>\r
+<a href="user-manual.html">The Git User's Manual</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite.</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:12 UTC\r
+Last updated 2008-07-06 05:17:12 UTC\r
</div>\r
</div>\r
</body>\r
$ cd my-project
------------------------------------------------
-and hack away. The equivalent of `cvs update` is
+and hack away. The equivalent of 'cvs update' is
------------------------------------------------
$ git pull origin
[NOTE]
================================
-The `pull` command knows where to get updates from because of certain
-configuration variables that were set by the first `git-clone`
+The 'pull' command knows where to get updates from because of certain
+configuration variables that were set by the first 'git-clone'
command; see `git config -l` and the linkgit:git-config[1] man
page for details.
================================
You can update the shared repository with your changes by first committing
-your changes, and then using the `git-push` command:
+your changes, and then using the 'git-push' command:
------------------------------------------------
$ git push origin master
------------------------------------------------
to "push" those commits to the shared repository. If someone else has
-updated the repository more recently, `git-push`, like `cvs commit`, will
+updated the repository more recently, 'git-push', like 'cvs commit', will
complain, in which case you must pull any changes before attempting the
push again.
-In the `git-push` command above we specify the name of the remote branch
-to update (`master`). If we leave that out, `git-push` tries to update
+In the 'git-push' command above we specify the name of the remote branch
+to update (`master`). If we leave that out, 'git-push' tries to update
any branches in the remote repository that have the same name as a branch
-in the local repository. So the last `push` can be done with either of:
+in the local repository. So the last 'push' can be done with either of:
------------
$ git push origin
First, install version 2.1 or higher of cvsps from
link:http://www.cobite.com/cvsps/[http://www.cobite.com/cvsps/] and make
sure it is in your path. Then cd to a checked out CVS working directory
-of the project you are interested in and run `git-cvsimport`:
+of the project you are interested in and run 'git-cvsimport':
-------------------------------------------
$ git cvsimport -C <destination> <module>
branches for your own changes, and merge in the imported branches as
necessary.
+If you want a shared repository, you will need to make a bare clone
+of the imported directory, as described above. Then treat the imported
+directory as another development clone for purposes of merging
+incremental imports.
+
Advanced Shared Repository Management
-------------------------------------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gitdiffcore(7)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>git diff *</p>\r
+<div class="para"><p><em>git diff</em> *</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>The diff commands <tt>git-diff-index</tt>, <tt>git-diff-files</tt>, and <tt>git-diff-tree</tt>\r
+<div class="para"><p>The diff commands <em>git-diff-index</em>, <em>git-diff-files</em>, and <em>git-diff-tree</em>\r
can be told to manipulate differences they find in\r
-unconventional ways before showing <tt>diff</tt> output. The manipulation\r
+unconventional ways before showing <em>diff</em> output. The manipulation\r
is collectively called "diffcore transformation". This short note\r
-describes what they are and how to use them to produce diff outputs\r
-that are easier to understand than the conventional kind.</p>\r
+describes what they are and how to use them to produce <em>diff</em> output\r
+that is easier to understand than the conventional kind.</p></div>\r
</div>\r
-<h2>The chain of operation</h2>\r
+<h2 id="_the_chain_of_operation">The chain of operation</h2>\r
<div class="sectionbody">\r
-<p>The <tt>git-diff-*</tt> family works by first comparing two sets of\r
-files:</p>\r
-<ul>\r
+<div class="para"><p>The <em>git-diff-*</em> family works by first comparing two sets of\r
+files:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
-<tt>git-diff-index</tt> compares contents of a "tree" object and the\r
+<em>git-diff-index</em> compares contents of a "tree" object and the\r
working directory (when <em>--cached</em> flag is not used) or a\r
"tree" object and the index file (when <em>--cached</em> flag is\r
used);\r
</li>\r
<li>\r
<p>\r
-<tt>git-diff-files</tt> compares contents of the index file and the\r
+<em>git-diff-files</em> compares contents of the index file and the\r
working directory;\r
</p>\r
</li>\r
<li>\r
<p>\r
-<tt>git-diff-tree</tt> compares contents of two "tree" objects;\r
+<em>git-diff-tree</em> compares contents of two "tree" objects;\r
</p>\r
</li>\r
-</ul>\r
-<p>In all of these cases, the commands themselves compare\r
+</ul></div>\r
+<div class="para"><p>In all of these cases, the commands themselves compare\r
corresponding paths in the two sets of files. The result of\r
comparison is passed from these commands to what is internally\r
called "diffcore", in a format similar to what is output when\r
-the -p option is not used. E.g.</p>\r
+the -p option is not used. E.g.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0\r
delete :100644 000000 1234567... 0000000... D file5\r
unmerged :000000 000000 0000000... 0000000... U file6</tt></pre>\r
</div></div>\r
-<p>The diffcore mechanism is fed a list of such comparison results\r
+<div class="para"><p>The diffcore mechanism is fed a list of such comparison results\r
(each of which is called "filepair", although at this point each\r
of them talks about a single file), and transforms such a list\r
-into another list. There are currently 6 such transformations:</p>\r
-<ul>\r
+into another list. There are currently 6 such transformations:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
diffcore-pathspec\r
diffcore-order\r
</p>\r
</li>\r
-</ul>\r
-<p>These are applied in sequence. The set of filepairs <tt>git-diff-*</tt>\r
+</ul></div>\r
+<div class="para"><p>These are applied in sequence. The set of filepairs <em>git-diff-*</em>\r
commands find are used as the input to diffcore-pathspec, and\r
the output from diffcore-pathspec is used as the input to the\r
next transformation. The final result is then passed to the\r
output routine and generates either diff-raw format (see Output\r
-format sections of the manual for <tt>git-diff-*</tt> commands) or\r
-diff-patch format.</p>\r
+format sections of the manual for <em>git-diff-*</em> commands) or\r
+diff-patch format.</p></div>\r
</div>\r
-<h2>diffcore-pathspec: For Ignoring Files Outside Our Consideration</h2>\r
+<h2 id="_diffcore_pathspec_for_ignoring_files_outside_our_consideration">diffcore-pathspec: For Ignoring Files Outside Our Consideration</h2>\r
<div class="sectionbody">\r
-<p>The first transformation in the chain is diffcore-pathspec, and\r
+<div class="para"><p>The first transformation in the chain is diffcore-pathspec, and\r
is controlled by giving the pathname parameters to the\r
-<tt>git-diff-*</tt> commands on the command line. The pathspec is used\r
+<em>git-diff-*</em> commands on the command line. The pathspec is used\r
to limit the world diff operates in. It removes the filepairs\r
outside the specified set of pathnames. E.g. If the input set\r
-of filepairs included:</p>\r
+of filepairs included:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 bcd1234... 0123456... M junkfile</tt></pre>\r
</div></div>\r
-<p>but the command invocation was <tt>git diff-files myfile</tt>, then the\r
+<div class="para"><p>but the command invocation was <tt>git diff-files myfile</tt>, then the\r
junkfile entry would be removed from the list because only "myfile"\r
-is under consideration.</p>\r
-<p>Implementation note. For performance reasons, <tt>git-diff-tree</tt>\r
+is under consideration.</p></div>\r
+<div class="para"><p>Implementation note. For performance reasons, <em>git-diff-tree</em>\r
uses the pathname parameters on the command line to cull set of\r
filepairs it feeds the diffcore mechanism itself, and does not\r
-use diffcore-pathspec, but the end result is the same.</p>\r
+use diffcore-pathspec, but the end result is the same.</p></div>\r
</div>\r
-<h2>diffcore-break: For Splitting Up "Complete Rewrites"</h2>\r
+<h2 id="_diffcore_break_for_splitting_up_complete_rewrites">diffcore-break: For Splitting Up "Complete Rewrites"</h2>\r
<div class="sectionbody">\r
-<p>The second transformation in the chain is diffcore-break, and is\r
-controlled by the -B option to the <tt>git-diff-*</tt> commands. This is\r
+<div class="para"><p>The second transformation in the chain is diffcore-break, and is\r
+controlled by the -B option to the <em>git-diff-*</em> commands. This is\r
used to detect a filepair that represents "complete rewrite" and\r
break such filepair into two filepairs that represent delete and\r
-create. E.g. If the input contained this filepair:</p>\r
+create. E.g. If the input contained this filepair:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 bcd1234... 0123456... M file0</tt></pre>\r
</div></div>\r
-<p>and if it detects that the file "file0" is completely rewritten,\r
-it changes it to:</p>\r
+<div class="para"><p>and if it detects that the file "file0" is completely rewritten,\r
+it changes it to:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 000000 bcd1234... 0000000... D file0\r
:000000 100644 0000000... 0123456... A file0</tt></pre>\r
</div></div>\r
-<p>For the purpose of breaking a filepair, diffcore-break examines\r
+<div class="para"><p>For the purpose of breaking a filepair, diffcore-break examines\r
the extent of changes between the contents of the files before\r
and after modification (i.e. the contents that have "bcd1234…"\r
and "0123456…" as their SHA1 content ID, in the above\r
and the result (i.e. if the edit shrinks the file, the size of\r
the result is used; if the edit lengthens the file, the size of\r
the original is used), and can be customized by giving a number\r
-after "-B" option (e.g. "-B75" to tell it to use 75%).</p>\r
+after "-B" option (e.g. "-B75" to tell it to use 75%).</p></div>\r
</div>\r
-<h2>diffcore-rename: For Detection Renames and Copies</h2>\r
+<h2 id="_diffcore_rename_for_detection_renames_and_copies">diffcore-rename: For Detection Renames and Copies</h2>\r
<div class="sectionbody">\r
-<p>This transformation is used to detect renames and copies, and is\r
+<div class="para"><p>This transformation is used to detect renames and copies, and is\r
controlled by the -M option (to detect renames) and the -C option\r
-(to detect copies as well) to the <tt>git-diff-*</tt> commands. If the\r
-input contained these filepairs:</p>\r
+(to detect copies as well) to the <em>git-diff-*</em> commands. If the\r
+input contained these filepairs:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 000000 0123456... 0000000... D fileX\r
:000000 100644 0000000... 0123456... A file0</tt></pre>\r
</div></div>\r
-<p>and the contents of the deleted file fileX is similar enough to\r
+<div class="para"><p>and the contents of the deleted file fileX is similar enough to\r
the contents of the created file file0, then rename detection\r
-merges these filepairs and creates:</p>\r
+merges these filepairs and creates:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 0123456... 0123456... R100 fileX file0</tt></pre>\r
</div></div>\r
-<p>When the "-C" option is used, the original contents of modified files,\r
+<div class="para"><p>When the "-C" option is used, the original contents of modified files,\r
and deleted files (and also unmodified files, if the\r
"--find-copies-harder" option is used) are considered as candidates\r
of the source files in rename/copy operation. If the input were like\r
these filepairs, that talk about a modified file fileY and a newly\r
-created file file0:</p>\r
+created file file0:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 0123456... 1234567... M fileY\r
:000000 100644 0000000... bcd3456... A file0</tt></pre>\r
</div></div>\r
-<p>the original contents of fileY and the resulting contents of\r
+<div class="para"><p>the original contents of fileY and the resulting contents of\r
file0 are compared, and if they are similar enough, they are\r
-changed to:</p>\r
+changed to:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>:100644 100644 0123456... 1234567... M fileY\r
:100644 100644 0123456... bcd3456... C100 fileY file0</tt></pre>\r
</div></div>\r
-<p>In both rename and copy detection, the same "extent of changes"\r
+<div class="para"><p>In both rename and copy detection, the same "extent of changes"\r
algorithm used in diffcore-break is used to determine if two\r
files are "similar enough", and can be customized to use\r
a similarity score different from the default of 50% by giving a\r
number after the "-M" or "-C" option (e.g. "-M8" to tell it to use\r
-8/10 = 80%).</p>\r
-<p>Note. When the "-C" option is used with <tt>--find-copies-harder</tt>\r
-option, <tt>git-diff-*</tt> commands feed unmodified filepairs to\r
+8/10 = 80%).</p></div>\r
+<div class="para"><p>Note. When the "-C" option is used with <tt>--find-copies-harder</tt>\r
+option, <em>git-diff-*</em> commands feed unmodified filepairs to\r
diffcore mechanism as well as modified ones. This lets the copy\r
detector consider unmodified files as copy source candidates at\r
the expense of making it slower. Without <tt>--find-copies-harder</tt>,\r
-<tt>git-diff-*</tt> commands can detect copies only if the file that was\r
-copied happened to have been modified in the same changeset.</p>\r
+<em>git-diff-*</em> commands can detect copies only if the file that was\r
+copied happened to have been modified in the same changeset.</p></div>\r
</div>\r
-<h2>diffcore-merge-broken: For Putting "Complete Rewrites" Back Together</h2>\r
+<h2 id="_diffcore_merge_broken_for_putting_complete_rewrites_back_together">diffcore-merge-broken: For Putting "Complete Rewrites" Back Together</h2>\r
<div class="sectionbody">\r
-<p>This transformation is used to merge filepairs broken by\r
+<div class="para"><p>This transformation is used to merge filepairs broken by\r
diffcore-break, and not transformed into rename/copy by\r
diffcore-rename, back into a single modification. This always\r
-runs when diffcore-break is used.</p>\r
-<p>For the purpose of merging broken filepairs back, it uses a\r
+runs when diffcore-break is used.</p></div>\r
+<div class="para"><p>For the purpose of merging broken filepairs back, it uses a\r
different "extent of changes" computation from the ones used by\r
diffcore-break and diffcore-rename. It counts only the deletion\r
from the original, and does not count insertion. If you removed\r
rename/copy detection, but if filepairs broken that way were not\r
matched with other filepairs to create rename/copy, then this\r
transformation merges them back into the original\r
-"modification".</p>\r
-<p>The "extent of changes" parameter can be tweaked from the\r
+"modification".</p></div>\r
+<div class="para"><p>The "extent of changes" parameter can be tweaked from the\r
default 80% (that is, unless more than 80% of the original\r
material is deleted, the broken pairs are merged back into a\r
single modification) by giving a second number to -B option,\r
-like these:</p>\r
-<ul>\r
+like these:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
-B50/60 (give 50% "break score" to diffcore-break, use 60%\r
-B/60 (the same as above, since diffcore-break defaults to 50%).\r
</p>\r
</li>\r
-</ul>\r
-<p>Note that earlier implementation left a broken pair as a separate\r
+</ul></div>\r
+<div class="para"><p>Note that earlier implementation left a broken pair as a separate\r
creation and deletion patches. This was an unnecessary hack and\r
the latest implementation always merges all the broken pairs\r
back into modifications, but the resulting patch output is\r
formatted differently for easier review in case of such\r
a complete rewrite by showing the entire contents of old version\r
prefixed with <em>-</em>, followed by the entire contents of new\r
-version prefixed with <em>+</em>.</p>\r
+version prefixed with <em>+</em>.</p></div>\r
</div>\r
-<h2>diffcore-pickaxe: For Detecting Addition/Deletion of Specified String</h2>\r
+<h2 id="_diffcore_pickaxe_for_detecting_addition_deletion_of_specified_string">diffcore-pickaxe: For Detecting Addition/Deletion of Specified String</h2>\r
<div class="sectionbody">\r
-<p>This transformation is used to find filepairs that represent\r
+<div class="para"><p>This transformation is used to find filepairs that represent\r
changes that touch a specified string, and is controlled by the\r
--S option and the <tt>--pickaxe-all</tt> option to the <tt>git-diff-*</tt>\r
-commands.</p>\r
-<p>When diffcore-pickaxe is in use, it checks if there are\r
+-S option and the <tt>--pickaxe-all</tt> option to the <em>git-diff-*</em>\r
+commands.</p></div>\r
+<div class="para"><p>When diffcore-pickaxe is in use, it checks if there are\r
filepairs whose "original" side has the specified string and\r
whose "result" side does not. Such a filepair represents "the\r
string appeared in this changeset". It also checks for the\r
-opposite case that loses the specified string.</p>\r
-<p>When <tt>--pickaxe-all</tt> is not in effect, diffcore-pickaxe leaves\r
+opposite case that loses the specified string.</p></div>\r
+<div class="para"><p>When <tt>--pickaxe-all</tt> is not in effect, diffcore-pickaxe leaves\r
only such filepairs that touch the specified string in its\r
output. When <tt>--pickaxe-all</tt> is used, diffcore-pickaxe leaves all\r
filepairs intact if there is such a filepair, or makes the\r
output empty otherwise. The latter behaviour is designed to\r
make reviewing of the changes in the context of the whole\r
-changeset easier.</p>\r
+changeset easier.</p></div>\r
</div>\r
-<h2>diffcore-order: For Sorting the Output Based on Filenames</h2>\r
+<h2 id="_diffcore_order_for_sorting_the_output_based_on_filenames">diffcore-order: For Sorting the Output Based on Filenames</h2>\r
<div class="sectionbody">\r
-<p>This is used to reorder the filepairs according to the user's\r
+<div class="para"><p>This is used to reorder the filepairs according to the user's\r
(or project's) taste, and is controlled by the -O option to the\r
-<tt>git-diff-*</tt> commands.</p>\r
-<p>This takes a text file each of whose lines is a shell glob\r
+<em>git-diff-*</em> commands.</p></div>\r
+<div class="para"><p>This takes a text file each of whose lines is a shell glob\r
pattern. Filepairs that match a glob pattern on an earlier line\r
in the file are output before ones that match a later line, and\r
-filepairs that do not match any glob pattern are output last.</p>\r
-<p>As an example, a typical orderfile for the core git probably\r
-would look like this:</p>\r
+filepairs that do not match any glob pattern are output last.</p></div>\r
+<div class="para"><p>As an example, a typical orderfile for the core git probably\r
+would look like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>README\r
t</tt></pre>\r
</div></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-diff.html">git-diff(1)</a>,\r
+<div class="para"><p><a href="git-diff.html">git-diff(1)</a>,\r
<a href="git-diff-files.html">git-diff-files(1)</a>,\r
<a href="git-diff-index.html">git-diff-index(1)</a>,\r
<a href="git-diff-tree.html">git-diff-tree(1)</a>,\r
<a href="git-format-patch.html">git-format-patch(1)</a>,\r
<a href="git-log.html">git-log(1)</a>,\r
<a href="gitglossary.html">gitglossary(7)</a>,\r
-<a href="user-manual.html">The Git User's Manual</a></p>\r
+<a href="user-manual.html">The Git User's Manual</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite.</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:13 UTC\r
+Last updated 2008-07-06 05:17:12 UTC\r
</div>\r
</div>\r
</body>\r
SYNOPSIS
--------
-git diff *
+'git diff' *
DESCRIPTION
-----------
-The diff commands `git-diff-index`, `git-diff-files`, and `git-diff-tree`
+The diff commands 'git-diff-index', 'git-diff-files', and 'git-diff-tree'
can be told to manipulate differences they find in
-unconventional ways before showing `diff` output. The manipulation
+unconventional ways before showing 'diff' output. The manipulation
is collectively called "diffcore transformation". This short note
-describes what they are and how to use them to produce diff outputs
-that are easier to understand than the conventional kind.
+describes what they are and how to use them to produce 'diff' output
+that is easier to understand than the conventional kind.
The chain of operation
----------------------
-The `git-diff-{asterisk}` family works by first comparing two sets of
+The 'git-diff-{asterisk}' family works by first comparing two sets of
files:
- - `git-diff-index` compares contents of a "tree" object and the
+ - 'git-diff-index' compares contents of a "tree" object and the
working directory (when '\--cached' flag is not used) or a
"tree" object and the index file (when '\--cached' flag is
used);
- - `git-diff-files` compares contents of the index file and the
+ - 'git-diff-files' compares contents of the index file and the
working directory;
- - `git-diff-tree` compares contents of two "tree" objects;
+ - 'git-diff-tree' compares contents of two "tree" objects;
In all of these cases, the commands themselves compare
corresponding paths in the two sets of files. The result of
- diffcore-pickaxe
- diffcore-order
-These are applied in sequence. The set of filepairs `git-diff-{asterisk}`
+These are applied in sequence. The set of filepairs 'git-diff-{asterisk}'
commands find are used as the input to diffcore-pathspec, and
the output from diffcore-pathspec is used as the input to the
next transformation. The final result is then passed to the
output routine and generates either diff-raw format (see Output
-format sections of the manual for `git-diff-{asterisk}` commands) or
+format sections of the manual for 'git-diff-{asterisk}' commands) or
diff-patch format.
The first transformation in the chain is diffcore-pathspec, and
is controlled by giving the pathname parameters to the
-`git-diff-{asterisk}` commands on the command line. The pathspec is used
+'git-diff-{asterisk}' commands on the command line. The pathspec is used
to limit the world diff operates in. It removes the filepairs
outside the specified set of pathnames. E.g. If the input set
of filepairs included:
junkfile entry would be removed from the list because only "myfile"
is under consideration.
-Implementation note. For performance reasons, `git-diff-tree`
+Implementation note. For performance reasons, 'git-diff-tree'
uses the pathname parameters on the command line to cull set of
filepairs it feeds the diffcore mechanism itself, and does not
use diffcore-pathspec, but the end result is the same.
----------------------------------------------------
The second transformation in the chain is diffcore-break, and is
-controlled by the -B option to the `git-diff-{asterisk}` commands. This is
+controlled by the -B option to the 'git-diff-{asterisk}' commands. This is
used to detect a filepair that represents "complete rewrite" and
break such filepair into two filepairs that represent delete and
create. E.g. If the input contained this filepair:
This transformation is used to detect renames and copies, and is
controlled by the -M option (to detect renames) and the -C option
-(to detect copies as well) to the `git-diff-{asterisk}` commands. If the
+(to detect copies as well) to the 'git-diff-{asterisk}' commands. If the
input contained these filepairs:
------------------------------------------------
8/10 = 80%).
Note. When the "-C" option is used with `\--find-copies-harder`
-option, `git-diff-{asterisk}` commands feed unmodified filepairs to
+option, 'git-diff-{asterisk}' commands feed unmodified filepairs to
diffcore mechanism as well as modified ones. This lets the copy
detector consider unmodified files as copy source candidates at
the expense of making it slower. Without `\--find-copies-harder`,
-`git-diff-{asterisk}` commands can detect copies only if the file that was
+'git-diff-{asterisk}' commands can detect copies only if the file that was
copied happened to have been modified in the same changeset.
This transformation is used to find filepairs that represent
changes that touch a specified string, and is controlled by the
--S option and the `\--pickaxe-all` option to the `git-diff-{asterisk}`
+-S option and the `\--pickaxe-all` option to the 'git-diff-{asterisk}'
commands.
When diffcore-pickaxe is in use, it checks if there are
This is used to reorder the filepairs according to the user's
(or project's) taste, and is controlled by the -O option to the
-`git-diff-{asterisk}` commands.
+'git-diff-{asterisk}' commands.
This takes a text file each of whose lines is a shell glob
pattern. Filepairs that match a glob pattern on an earlier line
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>githooks(5)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>$GIT_DIR/hooks/*</p>\r
+<div class="para"><p>$GIT_DIR/hooks/*</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Hooks are little scripts you can place in <tt>$GIT_DIR/hooks</tt>\r
+<div class="para"><p>Hooks are little scripts you can place in <tt>$GIT_DIR/hooks</tt>\r
directory to trigger action at certain points. When\r
-<tt>git-init</tt> is run, a handful example hooks are copied in the\r
+<em>git-init</em> is run, a handful example hooks are copied in the\r
<tt>hooks</tt> directory of the new repository, but by default they are\r
all disabled. To enable a hook, rename it by removing its <tt>.sample</tt>\r
-suffix.</p>\r
-<p>This document describes the currently defined hooks.</p>\r
+suffix.</p></div>\r
+<div class="para"><p>This document describes the currently defined hooks.</p></div>\r
</div>\r
-<h2>applypatch-msg</h2>\r
+<h2 id="_applypatch_msg">applypatch-msg</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-am</tt> script. It takes a single\r
+<div class="para"><p>This hook is invoked by <em>git-am</em> script. It takes a single\r
parameter, the name of the file that holds the proposed commit\r
log message. Exiting with non-zero status causes\r
-<tt>git-am</tt> to abort before applying the patch.</p>\r
-<p>The hook is allowed to edit the message file in place, and can\r
+<em>git-am</em> to abort before applying the patch.</p></div>\r
+<div class="para"><p>The hook is allowed to edit the message file in place, and can\r
be used to normalize the message into some project standard\r
format (if the project has one). It can also be used to refuse\r
-the commit after inspecting the message file.</p>\r
-<p>The default <em>applypatch-msg</em> hook, when enabled, runs the\r
-<em>commit-msg</em> hook, if the latter is enabled.</p>\r
+the commit after inspecting the message file.</p></div>\r
+<div class="para"><p>The default <em>applypatch-msg</em> hook, when enabled, runs the\r
+<em>commit-msg</em> hook, if the latter is enabled.</p></div>\r
</div>\r
-<h2>pre-applypatch</h2>\r
+<h2 id="_pre_applypatch">pre-applypatch</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-am</tt>. It takes no parameter, and is\r
-invoked after the patch is applied, but before a commit is made.</p>\r
-<p>If it exits with non-zero status, then the working tree will not be\r
-committed after applying the patch.</p>\r
-<p>It can be used to inspect the current working tree and refuse to\r
-make a commit if it does not pass certain test.</p>\r
-<p>The default <em>pre-applypatch</em> hook, when enabled, runs the\r
-<em>pre-commit</em> hook, if the latter is enabled.</p>\r
+<div class="para"><p>This hook is invoked by <em>git-am</em>. It takes no parameter, and is\r
+invoked after the patch is applied, but before a commit is made.</p></div>\r
+<div class="para"><p>If it exits with non-zero status, then the working tree will not be\r
+committed after applying the patch.</p></div>\r
+<div class="para"><p>It can be used to inspect the current working tree and refuse to\r
+make a commit if it does not pass certain test.</p></div>\r
+<div class="para"><p>The default <em>pre-applypatch</em> hook, when enabled, runs the\r
+<em>pre-commit</em> hook, if the latter is enabled.</p></div>\r
</div>\r
-<h2>post-applypatch</h2>\r
+<h2 id="_post_applypatch">post-applypatch</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-am</tt>. It takes no parameter,\r
-and is invoked after the patch is applied and a commit is made.</p>\r
-<p>This hook is meant primarily for notification, and cannot affect\r
-the outcome of <tt>git-am</tt>.</p>\r
+<div class="para"><p>This hook is invoked by <em>git-am</em>. It takes no parameter,\r
+and is invoked after the patch is applied and a commit is made.</p></div>\r
+<div class="para"><p>This hook is meant primarily for notification, and cannot affect\r
+the outcome of <em>git-am</em>.</p></div>\r
</div>\r
-<h2>pre-commit</h2>\r
+<h2 id="_pre_commit">pre-commit</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-commit</tt>, and can be bypassed\r
+<div class="para"><p>This hook is invoked by <em>git-commit</em>, and can be bypassed\r
with <tt>--no-verify</tt> option. It takes no parameter, and is\r
invoked before obtaining the proposed commit log message and\r
making a commit. Exiting with non-zero status from this script\r
-causes the <tt>git-commit</tt> to abort.</p>\r
-<p>The default <em>pre-commit</em> hook, when enabled, catches introduction\r
+causes the <em>git-commit</em> to abort.</p></div>\r
+<div class="para"><p>The default <em>pre-commit</em> hook, when enabled, catches introduction\r
of lines with trailing whitespaces and aborts the commit when\r
-such a line is found.</p>\r
-<p>All the <tt>git-commit</tt> hooks are invoked with the environment\r
+such a line is found.</p></div>\r
+<div class="para"><p>All the <em>git-commit</em> hooks are invoked with the environment\r
variable <tt>GIT_EDITOR=:</tt> if the command will not bring up an editor\r
-to modify the commit message.</p>\r
+to modify the commit message.</p></div>\r
</div>\r
-<h2>prepare-commit-msg</h2>\r
+<h2 id="_prepare_commit_msg">prepare-commit-msg</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-commit</tt> right after preparing the\r
-default log message, and before the editor is started.</p>\r
-<p>It takes one to three parameters. The first is the name of the file\r
+<div class="para"><p>This hook is invoked by <em>git-commit</em> right after preparing the\r
+default log message, and before the editor is started.</p></div>\r
+<div class="para"><p>It takes one to three parameters. The first is the name of the file\r
that the commit log message. The second is the source of the commit\r
message, and can be: <tt>message</tt> (if a <tt>\-m</tt> or <tt>\-F</tt> option was\r
given); <tt>template</tt> (if a <tt>\-t</tt> option was given or the\r
configuration option <tt>commit.template</tt> is set); <tt>merge</tt> (if the\r
commit is a merge or a <tt>.git/MERGE_MSG</tt> file exists); <tt>squash</tt>\r
(if a <tt>.git/SQUASH_MSG</tt> file exists); or <tt>commit</tt>, followed by\r
-a commit SHA1 (if a <tt>\-c</tt>, <tt>\-C</tt> or <tt>--amend</tt> option was given).</p>\r
-<p>If the exit status is non-zero, <tt>git-commit</tt> will abort.</p>\r
-<p>The purpose of the hook is to edit the message file in place, and\r
+a commit SHA1 (if a <tt>\-c</tt>, <tt>\-C</tt> or <tt>--amend</tt> option was given).</p></div>\r
+<div class="para"><p>If the exit status is non-zero, <em>git-commit</em> will abort.</p></div>\r
+<div class="para"><p>The purpose of the hook is to edit the message file in place, and\r
it is not suppressed by the <tt>--no-verify</tt> option. A non-zero exit\r
means a failure of the hook and aborts the commit. It should not\r
-be used as replacement for pre-commit hook.</p>\r
-<p>The sample <tt>prepare-commit-msg</tt> hook that comes with git comments\r
-out the <tt>Conflicts:</tt> part of a merge's commit message.</p>\r
+be used as replacement for pre-commit hook.</p></div>\r
+<div class="para"><p>The sample <tt>prepare-commit-msg</tt> hook that comes with git comments\r
+out the <tt>Conflicts:</tt> part of a merge's commit message.</p></div>\r
</div>\r
-<h2>commit-msg</h2>\r
+<h2 id="_commit_msg">commit-msg</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-commit</tt>, and can be bypassed\r
+<div class="para"><p>This hook is invoked by <em>git-commit</em>, and can be bypassed\r
with <tt>--no-verify</tt> option. It takes a single parameter, the\r
name of the file that holds the proposed commit log message.\r
-Exiting with non-zero status causes the <tt>git-commit</tt> to\r
-abort.</p>\r
-<p>The hook is allowed to edit the message file in place, and can\r
+Exiting with non-zero status causes the <em>git-commit</em> to\r
+abort.</p></div>\r
+<div class="para"><p>The hook is allowed to edit the message file in place, and can\r
be used to normalize the message into some project standard\r
format (if the project has one). It can also be used to refuse\r
-the commit after inspecting the message file.</p>\r
-<p>The default <em>commit-msg</em> hook, when enabled, detects duplicate\r
-"Signed-off-by" lines, and aborts the commit if one is found.</p>\r
+the commit after inspecting the message file.</p></div>\r
+<div class="para"><p>The default <em>commit-msg</em> hook, when enabled, detects duplicate\r
+"Signed-off-by" lines, and aborts the commit if one is found.</p></div>\r
</div>\r
-<h2>post-commit</h2>\r
+<h2 id="_post_commit">post-commit</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-commit</tt>. It takes no\r
-parameter, and is invoked after a commit is made.</p>\r
-<p>This hook is meant primarily for notification, and cannot affect\r
-the outcome of <tt>git-commit</tt>.</p>\r
+<div class="para"><p>This hook is invoked by <em>git-commit</em>. It takes no\r
+parameter, and is invoked after a commit is made.</p></div>\r
+<div class="para"><p>This hook is meant primarily for notification, and cannot affect\r
+the outcome of <em>git-commit</em>.</p></div>\r
</div>\r
-<h2>post-checkout</h2>\r
+<h2 id="_post_checkout">post-checkout</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked when a <tt>git-checkout</tt> is run after having updated the\r
+<div class="para"><p>This hook is invoked when a <em>git-checkout</em> is run after having updated the\r
worktree. The hook is given three parameters: the ref of the previous HEAD,\r
the ref of the new HEAD (which may or may not have changed), and a flag\r
indicating whether the checkout was a branch checkout (changing branches,\r
flag=1) or a file checkout (retrieving a file from the index, flag=0).\r
-This hook cannot affect the outcome of <tt>git-checkout</tt>.</p>\r
-<p>This hook can be used to perform repository validity checks, auto-display\r
+This hook cannot affect the outcome of <em>git-checkout</em>.</p></div>\r
+<div class="para"><p>This hook can be used to perform repository validity checks, auto-display\r
differences from the previous HEAD if different, or set working dir metadata\r
-properties.</p>\r
+properties.</p></div>\r
</div>\r
-<h2>post-merge</h2>\r
+<h2 id="_post_merge">post-merge</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-merge</tt>, which happens when a <tt>git-pull</tt>\r
+<div class="para"><p>This hook is invoked by <em>git-merge</em>, which happens when a <em>git-pull</em>\r
is done on a local repository. The hook takes a single parameter, a status\r
flag specifying whether or not the merge being done was a squash merge.\r
-This hook cannot affect the outcome of <tt>git-merge</tt> and is not executed,\r
-if the merge failed due to conflicts.</p>\r
-<p>This hook can be used in conjunction with a corresponding pre-commit hook to\r
+This hook cannot affect the outcome of <em>git-merge</em> and is not executed,\r
+if the merge failed due to conflicts.</p></div>\r
+<div class="para"><p>This hook can be used in conjunction with a corresponding pre-commit hook to\r
save and restore any form of metadata associated with the working tree\r
(eg: permissions/ownership, ACLS, etc). See contrib/hooks/setgitperms.perl\r
-for an example of how to do this.</p>\r
+for an example of how to do this.</p></div>\r
</div>\r
-<h2><a id="pre-receive"></a>pre-receive</h2>\r
+<h2 id="pre-receive">pre-receive</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-receive-pack</tt> on the remote repository,\r
-which happens when a <tt>git-push</tt> is done on a local repository.\r
+<div class="para"><p>This hook is invoked by <em>git-receive-pack</em> on the remote repository,\r
+which happens when a <em>git-push</em> is done on a local repository.\r
Just before starting to update refs on the remote repository, the\r
pre-receive hook is invoked. Its exit status determines the success\r
-or failure of the update.</p>\r
-<p>This hook executes once for the receive operation. It takes no\r
+or failure of the update.</p></div>\r
+<div class="para"><p>This hook executes once for the receive operation. It takes no\r
arguments, but for each ref to be updated it receives on standard\r
-input a line of the format:</p>\r
+input a line of the format:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt><old-value> SP <new-value> SP <ref-name> LF</tt></pre>\r
</div></div>\r
-<p>where <tt><old-value></tt> is the old object name stored in the ref,\r
+<div class="para"><p>where <tt><old-value></tt> is the old object name stored in the ref,\r
<tt><new-value></tt> is the new object name to be stored in the ref and\r
<tt><ref-name></tt> is the full name of the ref.\r
-When creating a new ref, <tt><old-value></tt> is 40 <tt>0</tt>.</p>\r
-<p>If the hook exits with non-zero status, none of the refs will be\r
+When creating a new ref, <tt><old-value></tt> is 40 <tt>0</tt>.</p></div>\r
+<div class="para"><p>If the hook exits with non-zero status, none of the refs will be\r
updated. If the hook exits with zero, updating of individual refs can\r
-still be prevented by the <a href="#update"><em>update</em></a> hook.</p>\r
-<p>Both standard output and standard error output are forwarded to\r
-<tt>git-send-pack</tt> on the other end, so you can simply <tt>echo</tt> messages\r
-for the user.</p>\r
+still be prevented by the <a href="#update"><em>update</em></a> hook.</p></div>\r
+<div class="para"><p>Both standard output and standard error output are forwarded to\r
+<em>git-send-pack</em> on the other end, so you can simply <tt>echo</tt> messages\r
+for the user.</p></div>\r
</div>\r
-<h2><a id="update"></a>update</h2>\r
+<h2 id="update">update</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-receive-pack</tt> on the remote repository,\r
-which happens when a <tt>git-push</tt> is done on a local repository.\r
+<div class="para"><p>This hook is invoked by <em>git-receive-pack</em> on the remote repository,\r
+which happens when a <em>git-push</em> is done on a local repository.\r
Just before updating the ref on the remote repository, the update hook\r
is invoked. Its exit status determines the success or failure of\r
-the ref update.</p>\r
-<p>The hook executes once for each ref to be updated, and takes\r
-three parameters:</p>\r
-<ul>\r
+the ref update.</p></div>\r
+<div class="para"><p>The hook executes once for each ref to be updated, and takes\r
+three parameters:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
the name of the ref being updated,\r
and the new objectname to be stored in the ref.\r
</p>\r
</li>\r
-</ul>\r
-<p>A zero exit from the update hook allows the ref to be updated.\r
-Exiting with a non-zero status prevents <tt>git-receive-pack</tt>\r
-from updating that ref.</p>\r
-<p>This hook can be used to prevent <em>forced</em> update on certain refs by\r
+</ul></div>\r
+<div class="para"><p>A zero exit from the update hook allows the ref to be updated.\r
+Exiting with a non-zero status prevents <em>git-receive-pack</em>\r
+from updating that ref.</p></div>\r
+<div class="para"><p>This hook can be used to prevent <em>forced</em> update on certain refs by\r
making sure that the object name is a commit object that is a\r
descendant of the commit object named by the old object name.\r
-That is, to enforce a "fast forward only" policy.</p>\r
-<p>It could also be used to log the old..new status. However, it\r
+That is, to enforce a "fast forward only" policy.</p></div>\r
+<div class="para"><p>It could also be used to log the old..new status. However, it\r
does not know the entire set of branches, so it would end up\r
firing one e-mail per ref when used naively, though. The\r
-<a href="#post-receive"><em>post-receive</em></a> hook is more suited to that.</p>\r
-<p>Another use suggested on the mailing list is to use this hook to\r
+<a href="#post-receive"><em>post-receive</em></a> hook is more suited to that.</p></div>\r
+<div class="para"><p>Another use suggested on the mailing list is to use this hook to\r
implement access control which is finer grained than the one\r
-based on filesystem group.</p>\r
-<p>Both standard output and standard error output are forwarded to\r
-<tt>git-send-pack</tt> on the other end, so you can simply <tt>echo</tt> messages\r
-for the user.</p>\r
-<p>The default <em>update</em> hook, when enabled--and with\r
+based on filesystem group.</p></div>\r
+<div class="para"><p>Both standard output and standard error output are forwarded to\r
+<em>git-send-pack</em> on the other end, so you can simply <tt>echo</tt> messages\r
+for the user.</p></div>\r
+<div class="para"><p>The default <em>update</em> hook, when enabled--and with\r
<tt>hooks.allowunannotated</tt> config option turned on--prevents\r
-unannotated tags to be pushed.</p>\r
+unannotated tags to be pushed.</p></div>\r
</div>\r
-<h2><a id="post-receive"></a>post-receive</h2>\r
+<h2 id="post-receive">post-receive</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-receive-pack</tt> on the remote repository,\r
-which happens when a <tt>git-push</tt> is done on a local repository.\r
+<div class="para"><p>This hook is invoked by <em>git-receive-pack</em> on the remote repository,\r
+which happens when a <em>git-push</em> is done on a local repository.\r
It executes on the remote repository once after all the refs have\r
-been updated.</p>\r
-<p>This hook executes once for the receive operation. It takes no\r
+been updated.</p></div>\r
+<div class="para"><p>This hook executes once for the receive operation. It takes no\r
arguments, but gets the same information as the\r
<a href="#pre-receive"><em>pre-receive</em></a>\r
-hook does on its standard input.</p>\r
-<p>This hook does not affect the outcome of <tt>git-receive-pack</tt>, as it\r
-is called after the real work is done.</p>\r
-<p>This supersedes the <a href="#post-update"><em>post-update</em></a> hook in that it gets\r
+hook does on its standard input.</p></div>\r
+<div class="para"><p>This hook does not affect the outcome of <em>git-receive-pack</em>, as it\r
+is called after the real work is done.</p></div>\r
+<div class="para"><p>This supersedes the <a href="#post-update"><em>post-update</em></a> hook in that it gets\r
both old and new values of all the refs in addition to their\r
-names.</p>\r
-<p>Both standard output and standard error output are forwarded to\r
-<tt>git-send-pack</tt> on the other end, so you can simply <tt>echo</tt> messages\r
-for the user.</p>\r
-<p>The default <em>post-receive</em> hook is empty, but there is\r
+names.</p></div>\r
+<div class="para"><p>Both standard output and standard error output are forwarded to\r
+<em>git-send-pack</em> on the other end, so you can simply <tt>echo</tt> messages\r
+for the user.</p></div>\r
+<div class="para"><p>The default <em>post-receive</em> hook is empty, but there is\r
a sample script <tt>post-receive-email</tt> provided in the <tt>contrib/hooks</tt>\r
directory in git distribution, which implements sending commit\r
-emails.</p>\r
+emails.</p></div>\r
</div>\r
-<h2><a id="post-update"></a>post-update</h2>\r
+<h2 id="post-update">post-update</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-receive-pack</tt> on the remote repository,\r
-which happens when a <tt>git-push</tt> is done on a local repository.\r
+<div class="para"><p>This hook is invoked by <em>git-receive-pack</em> on the remote repository,\r
+which happens when a <em>git-push</em> is done on a local repository.\r
It executes on the remote repository once after all the refs have\r
-been updated.</p>\r
-<p>It takes a variable number of parameters, each of which is the\r
-name of ref that was actually updated.</p>\r
-<p>This hook is meant primarily for notification, and cannot affect\r
-the outcome of <tt>git-receive-pack</tt>.</p>\r
-<p>The <em>post-update</em> hook can tell what are the heads that were pushed,\r
+been updated.</p></div>\r
+<div class="para"><p>It takes a variable number of parameters, each of which is the\r
+name of ref that was actually updated.</p></div>\r
+<div class="para"><p>This hook is meant primarily for notification, and cannot affect\r
+the outcome of <em>git-receive-pack</em>.</p></div>\r
+<div class="para"><p>The <em>post-update</em> hook can tell what are the heads that were pushed,\r
but it does not know what their original and updated values are,\r
so it is a poor place to do log old..new. The\r
<a href="#post-receive"><em>post-receive</em></a> hook does get both original and\r
updated values of the refs. You might consider it instead if you need\r
-them.</p>\r
-<p>When enabled, the default <em>post-update</em> hook runs\r
-<tt>git-update-server-info</tt> to keep the information used by dumb\r
+them.</p></div>\r
+<div class="para"><p>When enabled, the default <em>post-update</em> hook runs\r
+<em>git-update-server-info</em> to keep the information used by dumb\r
transports (e.g., HTTP) up-to-date. If you are publishing\r
a git repository that is accessible via HTTP, you should\r
-probably enable this hook.</p>\r
-<p>Both standard output and standard error output are forwarded to\r
-<tt>git-send-pack</tt> on the other end, so you can simply <tt>echo</tt> messages\r
-for the user.</p>\r
+probably enable this hook.</p></div>\r
+<div class="para"><p>Both standard output and standard error output are forwarded to\r
+<em>git-send-pack</em> on the other end, so you can simply <tt>echo</tt> messages\r
+for the user.</p></div>\r
</div>\r
-<h2>pre-auto-gc</h2>\r
+<h2 id="_pre_auto_gc">pre-auto-gc</h2>\r
<div class="sectionbody">\r
-<p>This hook is invoked by <tt>git-gc --auto</tt>. It takes no parameter, and\r
-exiting with non-zero status from this script causes the <tt>git-gc --auto</tt>\r
-to abort.</p>\r
+<div class="para"><p>This hook is invoked by <em>git-gc --auto</em>. It takes no parameter, and\r
+exiting with non-zero status from this script causes the <em>git-gc --auto</em>\r
+to abort.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:10 UTC\r
+Last updated 2008-07-06 05:17:10 UTC\r
</div>\r
</div>\r
</body>\r
Hooks are little scripts you can place in `$GIT_DIR/hooks`
directory to trigger action at certain points. When
-`git-init` is run, a handful example hooks are copied in the
+'git-init' is run, a handful example hooks are copied in the
`hooks` directory of the new repository, but by default they are
all disabled. To enable a hook, rename it by removing its `.sample`
suffix.
applypatch-msg
--------------
-This hook is invoked by `git-am` script. It takes a single
+This hook is invoked by 'git-am' script. It takes a single
parameter, the name of the file that holds the proposed commit
log message. Exiting with non-zero status causes
-`git-am` to abort before applying the patch.
+'git-am' to abort before applying the patch.
The hook is allowed to edit the message file in place, and can
be used to normalize the message into some project standard
pre-applypatch
--------------
-This hook is invoked by `git-am`. It takes no parameter, and is
+This hook is invoked by 'git-am'. It takes no parameter, and is
invoked after the patch is applied, but before a commit is made.
If it exits with non-zero status, then the working tree will not be
post-applypatch
---------------
-This hook is invoked by `git-am`. It takes no parameter,
+This hook is invoked by 'git-am'. It takes no parameter,
and is invoked after the patch is applied and a commit is made.
This hook is meant primarily for notification, and cannot affect
-the outcome of `git-am`.
+the outcome of 'git-am'.
pre-commit
----------
-This hook is invoked by `git-commit`, and can be bypassed
+This hook is invoked by 'git-commit', and can be bypassed
with `\--no-verify` option. It takes no parameter, and is
invoked before obtaining the proposed commit log message and
making a commit. Exiting with non-zero status from this script
-causes the `git-commit` to abort.
+causes the 'git-commit' to abort.
The default 'pre-commit' hook, when enabled, catches introduction
of lines with trailing whitespaces and aborts the commit when
such a line is found.
-All the `git-commit` hooks are invoked with the environment
+All the 'git-commit' hooks are invoked with the environment
variable `GIT_EDITOR=:` if the command will not bring up an editor
to modify the commit message.
prepare-commit-msg
------------------
-This hook is invoked by `git-commit` right after preparing the
+This hook is invoked by 'git-commit' right after preparing the
default log message, and before the editor is started.
It takes one to three parameters. The first is the name of the file
(if a `.git/SQUASH_MSG` file exists); or `commit`, followed by
a commit SHA1 (if a `\-c`, `\-C` or `\--amend` option was given).
-If the exit status is non-zero, `git-commit` will abort.
+If the exit status is non-zero, 'git-commit' will abort.
The purpose of the hook is to edit the message file in place, and
it is not suppressed by the `\--no-verify` option. A non-zero exit
commit-msg
----------
-This hook is invoked by `git-commit`, and can be bypassed
+This hook is invoked by 'git-commit', and can be bypassed
with `\--no-verify` option. It takes a single parameter, the
name of the file that holds the proposed commit log message.
-Exiting with non-zero status causes the `git-commit` to
+Exiting with non-zero status causes the 'git-commit' to
abort.
The hook is allowed to edit the message file in place, and can
post-commit
-----------
-This hook is invoked by `git-commit`. It takes no
+This hook is invoked by 'git-commit'. It takes no
parameter, and is invoked after a commit is made.
This hook is meant primarily for notification, and cannot affect
-the outcome of `git-commit`.
+the outcome of 'git-commit'.
post-checkout
-----------
-This hook is invoked when a `git-checkout` is run after having updated the
+This hook is invoked when a 'git-checkout' is run after having updated the
worktree. The hook is given three parameters: the ref of the previous HEAD,
the ref of the new HEAD (which may or may not have changed), and a flag
indicating whether the checkout was a branch checkout (changing branches,
flag=1) or a file checkout (retrieving a file from the index, flag=0).
-This hook cannot affect the outcome of `git-checkout`.
+This hook cannot affect the outcome of 'git-checkout'.
This hook can be used to perform repository validity checks, auto-display
differences from the previous HEAD if different, or set working dir metadata
post-merge
-----------
-This hook is invoked by `git-merge`, which happens when a `git-pull`
+This hook is invoked by 'git-merge', which happens when a 'git-pull'
is done on a local repository. The hook takes a single parameter, a status
flag specifying whether or not the merge being done was a squash merge.
-This hook cannot affect the outcome of `git-merge` and is not executed,
+This hook cannot affect the outcome of 'git-merge' and is not executed,
if the merge failed due to conflicts.
This hook can be used in conjunction with a corresponding pre-commit hook to
pre-receive
-----------
-This hook is invoked by `git-receive-pack` on the remote repository,
-which happens when a `git-push` is done on a local repository.
+This hook is invoked by 'git-receive-pack' on the remote repository,
+which happens when a 'git-push' is done on a local repository.
Just before starting to update refs on the remote repository, the
pre-receive hook is invoked. Its exit status determines the success
or failure of the update.
still be prevented by the <<update,'update'>> hook.
Both standard output and standard error output are forwarded to
-`git-send-pack` on the other end, so you can simply `echo` messages
+'git-send-pack' on the other end, so you can simply `echo` messages
for the user.
[[update]]
update
------
-This hook is invoked by `git-receive-pack` on the remote repository,
-which happens when a `git-push` is done on a local repository.
+This hook is invoked by 'git-receive-pack' on the remote repository,
+which happens when a 'git-push' is done on a local repository.
Just before updating the ref on the remote repository, the update hook
is invoked. Its exit status determines the success or failure of
the ref update.
- and the new objectname to be stored in the ref.
A zero exit from the update hook allows the ref to be updated.
-Exiting with a non-zero status prevents `git-receive-pack`
+Exiting with a non-zero status prevents 'git-receive-pack'
from updating that ref.
This hook can be used to prevent 'forced' update on certain refs by
based on filesystem group.
Both standard output and standard error output are forwarded to
-`git-send-pack` on the other end, so you can simply `echo` messages
+'git-send-pack' on the other end, so you can simply `echo` messages
for the user.
The default 'update' hook, when enabled--and with
post-receive
------------
-This hook is invoked by `git-receive-pack` on the remote repository,
-which happens when a `git-push` is done on a local repository.
+This hook is invoked by 'git-receive-pack' on the remote repository,
+which happens when a 'git-push' is done on a local repository.
It executes on the remote repository once after all the refs have
been updated.
<<pre-receive,'pre-receive'>>
hook does on its standard input.
-This hook does not affect the outcome of `git-receive-pack`, as it
+This hook does not affect the outcome of 'git-receive-pack', as it
is called after the real work is done.
This supersedes the <<post-update,'post-update'>> hook in that it gets
names.
Both standard output and standard error output are forwarded to
-`git-send-pack` on the other end, so you can simply `echo` messages
+'git-send-pack' on the other end, so you can simply `echo` messages
for the user.
The default 'post-receive' hook is empty, but there is
post-update
-----------
-This hook is invoked by `git-receive-pack` on the remote repository,
-which happens when a `git-push` is done on a local repository.
+This hook is invoked by 'git-receive-pack' on the remote repository,
+which happens when a 'git-push' is done on a local repository.
It executes on the remote repository once after all the refs have
been updated.
name of ref that was actually updated.
This hook is meant primarily for notification, and cannot affect
-the outcome of `git-receive-pack`.
+the outcome of 'git-receive-pack'.
The 'post-update' hook can tell what are the heads that were pushed,
but it does not know what their original and updated values are,
them.
When enabled, the default 'post-update' hook runs
-`git-update-server-info` to keep the information used by dumb
+'git-update-server-info' to keep the information used by dumb
transports (e.g., HTTP) up-to-date. If you are publishing
a git repository that is accessible via HTTP, you should
probably enable this hook.
Both standard output and standard error output are forwarded to
-`git-send-pack` on the other end, so you can simply `echo` messages
+'git-send-pack' on the other end, so you can simply `echo` messages
for the user.
pre-auto-gc
-----------
-This hook is invoked by `git-gc --auto`. It takes no parameter, and
-exiting with non-zero status from this script causes the `git-gc --auto`
+This hook is invoked by 'git-gc --auto'. It takes no parameter, and
+exiting with non-zero status from this script causes the 'git-gc --auto'
to abort.
GIT
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gitignore(5)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>$GIT_DIR/info/exclude, .gitignore</p>\r
+<div class="para"><p>$GIT_DIR/info/exclude, .gitignore</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>A <tt>gitignore</tt> file specifies intentionally untracked files that\r
+<div class="para"><p>A <tt>gitignore</tt> file specifies intentionally untracked files that\r
git should ignore. Each line in a <tt>gitignore</tt> file specifies a\r
-pattern.</p>\r
-<p>When deciding whether to ignore a path, git normally checks\r
+pattern.</p></div>\r
+<div class="para"><p>When deciding whether to ignore a path, git normally checks\r
<tt>gitignore</tt> patterns from multiple sources, with the following\r
order of precedence, from highest to lowest (within one level of\r
-precedence, the last matching pattern decides the outcome):</p>\r
-<ul>\r
+precedence, the last matching pattern decides the outcome):</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
Patterns read from the command line for those commands that support\r
variable <em>core.excludesfile</em>.\r
</p>\r
</li>\r
-</ul>\r
-<p>Which file to place a pattern in depends on how the pattern is meant to\r
+</ul></div>\r
+<div class="para"><p>Which file to place a pattern in depends on how the pattern is meant to\r
be used. Patterns which should be version-controlled and distributed to\r
other repositories via clone (i.e., files that all developers will want\r
to ignore) should go into a <tt>.gitignore</tt> file. Patterns which are\r
the <tt>$GIT_DIR/info/exclude</tt> file. Patterns which a user wants git to\r
ignore in all situations (e.g., backup or temporary files generated by\r
the user's editor of choice) generally go into a file specified by\r
-<tt>core.excludesfile</tt> in the user's <tt>~/.gitconfig</tt>.</p>\r
-<p>The underlying git plumbing tools, such as\r
-<tt>git-ls-files</tt> and <tt>git-read-tree</tt>, read\r
+<tt>core.excludesfile</tt> in the user's <tt>~/.gitconfig</tt>.</p></div>\r
+<div class="para"><p>The underlying git plumbing tools, such as\r
+<em>git-ls-files</em> and <em>git-read-tree</em>, read\r
<tt>gitignore</tt> patterns specified by command-line options, or from\r
files specified by command-line options. Higher-level git\r
-tools, such as <tt>git-status</tt> and <tt>git-add</tt>,\r
-use patterns from the sources specified above.</p>\r
-<p>Patterns have the following format:</p>\r
-<ul>\r
+tools, such as <em>git-status</em> and <em>git-add</em>,\r
+use patterns from the sources specified above.</p></div>\r
+<div class="para"><p>Patterns have the following format:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
A blank line matches no files, so it can serve as a separator\r
"cat-file.c" but not "mozilla-sha1/sha1.c".\r
</p>\r
</li>\r
-</ul>\r
-<p>An example:</p>\r
+</ul></div>\r
+<div class="para"><p>An example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ git status\r
# Documentation/foo.html\r
[...]</tt></pre>\r
</div></div>\r
-<p>Another example:</p>\r
+<div class="para"><p>Another example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> $ cat .gitignore\r
arch/foo/kernel/vmlinux.lds.S\r
$ echo '!/vmlinux*' >arch/foo/kernel/.gitignore</tt></pre>\r
</div></div>\r
-<p>The second .gitignore prevents git from ignoring\r
-<tt>arch/foo/kernel/vmlinux.lds.S</tt>.</p>\r
+<div class="para"><p>The second .gitignore prevents git from ignoring\r
+<tt>arch/foo/kernel/vmlinux.lds.S</tt>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by David Greaves, Junio C Hamano, Josh Triplett,\r
-Frank Lichtenheld, and the git-list <git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by David Greaves, Junio C Hamano, Josh Triplett,\r
+Frank Lichtenheld, and the git-list <git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:10 UTC\r
+Last updated 2008-07-06 05:17:10 UTC\r
</div>\r
</div>\r
</body>\r
`core.excludesfile` in the user's `~/.gitconfig`.
The underlying git plumbing tools, such as
-`git-ls-files` and `git-read-tree`, read
+'git-ls-files' and 'git-read-tree', read
`gitignore` patterns specified by command-line options, or from
files specified by command-line options. Higher-level git
-tools, such as `git-status` and `git-add`,
+tools, such as 'git-status' and 'git-add',
use patterns from the sources specified above.
Patterns have the following format:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gitk(1)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>gitk</em> [<option>…] [<revs>] [--] [<path>…]</p>\r
+<div class="para"><p><em>gitk</em> [<option>…] [<revs>] [--] [<path>…]</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Displays changes in a repository or a selected set of commits. This includes\r
+<div class="para"><p>Displays changes in a repository or a selected set of commits. This includes\r
visualizing the commit graph, showing information related to each commit, and\r
-the files in the trees of each revision.</p>\r
-<p>Historically, gitk was the first repository browser. It's written in tcl/tk\r
+the files in the trees of each revision.</p></div>\r
+<div class="para"><p>Historically, gitk was the first repository browser. It's written in tcl/tk\r
and started off in a separate repository but was later merged into the main\r
-git repository.</p>\r
+git repository.</p></div>\r
</div>\r
-<h2>OPTIONS</h2>\r
+<h2 id="_options">OPTIONS</h2>\r
<div class="sectionbody">\r
-<p>To control which revisions to shown, the command takes options applicable to\r
-the <tt>git-rev-list</tt> command (see <a href="git-rev-list.html">git-rev-list(1)</a>).\r
+<div class="para"><p>To control which revisions to shown, the command takes options applicable to\r
+the <em>git-rev-list</em> command (see <a href="git-rev-list.html">git-rev-list(1)</a>).\r
This manual page describes only the most\r
-frequently used options.</p>\r
-<dl>\r
+frequently used options.</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
-n <number>\r
</dt>\r
from any preceding options.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Examples</h2>\r
+<h2 id="_examples">Examples</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
gitk v2.6.12.. include/scsi drivers/scsi\r
</dt>\r
looking for changes in the current branch look in all branches.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Files</h2>\r
+<h2 id="_files">Files</h2>\r
<div class="sectionbody">\r
-<p>Gitk creates the .gitk file in your $HOME directory to store preferences\r
-such as display options, font, and colors.</p>\r
+<div class="para"><p>Gitk creates the .gitk file in your $HOME directory to store preferences\r
+such as display options, font, and colors.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
<dt>\r
<em>qgit(1)</em>\r
</dt>\r
in C using Ncurses.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>Author</h2>\r
+<h2 id="_author">Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Paul Mackerras <paulus@samba.org>.</p>\r
+<div class="para"><p>Written by Paul Mackerras <paulus@samba.org>.</p></div>\r
</div>\r
-<h2>Documentation</h2>\r
+<h2 id="_documentation">Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Junio C Hamano, Jonas Fonseca, and the git-list\r
-<git@vger.kernel.org>.</p>\r
+<div class="para"><p>Documentation by Junio C Hamano, Jonas Fonseca, and the git-list\r
+<git@vger.kernel.org>.</p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:08 UTC\r
+Last updated 2008-07-06 05:17:08 UTC\r
</div>\r
</div>\r
</body>\r
OPTIONS
-------
To control which revisions to shown, the command takes options applicable to
-the `git-rev-list` command (see linkgit:git-rev-list[1]).
+the 'git-rev-list' command (see linkgit:git-rev-list[1]).
This manual page describes only the most
frequently used options.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gitrepository-layout(5)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>$GIT_DIR/*</p>\r
+<div class="para"><p>$GIT_DIR/*</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>You may find these things in your git repository (<tt>.git</tt>\r
+<div class="para"><p>You may find these things in your git repository (<tt>.git</tt>\r
directory for a repository associated with your working tree, or\r
<tt><project>.git</tt> directory for a public <em>bare</em> repository. It is\r
also possible to have a working tree where <tt>.git</tt> is a plain\r
ascii file containing <tt>gitdir: <path></tt>, i.e. the path to the\r
-real git repository).</p>\r
-<dl>\r
+real git repository).</p></div>\r
+<div class="vlist"><dl>\r
<dt>\r
objects\r
</dt>\r
found in it), but there are couple of ways to violate\r
it.\r
</p>\r
-<ol>\r
+<div class="olist"><ol>\r
<li>\r
<p>\r
You could populate the repository by running a commit walker\r
it borrows from.\r
</p>\r
</li>\r
-</ol>\r
+</ol></div>\r
</dd>\r
<dt>\r
objects/[0-9a-f][0-9a-f]\r
are available in this object store. Whenever a pack is\r
added or removed, <tt>git update-server-info</tt> should be run\r
to keep this file up-to-date if the repository is\r
- published for dumb transports. <tt>git-repack</tt> does this\r
+ published for dumb transports. <em>git-repack</em> does this\r
by default.\r
</p>\r
</dd>\r
<dd>\r
<p>\r
References are stored in subdirectories of this\r
- directory. The <tt>git-prune</tt> command knows to keep\r
+ directory. The <em>git-prune</em> command knows to keep\r
objects reachable from refs found in this directory and\r
its subdirectories.\r
</p>\r
a symbolic link instead of a symref that points at the current\r
branch.\r
</p>\r
-<p>HEAD can also record a specific commit directly, instead of\r
+<div class="para"><p>HEAD can also record a specific commit directly, instead of\r
being a symref to point at the current branch. Such a state\r
is often called <em>detached HEAD</em>, and almost all commands work\r
identically as normal. See <a href="git-checkout.html">git-checkout(1)</a> for\r
-details.</p>\r
+details.</p></div>\r
</dd>\r
<dt>\r
branches\r
<dd>\r
<p>\r
A slightly deprecated way to store shorthands to be used\r
- to specify URL to <tt>git-fetch</tt>, <tt>git-pull</tt> and <tt>git-push</tt>\r
+ to specify URL to <em>git-fetch</em>, <em>git-pull</em> and <em>git-push</em>\r
commands is to store a file in <tt>branches/<name></tt> and\r
give <em>name</em> to these commands in place of <em>repository</em>\r
argument.\r
<p>\r
Hooks are customization scripts used by various git\r
commands. A handful of sample hooks are installed when\r
- <tt>git-init</tt> is run, but all of them are disabled by\r
+ <em>git-init</em> is run, but all of them are disabled by\r
default. To enable, they need to be made executable.\r
Read <a href="githooks.html">githooks(5)</a> for more details about\r
each hook.\r
This file helps dumb transports discover what refs are\r
available in this repository. If the repository is\r
published for dumb transports, this file should be\r
- regenerated by <tt>git-update-server-info</tt> every time a tag\r
+ regenerated by <em>git-update-server-info</em> every time a tag\r
or branch is created or modified. This is normally done\r
from the <tt>hooks/update</tt> hook, which is run by the\r
- <tt>git-receive-pack</tt> command when you <tt>git-push</tt> into the\r
+ <em>git-receive-pack</em> command when you <em>git-push</em> into the\r
repository.\r
</p>\r
</dd>\r
<p>\r
This file, by convention among Porcelains, stores the\r
exclude pattern list. <tt>.gitignore</tt> is the per-directory\r
- ignore file. <tt>git-status</tt>, <tt>git-add</tt>, <tt>git-rm</tt> and\r
- <tt>git-clean</tt> look at it but the core git commands do not look\r
+ ignore file. <em>git-status</em>, <em>git-add</em>, <em>git-rm</em> and\r
+ <em>git-clean</em> look at it but the core git commands do not look\r
at it. See also: <a href="gitignore.html">gitignore(5)</a>.\r
</p>\r
</dd>\r
<p>\r
Stores shorthands to be used to give URL and default\r
refnames to interact with remote repository to\r
- <tt>git-fetch</tt>, <tt>git-pull</tt> and <tt>git-push</tt> commands.\r
+ <em>git-fetch</em>, <em>git-pull</em> and <em>git-push</em> commands.\r
</p>\r
</dd>\r
<dt>\r
option to <a href="git-clone.html">git-clone(1)</a> and <a href="git-fetch.html">git-fetch(1)</a>.\r
</p>\r
</dd>\r
-</dl>\r
+</dl></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-init.html">git-init(1)</a>,\r
+<div class="para"><p><a href="git-init.html">git-init(1)</a>,\r
<a href="git-clone.html">git-clone(1)</a>,\r
<a href="git-fetch.html">git-fetch(1)</a>,\r
<a href="git-pack-refs.html">git-pack-refs(1)</a>,\r
<a href="git-gc.html">git-gc(1)</a>,\r
<a href="git-checkout.html">git-checkout(1)</a>,\r
<a href="gitglossary.html">gitglossary(7)</a>,\r
-<a href="user-manual.html">The Git User's Manual</a></p>\r
+<a href="user-manual.html">The Git User's Manual</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite.</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:10 UTC\r
+Last updated 2008-07-06 05:17:10 UTC\r
</div>\r
</div>\r
</body>\r
are available in this object store. Whenever a pack is
added or removed, `git update-server-info` should be run
to keep this file up-to-date if the repository is
- published for dumb transports. `git-repack` does this
+ published for dumb transports. 'git-repack' does this
by default.
objects/info/alternates::
refs::
References are stored in subdirectories of this
- directory. The `git-prune` command knows to keep
+ directory. The 'git-prune' command knows to keep
objects reachable from refs found in this directory and
its subdirectories.
branches::
A slightly deprecated way to store shorthands to be used
- to specify URL to `git-fetch`, `git-pull` and `git-push`
+ to specify URL to 'git-fetch', 'git-pull' and 'git-push'
commands is to store a file in `branches/<name>` and
give 'name' to these commands in place of 'repository'
argument.
hooks::
Hooks are customization scripts used by various git
commands. A handful of sample hooks are installed when
- `git-init` is run, but all of them are disabled by
+ 'git-init' is run, but all of them are disabled by
default. To enable, they need to be made executable.
Read linkgit:githooks[5] for more details about
each hook.
This file helps dumb transports discover what refs are
available in this repository. If the repository is
published for dumb transports, this file should be
- regenerated by `git-update-server-info` every time a tag
+ regenerated by 'git-update-server-info' every time a tag
or branch is created or modified. This is normally done
from the `hooks/update` hook, which is run by the
- `git-receive-pack` command when you `git-push` into the
+ 'git-receive-pack' command when you 'git-push' into the
repository.
info/grafts::
info/exclude::
This file, by convention among Porcelains, stores the
exclude pattern list. `.gitignore` is the per-directory
- ignore file. `git-status`, `git-add`, `git-rm` and
- `git-clean` look at it but the core git commands do not look
+ ignore file. 'git-status', 'git-add', 'git-rm' and
+ 'git-clean' look at it but the core git commands do not look
at it. See also: linkgit:gitignore[5].
remotes::
Stores shorthands to be used to give URL and default
refnames to interact with remote repository to
- `git-fetch`, `git-pull` and `git-push` commands.
+ 'git-fetch', 'git-pull' and 'git-push' commands.
logs::
Records of changes made to refs are stored in this
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gittutorial-2(7)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>git *</p>\r
+<div class="para"><p>git *</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>You should work through <a href="gittutorial.html">gittutorial(7)</a> before reading this tutorial.</p>\r
-<p>The goal of this tutorial is to introduce two fundamental pieces of\r
+<div class="para"><p>You should work through <a href="gittutorial.html">gittutorial(7)</a> before reading this tutorial.</p></div>\r
+<div class="para"><p>The goal of this tutorial is to introduce two fundamental pieces of\r
git's architecture--the object database and the index file--and to\r
provide the reader with everything necessary to understand the rest\r
-of the git documentation.</p>\r
+of the git documentation.</p></div>\r
</div>\r
-<h2>The git object database</h2>\r
+<h2 id="_the_git_object_database">The git object database</h2>\r
<div class="sectionbody">\r
-<p>Let's start a new project and create a small amount of history:</p>\r
+<div class="para"><p>Let's start a new project and create a small amount of history:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ mkdir test-project\r
$ git commit -a -m "add emphasis"\r
Created commit c4d59f390b9cfd4318117afde11d601c1085f241</tt></pre>\r
</div></div>\r
-<p>What are the 40 digits of hex that git responded to the commit with?</p>\r
-<p>We saw in part one of the tutorial that commits have names like this.\r
+<div class="para"><p>What are the 40 digits of hex that git responded to the commit with?</p></div>\r
+<div class="para"><p>We saw in part one of the tutorial that commits have names like this.\r
It turns out that every object in the git history is stored under\r
such a 40-digit hex name. That name is the SHA1 hash of the object's\r
contents; among other things, this ensures that git will never store\r
the same data twice (since identical data is given an identical SHA1\r
name), and that the contents of a git object will never change (since\r
-that would change the object's name as well).</p>\r
-<p>It is expected that the content of the commit object you created while\r
+that would change the object's name as well).</p></div>\r
+<div class="para"><p>It is expected that the content of the commit object you created while\r
following the example above generates a different SHA1 hash than\r
the one shown above because the commit object records the time when\r
-it was created and the name of the person performing the commit.</p>\r
-<p>We can ask git about this particular object with the <tt>cat-file</tt>\r
+it was created and the name of the person performing the commit.</p></div>\r
+<div class="para"><p>We can ask git about this particular object with the <tt>cat-file</tt>\r
command. Don't copy the 40 hex digits from this example but use those\r
from your own version. Note that you can shorten it to only a few\r
-characters to save yourself typing all 40 hex digits:</p>\r
+characters to save yourself typing all 40 hex digits:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cat-file -t 54196cc2\r
\r
initial commit</tt></pre>\r
</div></div>\r
-<p>A tree can refer to one or more "blob" objects, each corresponding to\r
+<div class="para"><p>A tree can refer to one or more "blob" objects, each corresponding to\r
a file. In addition, a tree can also refer to other tree objects,\r
thus creating a directory hierarchy. You can examine the contents of\r
any tree using ls-tree (remember that a long enough initial portion\r
-of the SHA1 will also work):</p>\r
+of the SHA1 will also work):</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-tree 92b8b694\r
100644 blob 3b18e512dba79e4c8300dd08aeb37f8e728b8dad file.txt</tt></pre>\r
</div></div>\r
-<p>Thus we see that this tree has one file in it. The SHA1 hash is a\r
-reference to that file's data:</p>\r
+<div class="para"><p>Thus we see that this tree has one file in it. The SHA1 hash is a\r
+reference to that file's data:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cat-file -t 3b18e512\r
blob</tt></pre>\r
</div></div>\r
-<p>A "blob" is just file data, which we can also examine with cat-file:</p>\r
+<div class="para"><p>A "blob" is just file data, which we can also examine with cat-file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cat-file blob 3b18e512\r
hello world</tt></pre>\r
</div></div>\r
-<p>Note that this is the old file data; so the object that git named in\r
+<div class="para"><p>Note that this is the old file data; so the object that git named in\r
its response to the initial tree was a tree with a snapshot of the\r
-directory state that was recorded by the first commit.</p>\r
-<p>All of these objects are stored under their SHA1 names inside the git\r
-directory:</p>\r
+directory state that was recorded by the first commit.</p></div>\r
+<div class="para"><p>All of these objects are stored under their SHA1 names inside the git\r
+directory:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ find .git/objects/\r
.git/objects/c4\r
.git/objects/c4/d59f390b9cfd4318117afde11d601c1085f241</tt></pre>\r
</div></div>\r
-<p>and the contents of these files is just the compressed data plus a\r
+<div class="para"><p>and the contents of these files is just the compressed data plus a\r
header identifying their length and their type. The type is either a\r
-blob, a tree, a commit, or a tag.</p>\r
-<p>The simplest commit to find is the HEAD commit, which we can find\r
-from .git/HEAD:</p>\r
+blob, a tree, a commit, or a tag.</p></div>\r
+<div class="para"><p>The simplest commit to find is the HEAD commit, which we can find\r
+from .git/HEAD:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ cat .git/HEAD\r
ref: refs/heads/master</tt></pre>\r
</div></div>\r
-<p>As you can see, this tells us which branch we're currently on, and it\r
+<div class="para"><p>As you can see, this tells us which branch we're currently on, and it\r
tells us this by naming a file under the .git directory, which itself\r
contains a SHA1 name referring to a commit object, which we can\r
-examine with cat-file:</p>\r
+examine with cat-file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ cat .git/refs/heads/master\r
\r
add emphasis</tt></pre>\r
</div></div>\r
-<p>The "tree" object here refers to the new state of the tree:</p>\r
+<div class="para"><p>The "tree" object here refers to the new state of the tree:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-tree d0492b36\r
$ git cat-file blob a0423896\r
hello world!</tt></pre>\r
</div></div>\r
-<p>and the "parent" object refers to the previous commit:</p>\r
+<div class="para"><p>and the "parent" object refers to the previous commit:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cat-file commit 54196cc2\r
\r
initial commit</tt></pre>\r
</div></div>\r
-<p>The tree object is the tree we examined first, and this commit is\r
-unusual in that it lacks any parent.</p>\r
-<p>Most commits have only one parent, but it is also common for a commit\r
+<div class="para"><p>The tree object is the tree we examined first, and this commit is\r
+unusual in that it lacks any parent.</p></div>\r
+<div class="para"><p>Most commits have only one parent, but it is also common for a commit\r
to have multiple parents. In that case the commit represents a\r
merge, with the parent references pointing to the heads of the merged\r
-branches.</p>\r
-<p>Besides blobs, trees, and commits, the only remaining type of object\r
+branches.</p></div>\r
+<div class="para"><p>Besides blobs, trees, and commits, the only remaining type of object\r
is a "tag", which we won't discuss here; refer to <a href="git-tag.html">git-tag(1)</a>\r
-for details.</p>\r
-<p>So now we know how git uses the object database to represent a\r
-project's history:</p>\r
-<ul>\r
+for details.</p></div>\r
+<div class="para"><p>So now we know how git uses the object database to represent a\r
+project's history:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
"commit" objects refer to "tree" objects representing the\r
The name of the current branch is stored in .git/HEAD.\r
</p>\r
</li>\r
-</ul>\r
-<p>Note, by the way, that lots of commands take a tree as an argument.\r
+</ul></div>\r
+<div class="para"><p>Note, by the way, that lots of commands take a tree as an argument.\r
But as we can see above, a tree can be referred to in many different\r
ways--by the SHA1 name for that tree, by the name of a commit that\r
refers to the tree, by the name of a branch whose head refers to that\r
-tree, etc.--and most such commands can accept any of these names.</p>\r
-<p>In command synopses, the word "tree-ish" is sometimes used to\r
-designate such an argument.</p>\r
+tree, etc.--and most such commands can accept any of these names.</p></div>\r
+<div class="para"><p>In command synopses, the word "tree-ish" is sometimes used to\r
+designate such an argument.</p></div>\r
</div>\r
-<h2>The index file</h2>\r
+<h2 id="_the_index_file">The index file</h2>\r
<div class="sectionbody">\r
-<p>The primary tool we've been using to create commits is <tt>git-commit\r
+<div class="para"><p>The primary tool we've been using to create commits is <tt>git-commit\r
-a</tt>, which creates a commit including every change you've made to\r
your working tree. But what if you want to commit changes only to\r
-certain files? Or only certain changes to certain files?</p>\r
-<p>If we look at the way commits are created under the cover, we'll see\r
-that there are more flexible ways creating commits.</p>\r
-<p>Continuing with our test-project, let's modify file.txt again:</p>\r
+certain files? Or only certain changes to certain files?</p></div>\r
+<div class="para"><p>If we look at the way commits are created under the cover, we'll see\r
+that there are more flexible ways creating commits.</p></div>\r
+<div class="para"><p>Continuing with our test-project, let's modify file.txt again:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ echo "hello world, again" >>file.txt</tt></pre>\r
</div></div>\r
-<p>but this time instead of immediately making the commit, let's take an\r
+<div class="para"><p>but this time instead of immediately making the commit, let's take an\r
intermediate step, and ask for diffs along the way to keep track of\r
-what's happening:</p>\r
+what's happening:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff\r
$ git add file.txt\r
$ git diff</tt></pre>\r
</div></div>\r
-<p>The last diff is empty, but no new commits have been made, and the\r
-head still doesn't contain the new line:</p>\r
+<div class="para"><p>The last diff is empty, but no new commits have been made, and the\r
+head still doesn't contain the new line:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff HEAD\r
hello world!\r
+hello world, again</tt></pre>\r
</div></div>\r
-<p>So <tt>git-diff</tt> is comparing against something other than the head.\r
+<div class="para"><p>So <em>git-diff</em> is comparing against something other than the head.\r
The thing that it's comparing against is actually the index file,\r
which is stored in .git/index in a binary format, but whose contents\r
-we can examine with ls-files:</p>\r
+we can examine with ls-files:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-files --stage\r
hello world!\r
hello world, again</tt></pre>\r
</div></div>\r
-<p>So what our <tt>git-add</tt> did was store a new blob and then put\r
+<div class="para"><p>So what our <em>git-add</em> did was store a new blob and then put\r
a reference to it in the index file. If we modify the file again,\r
-we'll see that the new modifications are reflected in the <tt>git-diff</tt>\r
-output:</p>\r
+we'll see that the new modifications are reflected in the <em>git-diff</em>\r
+output:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ echo 'again?' >>file.txt\r
hello world, again\r
+again?</tt></pre>\r
</div></div>\r
-<p>With the right arguments, <tt>git-diff</tt> can also show us the difference\r
+<div class="para"><p>With the right arguments, <em>git-diff</em> can also show us the difference\r
between the working directory and the last commit, or between the\r
-index and the last commit:</p>\r
+index and the last commit:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff HEAD\r
hello world!\r
+hello world, again</tt></pre>\r
</div></div>\r
-<p>At any time, we can create a new commit using <tt>git-commit</tt> (without\r
+<div class="para"><p>At any time, we can create a new commit using <em>git-commit</em> (without\r
the "-a" option), and verify that the state committed only includes the\r
changes stored in the index file, not the additional change that is\r
-still only in our working tree:</p>\r
+still only in our working tree:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit -m "repeat"\r
hello world, again\r
+again?</tt></pre>\r
</div></div>\r
-<p>So by default <tt>git-commit</tt> uses the index to create the commit, not\r
+<div class="para"><p>So by default <em>git-commit</em> uses the index to create the commit, not\r
the working tree; the "-a" option to commit tells it to first update\r
-the index with all changes in the working tree.</p>\r
-<p>Finally, it's worth looking at the effect of <tt>git-add</tt> on the index\r
-file:</p>\r
+the index with all changes in the working tree.</p></div>\r
+<div class="para"><p>Finally, it's worth looking at the effect of <em>git-add</em> on the index\r
+file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ echo "goodbye, world" >closing.txt\r
$ git add closing.txt</tt></pre>\r
</div></div>\r
-<p>The effect of the <tt>git-add</tt> was to add one entry to the index file:</p>\r
+<div class="para"><p>The effect of the <em>git-add</em> was to add one entry to the index file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git ls-files --stage\r
100644 8b9743b20d4b15be3955fc8d5cd2b09cd2336138 0 closing.txt\r
100644 513feba2e53ebbd2532419ded848ba19de88ba00 0 file.txt</tt></pre>\r
</div></div>\r
-<p>And, as you can see with cat-file, this new entry refers to the\r
-current contents of the file:</p>\r
+<div class="para"><p>And, as you can see with cat-file, this new entry refers to the\r
+current contents of the file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git cat-file blob 8b9743b2\r
goodbye, world</tt></pre>\r
</div></div>\r
-<p>The "status" command is a useful way to get a quick summary of the\r
-situation:</p>\r
+<div class="para"><p>The "status" command is a useful way to get a quick summary of the\r
+situation:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git status\r
# modified: file.txt\r
#</tt></pre>\r
</div></div>\r
-<p>Since the current state of closing.txt is cached in the index file,\r
+<div class="para"><p>Since the current state of closing.txt is cached in the index file,\r
it is listed as "Changes to be committed". Since file.txt has\r
changes in the working directory that aren't reflected in the index,\r
it is marked "changed but not updated". At this point, running "git\r
commit" would create a commit that added closing.txt (with its new\r
-contents), but that didn't modify file.txt.</p>\r
-<p>Also, note that a bare <tt>git diff</tt> shows the changes to file.txt, but\r
+contents), but that didn't modify file.txt.</p></div>\r
+<div class="para"><p>Also, note that a bare <tt>git diff</tt> shows the changes to file.txt, but\r
not the addition of closing.txt, because the version of closing.txt\r
-in the index file is identical to the one in the working directory.</p>\r
-<p>In addition to being the staging area for new commits, the index file\r
+in the index file is identical to the one in the working directory.</p></div>\r
+<div class="para"><p>In addition to being the staging area for new commits, the index file\r
is also populated from the object database when checking out a\r
branch, and is used to hold the trees involved in a merge operation.\r
See <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a> and the relevant man\r
-pages for details.</p>\r
+pages for details.</p></div>\r
</div>\r
-<h2>What next?</h2>\r
+<h2 id="_what_next">What next?</h2>\r
<div class="sectionbody">\r
-<p>At this point you should know everything necessary to read the man\r
+<div class="para"><p>At this point you should know everything necessary to read the man\r
pages for any of the git commands; one good place to start would be\r
with the commands mentioned in <a href="everyday.html">Everyday git</a>. You\r
-should be able to find any unknown jargon in <a href="gitglossary.html">gitglossary(7)</a>.</p>\r
-<p>The <a href="user-manual.html">Git User's Manual</a> provides a more\r
-comprehensive introduction to git.</p>\r
-<p><a href="gitcvs-migration.html">gitcvs-migration(7)</a> explains how to\r
+should be able to find any unknown jargon in <a href="gitglossary.html">gitglossary(7)</a>.</p></div>\r
+<div class="para"><p>The <a href="user-manual.html">Git User's Manual</a> provides a more\r
+comprehensive introduction to git.</p></div>\r
+<div class="para"><p><a href="gitcvs-migration.html">gitcvs-migration(7)</a> explains how to\r
import a CVS repository into git, and shows how to use git in a\r
-CVS-like way.</p>\r
-<p>For some interesting examples of git use, see the\r
-<a href="howto-index.html">howtos</a>.</p>\r
-<p>For git developers, <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a> goes\r
+CVS-like way.</p></div>\r
+<div class="para"><p>For some interesting examples of git use, see the\r
+<a href="howto-index.html">howtos</a>.</p></div>\r
+<div class="para"><p>For git developers, <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a> goes\r
into detail on the lower-level git mechanisms involved in, for\r
-example, creating a new commit.</p>\r
+example, creating a new commit.</p></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="gittutorial.html">gittutorial(7)</a>,\r
+<div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>,\r
<a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
<a href="gitcore-tutorial.html">gitcore-tutorial(7)</a>,\r
<a href="gitglossary.html">gitglossary(7)</a>,\r
<a href="everyday.html">Everyday git</a>,\r
-<a href="user-manual.html">The Git User's Manual</a></p>\r
+<a href="user-manual.html">The Git User's Manual</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite.</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:11 UTC\r
+Last updated 2008-07-06 05:17:11 UTC\r
</div>\r
</div>\r
</body>\r
+hello world, again
------------------------------------------------
-So `git-diff` is comparing against something other than the head.
+So 'git-diff' is comparing against something other than the head.
The thing that it's comparing against is actually the index file,
which is stored in .git/index in a binary format, but whose contents
we can examine with ls-files:
hello world, again
------------------------------------------------
-So what our `git-add` did was store a new blob and then put
+So what our 'git-add' did was store a new blob and then put
a reference to it in the index file. If we modify the file again,
-we'll see that the new modifications are reflected in the `git-diff`
+we'll see that the new modifications are reflected in the 'git-diff'
output:
------------------------------------------------
+again?
------------------------------------------------
-With the right arguments, `git-diff` can also show us the difference
+With the right arguments, 'git-diff' can also show us the difference
between the working directory and the last commit, or between the
index and the last commit:
+hello world, again
------------------------------------------------
-At any time, we can create a new commit using `git-commit` (without
+At any time, we can create a new commit using 'git-commit' (without
the "-a" option), and verify that the state committed only includes the
changes stored in the index file, not the additional change that is
still only in our working tree:
+again?
------------------------------------------------
-So by default `git-commit` uses the index to create the commit, not
+So by default 'git-commit' uses the index to create the commit, not
the working tree; the "-a" option to commit tells it to first update
the index with all changes in the working tree.
-Finally, it's worth looking at the effect of `git-add` on the index
+Finally, it's worth looking at the effect of 'git-add' on the index
file:
------------------------------------------------
$ git add closing.txt
------------------------------------------------
-The effect of the `git-add` was to add one entry to the index file:
+The effect of the 'git-add' was to add one entry to the index file:
------------------------------------------------
$ git ls-files --stage
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
<style type="text/css">\r
/* Debug borders */\r
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
margin: 1em 5% 1em 5%;\r
}\r
\r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
\r
em {\r
font-style: italic;\r
line-height: 1.3;\r
}\r
\r
-h1 {\r
+h1, h2, h3 {\r
border-bottom: 2px solid silver;\r
}\r
h2 {\r
- border-bottom: 2px solid silver;\r
padding-top: 0.5em;\r
}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
\r
div.sectionbody {\r
font-family: serif;\r
color: #527bbd;\r
font-family: sans-serif;\r
font-weight: bold;\r
- font-size: 1.2em;\r
+ font-size: 1.1em;\r
}\r
span#email {\r
}\r
padding: 0.5em;\r
}\r
\r
+div.listingblock {\r
+ margin-right: 0%;\r
+}\r
div.listingblock > div.content {\r
border: 1px solid silver;\r
background: #f4f4f4;\r
div.quoteblock > div.content {\r
padding-left: 2.0em;\r
}\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
text-align: right;\r
}\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
\r
div.admonitionblock .icon {\r
vertical-align: top;\r
ul, ol {\r
list-style-position: outside;\r
}\r
-ol.olist2 {\r
+div.olist2 ol {\r
list-style-type: lower-alpha;\r
}\r
\r
div.tableblock > table {\r
- border-color: #527bbd;\r
- border-width: 3px;\r
+ border: 3px solid #527bbd;\r
}\r
thead {\r
font-family: sans-serif;\r
margin-top: 0.8em;\r
margin-bottom: 0.8em;\r
}\r
+div.hlist td {\r
+ padding-bottom: 5px;\r
+}\r
td.hlist1 {\r
vertical-align: top;\r
font-style: italic;\r
@media print {\r
div#footer-badges { display: none; }\r
}\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
/* Workarounds for IE6's broken and incomplete CSS2. */\r
\r
div.sidebar-content {\r
border-left: 2px solid silver;\r
padding-left: 0.5em;\r
}\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
</style>\r
<title>gittutorial(7)</title>\r
</head>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p>git *</p>\r
+<div class="para"><p>git *</p></div>\r
</div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>This tutorial explains how to import a new project into git, make\r
-changes to it, and share changes with other developers.</p>\r
-<p>If you are instead primarily interested in using git to fetch a project,\r
+<div class="para"><p>This tutorial explains how to import a new project into git, make\r
+changes to it, and share changes with other developers.</p></div>\r
+<div class="para"><p>If you are instead primarily interested in using git to fetch a project,\r
for example, to test the latest version, you may prefer to start with\r
-the first two chapters of <a href="user-manual.html">The Git User's Manual</a>.</p>\r
-<p>First, note that you can get documentation for a command such as\r
-<tt>git log --graph</tt> with:</p>\r
+the first two chapters of <a href="user-manual.html">The Git User's Manual</a>.</p></div>\r
+<div class="para"><p>First, note that you can get documentation for a command such as\r
+<tt>git log --graph</tt> with:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ man git-log</tt></pre>\r
</div></div>\r
-<p>It is a good idea to introduce yourself to git with your name and\r
+<div class="para"><p>It is a good idea to introduce yourself to git with your name and\r
public email address before doing any operation. The easiest\r
-way to do so is:</p>\r
+way to do so is:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git config --global user.name "Your Name Comes Here"\r
$ git config --global user.email you@yourdomain.example.com</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Importing a new project</h2>\r
+<h2 id="_importing_a_new_project">Importing a new project</h2>\r
<div class="sectionbody">\r
-<p>Assume you have a tarball project.tar.gz with your initial work. You\r
-can place it under git revision control as follows.</p>\r
+<div class="para"><p>Assume you have a tarball project.tar.gz with your initial work. You\r
+can place it under git revision control as follows.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ tar xzf project.tar.gz\r
$ cd project\r
$ git init</tt></pre>\r
</div></div>\r
-<p>Git will reply</p>\r
+<div class="para"><p>Git will reply</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>Initialized empty Git repository in .git/</tt></pre>\r
</div></div>\r
-<p>You've now initialized the working directory--you may notice a new\r
-directory created, named ".git".</p>\r
-<p>Next, tell git to take a snapshot of the contents of all files under the\r
-current directory (note the <em>.</em>), with <tt>git-add</tt>:</p>\r
+<div class="para"><p>You've now initialized the working directory--you may notice a new\r
+directory created, named ".git".</p></div>\r
+<div class="para"><p>Next, tell git to take a snapshot of the contents of all files under the\r
+current directory (note the <em>.</em>), with <em>git-add</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git add .</tt></pre>\r
</div></div>\r
-<p>This snapshot is now stored in a temporary staging area which git calls\r
+<div class="para"><p>This snapshot is now stored in a temporary staging area which git calls\r
the "index". You can permanently store the contents of the index in the\r
-repository with <tt>git-commit</tt>:</p>\r
+repository with <em>git-commit</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit</tt></pre>\r
</div></div>\r
-<p>This will prompt you for a commit message. You've now stored the first\r
-version of your project in git.</p>\r
+<div class="para"><p>This will prompt you for a commit message. You've now stored the first\r
+version of your project in git.</p></div>\r
</div>\r
-<h2>Making changes</h2>\r
+<h2 id="_making_changes">Making changes</h2>\r
<div class="sectionbody">\r
-<p>Modify some files, then add their updated contents to the index:</p>\r
+<div class="para"><p>Modify some files, then add their updated contents to the index:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git add file1 file2 file3</tt></pre>\r
</div></div>\r
-<p>You are now ready to commit. You can see what is about to be committed\r
-using <tt>git-diff</tt> with the --cached option:</p>\r
+<div class="para"><p>You are now ready to commit. You can see what is about to be committed\r
+using <em>git-diff</em> with the --cached option:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff --cached</tt></pre>\r
</div></div>\r
-<p>(Without --cached, <tt>git-diff</tt> will show you any changes that\r
+<div class="para"><p>(Without --cached, <em>git-diff</em> will show you any changes that\r
you've made but not yet added to the index.) You can also get a brief\r
-summary of the situation with <tt>git-status</tt>:</p>\r
+summary of the situation with <em>git-status</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git status\r
# modified: file3\r
#</tt></pre>\r
</div></div>\r
-<p>If you need to make any further adjustments, do so now, and then add any\r
-newly modified content to the index. Finally, commit your changes with:</p>\r
+<div class="para"><p>If you need to make any further adjustments, do so now, and then add any\r
+newly modified content to the index. Finally, commit your changes with:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit</tt></pre>\r
</div></div>\r
-<p>This will again prompt you for a message describing the change, and then\r
-record a new version of the project.</p>\r
-<p>Alternatively, instead of running <tt>git-add</tt> beforehand, you can use</p>\r
+<div class="para"><p>This will again prompt you for a message describing the change, and then\r
+record a new version of the project.</p></div>\r
+<div class="para"><p>Alternatively, instead of running <em>git-add</em> beforehand, you can use</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit -a</tt></pre>\r
</div></div>\r
-<p>which will automatically notice any modified (but not new) files, add\r
-them to the index, and commit, all in one step.</p>\r
-<p>A note on commit messages: Though not required, it's a good idea to\r
+<div class="para"><p>which will automatically notice any modified (but not new) files, add\r
+them to the index, and commit, all in one step.</p></div>\r
+<div class="para"><p>A note on commit messages: Though not required, it's a good idea to\r
begin the commit message with a single short (less than 50 character)\r
line summarizing the change, followed by a blank line and then a more\r
thorough description. Tools that turn commits into email, for\r
example, use the first line on the Subject: line and the rest of the\r
-commit in the body.</p>\r
+commit in the body.</p></div>\r
</div>\r
-<h2>Git tracks content not files</h2>\r
+<h2 id="_git_tracks_content_not_files">Git tracks content not files</h2>\r
<div class="sectionbody">\r
-<p>Many revision control systems provide an <tt>add</tt> command that tells the\r
+<div class="para"><p>Many revision control systems provide an <tt>add</tt> command that tells the\r
system to start tracking changes to a new file. Git's <tt>add</tt> command\r
-does something simpler and more powerful: <tt>git-add</tt> is used both for new\r
+does something simpler and more powerful: <em>git-add</em> is used both for new\r
and newly modified files, and in both cases it takes a snapshot of the\r
given files and stages that content in the index, ready for inclusion in\r
-the next commit.</p>\r
+the next commit.</p></div>\r
</div>\r
-<h2>Viewing project history</h2>\r
+<h2 id="_viewing_project_history">Viewing project history</h2>\r
<div class="sectionbody">\r
-<p>At any point you can view the history of your changes using</p>\r
+<div class="para"><p>At any point you can view the history of your changes using</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log</tt></pre>\r
</div></div>\r
-<p>If you also want to see complete diffs at each step, use</p>\r
+<div class="para"><p>If you also want to see complete diffs at each step, use</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -p</tt></pre>\r
</div></div>\r
-<p>Often the overview of the change is useful to get a feel of\r
-each step</p>\r
+<div class="para"><p>Often the overview of the change is useful to get a feel of\r
+each step</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log --stat --summary</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Managing branches</h2>\r
+<h2 id="_managing_branches">Managing branches</h2>\r
<div class="sectionbody">\r
-<p>A single git repository can maintain multiple branches of\r
-development. To create a new branch named "experimental", use</p>\r
+<div class="para"><p>A single git repository can maintain multiple branches of\r
+development. To create a new branch named "experimental", use</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git branch experimental</tt></pre>\r
</div></div>\r
-<p>If you now run</p>\r
+<div class="para"><p>If you now run</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git branch</tt></pre>\r
</div></div>\r
-<p>you'll get a list of all existing branches:</p>\r
+<div class="para"><p>you'll get a list of all existing branches:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt> experimental\r
* master</tt></pre>\r
</div></div>\r
-<p>The "experimental" branch is the one you just created, and the\r
+<div class="para"><p>The "experimental" branch is the one you just created, and the\r
"master" branch is a default branch that was created for you\r
automatically. The asterisk marks the branch you are currently on;\r
-type</p>\r
+type</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git checkout experimental</tt></pre>\r
</div></div>\r
-<p>to switch to the experimental branch. Now edit a file, commit the\r
-change, and switch back to the master branch:</p>\r
+<div class="para"><p>to switch to the experimental branch. Now edit a file, commit the\r
+change, and switch back to the master branch:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>(edit file)\r
$ git commit -a\r
$ git checkout master</tt></pre>\r
</div></div>\r
-<p>Check that the change you made is no longer visible, since it was\r
-made on the experimental branch and you're back on the master branch.</p>\r
-<p>You can make a different change on the master branch:</p>\r
+<div class="para"><p>Check that the change you made is no longer visible, since it was\r
+made on the experimental branch and you're back on the master branch.</p></div>\r
+<div class="para"><p>You can make a different change on the master branch:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>(edit file)\r
$ git commit -a</tt></pre>\r
</div></div>\r
-<p>at this point the two branches have diverged, with different changes\r
-made in each. To merge the changes made in experimental into master, run</p>\r
+<div class="para"><p>at this point the two branches have diverged, with different changes\r
+made in each. To merge the changes made in experimental into master, run</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git merge experimental</tt></pre>\r
</div></div>\r
-<p>If the changes don't conflict, you're done. If there are conflicts,\r
-markers will be left in the problematic files showing the conflict;</p>\r
+<div class="para"><p>If the changes don't conflict, you're done. If there are conflicts,\r
+markers will be left in the problematic files showing the conflict;</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff</tt></pre>\r
</div></div>\r
-<p>will show this. Once you've edited the files to resolve the\r
-conflicts,</p>\r
+<div class="para"><p>will show this. Once you've edited the files to resolve the\r
+conflicts,</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git commit -a</tt></pre>\r
</div></div>\r
-<p>will commit the result of the merge. Finally,</p>\r
+<div class="para"><p>will commit the result of the merge. Finally,</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ gitk</tt></pre>\r
</div></div>\r
-<p>will show a nice graphical representation of the resulting history.</p>\r
-<p>At this point you could delete the experimental branch with</p>\r
+<div class="para"><p>will show a nice graphical representation of the resulting history.</p></div>\r
+<div class="para"><p>At this point you could delete the experimental branch with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git branch -d experimental</tt></pre>\r
</div></div>\r
-<p>This command ensures that the changes in the experimental branch are\r
-already in the current branch.</p>\r
-<p>If you develop on a branch crazy-idea, then regret it, you can always\r
-delete the branch with</p>\r
+<div class="para"><p>This command ensures that the changes in the experimental branch are\r
+already in the current branch.</p></div>\r
+<div class="para"><p>If you develop on a branch crazy-idea, then regret it, you can always\r
+delete the branch with</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git branch -D crazy-idea</tt></pre>\r
</div></div>\r
-<p>Branches are cheap and easy, so this is a good way to try something\r
-out.</p>\r
+<div class="para"><p>Branches are cheap and easy, so this is a good way to try something\r
+out.</p></div>\r
</div>\r
-<h2>Using git for collaboration</h2>\r
+<h2 id="_using_git_for_collaboration">Using git for collaboration</h2>\r
<div class="sectionbody">\r
-<p>Suppose that Alice has started a new project with a git repository in\r
+<div class="para"><p>Suppose that Alice has started a new project with a git repository in\r
/home/alice/project, and that Bob, who has a home directory on the\r
-same machine, wants to contribute.</p>\r
-<p>Bob begins with:</p>\r
+same machine, wants to contribute.</p></div>\r
+<div class="para"><p>Bob begins with:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git clone /home/alice/project myrepo</tt></pre>\r
</div></div>\r
-<p>This creates a new directory "myrepo" containing a clone of Alice's\r
+<div class="para"><p>This creates a new directory "myrepo" containing a clone of Alice's\r
repository. The clone is on an equal footing with the original\r
-project, possessing its own copy of the original project's history.</p>\r
-<p>Bob then makes some changes and commits them:</p>\r
+project, possessing its own copy of the original project's history.</p></div>\r
+<div class="para"><p>Bob then makes some changes and commits them:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>(edit files)\r
$ git commit -a\r
(repeat as necessary)</tt></pre>\r
</div></div>\r
-<p>When he's ready, he tells Alice to pull changes from the repository\r
-at /home/bob/myrepo. She does this with:</p>\r
+<div class="para"><p>When he's ready, he tells Alice to pull changes from the repository\r
+at /home/bob/myrepo. She does this with:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ cd /home/alice/project\r
$ git pull /home/bob/myrepo master</tt></pre>\r
</div></div>\r
-<p>This merges the changes from Bob's "master" branch into Alice's\r
+<div class="para"><p>This merges the changes from Bob's "master" branch into Alice's\r
current branch. If Alice has made her own changes in the meantime,\r
then she may need to manually fix any conflicts. (Note that the\r
"master" argument in the above command is actually unnecessary, as it\r
-is the default.)</p>\r
-<p>The "pull" command thus performs two operations: it fetches changes\r
-from a remote branch, then merges them into the current branch.</p>\r
-<p>When you are working in a small closely knit group, it is not\r
+is the default.)</p></div>\r
+<div class="para"><p>The "pull" command thus performs two operations: it fetches changes\r
+from a remote branch, then merges them into the current branch.</p></div>\r
+<div class="para"><p>When you are working in a small closely knit group, it is not\r
unusual to interact with the same repository over and over\r
again. By defining <em>remote</em> repository shorthand, you can make\r
-it easier:</p>\r
+it easier:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git remote add bob /home/bob/myrepo</tt></pre>\r
</div></div>\r
-<p>With this, Alice can perform the first operation alone using the\r
-<tt>git-fetch</tt> command without merging them with her own branch,\r
-using:</p>\r
+<div class="para"><p>With this, Alice can perform the first operation alone using the\r
+<em>git-fetch</em> command without merging them with her own branch,\r
+using:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git fetch bob</tt></pre>\r
</div></div>\r
-<p>Unlike the longhand form, when Alice fetches from Bob using a\r
-remote repository shorthand set up with <tt>git-remote</tt>, what was\r
+<div class="para"><p>Unlike the longhand form, when Alice fetches from Bob using a\r
+remote repository shorthand set up with <em>git-remote</em>, what was\r
fetched is stored in a remote tracking branch, in this case\r
-<tt>bob/master</tt>. So after this:</p>\r
+<tt>bob/master</tt>. So after this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log -p master..bob/master</tt></pre>\r
</div></div>\r
-<p>shows a list of all the changes that Bob made since he branched from\r
-Alice's master branch.</p>\r
-<p>After examining those changes, Alice\r
-could merge the changes into her master branch:</p>\r
+<div class="para"><p>shows a list of all the changes that Bob made since he branched from\r
+Alice's master branch.</p></div>\r
+<div class="para"><p>After examining those changes, Alice\r
+could merge the changes into her master branch:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git merge bob/master</tt></pre>\r
</div></div>\r
-<p>This <tt>merge</tt> can also be done by <em>pulling from her own remote\r
-tracking branch</em>, like this:</p>\r
+<div class="para"><p>This <tt>merge</tt> can also be done by <em>pulling from her own remote\r
+tracking branch</em>, like this:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git pull . remotes/bob/master</tt></pre>\r
</div></div>\r
-<p>Note that git pull always merges into the current branch,\r
-regardless of what else is given on the command line.</p>\r
-<p>Later, Bob can update his repo with Alice's latest changes using</p>\r
+<div class="para"><p>Note that git pull always merges into the current branch,\r
+regardless of what else is given on the command line.</p></div>\r
+<div class="para"><p>Later, Bob can update his repo with Alice's latest changes using</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git pull</tt></pre>\r
</div></div>\r
-<p>Note that he doesn't need to give the path to Alice's repository;\r
+<div class="para"><p>Note that he doesn't need to give the path to Alice's repository;\r
when Bob cloned Alice's repository, git stored the location of her\r
repository in the repository configuration, and that location is\r
-used for pulls:</p>\r
+used for pulls:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git config --get remote.origin.url\r
/home/alice/project</tt></pre>\r
</div></div>\r
-<p>(The complete configuration created by <tt>git-clone</tt> is visible using\r
+<div class="para"><p>(The complete configuration created by <em>git-clone</em> is visible using\r
<tt>git config -l</tt>, and the <a href="git-config.html">git-config(1)</a> man page\r
-explains the meaning of each option.)</p>\r
-<p>Git also keeps a pristine copy of Alice's master branch under the\r
-name "origin/master":</p>\r
+explains the meaning of each option.)</p></div>\r
+<div class="para"><p>Git also keeps a pristine copy of Alice's master branch under the\r
+name "origin/master":</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git branch -r\r
origin/master</tt></pre>\r
</div></div>\r
-<p>If Bob later decides to work from a different host, he can still\r
-perform clones and pulls using the ssh protocol:</p>\r
+<div class="para"><p>If Bob later decides to work from a different host, he can still\r
+perform clones and pulls using the ssh protocol:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git clone alice.org:/home/alice/project myrepo</tt></pre>\r
</div></div>\r
-<p>Alternatively, git has a native protocol, or can use rsync or http;\r
-see <a href="git-pull.html">git-pull(1)</a> for details.</p>\r
-<p>Git can also be used in a CVS-like mode, with a central repository\r
+<div class="para"><p>Alternatively, git has a native protocol, or can use rsync or http;\r
+see <a href="git-pull.html">git-pull(1)</a> for details.</p></div>\r
+<div class="para"><p>Git can also be used in a CVS-like mode, with a central repository\r
that various users push changes to; see <a href="git-push.html">git-push(1)</a> and\r
-<a href="gitcvs-migration.html">gitcvs-migration(7)</a>.</p>\r
+<a href="gitcvs-migration.html">gitcvs-migration(7)</a>.</p></div>\r
</div>\r
-<h2>Exploring history</h2>\r
+<h2 id="_exploring_history">Exploring history</h2>\r
<div class="sectionbody">\r
-<p>Git history is represented as a series of interrelated commits. We\r
-have already seen that the <tt>git-log</tt> command can list those commits.\r
+<div class="para"><p>Git history is represented as a series of interrelated commits. We\r
+have already seen that the <em>git-log</em> command can list those commits.\r
Note that first line of each git log entry also gives a name for the\r
-commit:</p>\r
+commit:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log\r
\r
merge-base: Clarify the comments on post processing.</tt></pre>\r
</div></div>\r
-<p>We can give this name to <tt>git-show</tt> to see the details about this\r
-commit.</p>\r
+<div class="para"><p>We can give this name to <em>git-show</em> to see the details about this\r
+commit.</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show c82a22c39cbc32576f64f5c6b3f24b99ea8149c7</tt></pre>\r
</div></div>\r
-<p>But there are other ways to refer to commits. You can use any initial\r
-part of the name that is long enough to uniquely identify the commit:</p>\r
+<div class="para"><p>But there are other ways to refer to commits. You can use any initial\r
+part of the name that is long enough to uniquely identify the commit:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show c82a22c39c # the first few characters of the name are\r
$ git show HEAD # the tip of the current branch\r
$ git show experimental # the tip of the "experimental" branch</tt></pre>\r
</div></div>\r
-<p>Every commit usually has one "parent" commit\r
-which points to the previous state of the project:</p>\r
+<div class="para"><p>Every commit usually has one "parent" commit\r
+which points to the previous state of the project:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show HEAD^ # to see the parent of HEAD\r
$ git show HEAD^^ # to see the grandparent of HEAD\r
$ git show HEAD~4 # to see the great-great grandparent of HEAD</tt></pre>\r
</div></div>\r
-<p>Note that merge commits may have more than one parent:</p>\r
+<div class="para"><p>Note that merge commits may have more than one parent:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show HEAD^1 # show the first parent of HEAD (same as HEAD^)\r
$ git show HEAD^2 # show the second parent of HEAD</tt></pre>\r
</div></div>\r
-<p>You can also give commits names of your own; after running</p>\r
+<div class="para"><p>You can also give commits names of your own; after running</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git tag v2.5 1b2e1d63ff</tt></pre>\r
</div></div>\r
-<p>you can refer to 1b2e1d63ff by the name "v2.5". If you intend to\r
+<div class="para"><p>you can refer to 1b2e1d63ff by the name "v2.5". If you intend to\r
share this name with other people (for example, to identify a release\r
version), you should create a "tag" object, and perhaps sign it; see\r
-<a href="git-tag.html">git-tag(1)</a> for details.</p>\r
-<p>Any git command that needs to know a commit can take any of these\r
-names. For example:</p>\r
+<a href="git-tag.html">git-tag(1)</a> for details.</p></div>\r
+<div class="para"><p>Any git command that needs to know a commit can take any of these\r
+names. For example:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff v2.5 HEAD # compare the current HEAD to v2.5\r
$ git reset --hard HEAD^ # reset your current branch and working\r
# directory to its state at HEAD^</tt></pre>\r
</div></div>\r
-<p>Be careful with that last command: in addition to losing any changes\r
+<div class="para"><p>Be careful with that last command: in addition to losing any changes\r
in the working directory, it will also remove all later commits from\r
this branch. If this branch is the only branch containing those\r
-commits, they will be lost. Also, don't use <tt>git-reset</tt> on a\r
+commits, they will be lost. Also, don't use <em>git-reset</em> on a\r
publicly-visible branch that other developers pull from, as it will\r
force needless merges on other developers to clean up the history.\r
-If you need to undo changes that you have pushed, use <tt>git-revert</tt>\r
-instead.</p>\r
-<p>The <tt>git-grep</tt> command can search for strings in any version of your\r
-project, so</p>\r
+If you need to undo changes that you have pushed, use <em>git-revert</em>\r
+instead.</p></div>\r
+<div class="para"><p>The <em>git-grep</em> command can search for strings in any version of your\r
+project, so</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git grep "hello" v2.5</tt></pre>\r
</div></div>\r
-<p>searches for all occurrences of "hello" in v2.5.</p>\r
-<p>If you leave out the commit name, <tt>git-grep</tt> will search any of the\r
-files it manages in your current directory. So</p>\r
+<div class="para"><p>searches for all occurrences of "hello" in v2.5.</p></div>\r
+<div class="para"><p>If you leave out the commit name, <em>git-grep</em> will search any of the\r
+files it manages in your current directory. So</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git grep "hello"</tt></pre>\r
</div></div>\r
-<p>is a quick way to search just the files that are tracked by git.</p>\r
-<p>Many git commands also take sets of commits, which can be specified\r
-in a number of ways. Here are some examples with <tt>git-log</tt>:</p>\r
+<div class="para"><p>is a quick way to search just the files that are tracked by git.</p></div>\r
+<div class="para"><p>Many git commands also take sets of commits, which can be specified\r
+in a number of ways. Here are some examples with <em>git-log</em>:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log v2.5..v2.6 # commits between v2.5 and v2.6\r
$ git log v2.5.. Makefile # commits since v2.5 which modify\r
# Makefile</tt></pre>\r
</div></div>\r
-<p>You can also give <tt>git-log</tt> a "range" of commits where the first is not\r
+<div class="para"><p>You can also give <em>git-log</em> a "range" of commits where the first is not\r
necessarily an ancestor of the second; for example, if the tips of\r
the branches "stable-release" and "master" diverged from a common\r
-commit some time ago, then</p>\r
+commit some time ago, then</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log stable..experimental</tt></pre>\r
</div></div>\r
-<p>will list commits made in the experimental branch but not in the\r
-stable branch, while</p>\r
+<div class="para"><p>will list commits made in the experimental branch but not in the\r
+stable branch, while</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git log experimental..stable</tt></pre>\r
</div></div>\r
-<p>will show the list of commits made on the stable branch but not\r
-the experimental branch.</p>\r
-<p>The <tt>git-log</tt> command has a weakness: it must present commits in a\r
+<div class="para"><p>will show the list of commits made on the stable branch but not\r
+the experimental branch.</p></div>\r
+<div class="para"><p>The <em>git-log</em> command has a weakness: it must present commits in a\r
list. When the history has lines of development that diverged and\r
-then merged back together, the order in which <tt>git-log</tt> presents\r
-those commits is meaningless.</p>\r
-<p>Most projects with multiple contributors (such as the linux kernel,\r
-or git itself) have frequent merges, and <tt>gitk</tt> does a better job of\r
-visualizing their history. For example,</p>\r
+then merged back together, the order in which <em>git-log</em> presents\r
+those commits is meaningless.</p></div>\r
+<div class="para"><p>Most projects with multiple contributors (such as the linux kernel,\r
+or git itself) have frequent merges, and <em>gitk</em> does a better job of\r
+visualizing their history. For example,</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ gitk --since="2 weeks ago" drivers/</tt></pre>\r
</div></div>\r
-<p>allows you to browse any commits from the last 2 weeks of commits\r
+<div class="para"><p>allows you to browse any commits from the last 2 weeks of commits\r
that modified files under the "drivers" directory. (Note: you can\r
adjust gitk's fonts by holding down the control key while pressing\r
-"-" or "+".)</p>\r
-<p>Finally, most commands that take filenames will optionally allow you\r
+"-" or "+".)</p></div>\r
+<div class="para"><p>Finally, most commands that take filenames will optionally allow you\r
to precede any filename by a commit, to specify a particular version\r
-of the file:</p>\r
+of the file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git diff v2.5:Makefile HEAD:Makefile.in</tt></pre>\r
</div></div>\r
-<p>You can also use <tt>git-show</tt> to see any such file:</p>\r
+<div class="para"><p>You can also use <em>git-show</em> to see any such file:</p></div>\r
<div class="listingblock">\r
<div class="content">\r
<pre><tt>$ git show v2.5:Makefile</tt></pre>\r
</div></div>\r
</div>\r
-<h2>Next Steps</h2>\r
+<h2 id="_next_steps">Next Steps</h2>\r
<div class="sectionbody">\r
-<p>This tutorial should be enough to perform basic distributed revision\r
+<div class="para"><p>This tutorial should be enough to perform basic distributed revision\r
control for your projects. However, to fully understand the depth\r
and power of git you need to understand two simple ideas on which it\r
-is based:</p>\r
-<ul>\r
+is based:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
The object database is the rather elegant system used to\r
hold the various trees involved in a merge.\r
</p>\r
</li>\r
-</ul>\r
-<p>Part two of this tutorial explains the object\r
+</ul></div>\r
+<div class="para"><p>Part two of this tutorial explains the object\r
database, the index file, and a few other odds and ends that you'll\r
-need to make the most of git. You can find it at <a href="gittutorial-2.html">gittutorial-2(7)</a>.</p>\r
-<p>If you don't want to continue with that right away, a few other\r
-digressions that may be interesting at this point are:</p>\r
-<ul>\r
+need to make the most of git. You can find it at <a href="gittutorial-2.html">gittutorial-2(7)</a>.</p></div>\r
+<div class="para"><p>If you don't want to continue with that right away, a few other\r
+digressions that may be interesting at this point are:</p></div>\r
+<div class="ilist"><ul>\r
<li>\r
<p>\r
<a href="git-format-patch.html">git-format-patch(1)</a>, <a href="git-am.html">git-am(1)</a>: These convert\r
<a href="gitcvs-migration.html">gitcvs-migration(7)</a>: Git for CVS users.\r
</p>\r
</li>\r
-</ul>\r
+</ul></div>\r
</div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
+<div class="para"><p><a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
<a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
<a href="gitcore-tutorial.html">gitcore-tutorial(7)</a>,\r
<a href="gitglossary.html">gitglossary(7)</a>,\r
<a href="everyday.html">Everyday git</a>,\r
-<a href="user-manual.html">The Git User's Manual</a></p>\r
+<a href="user-manual.html">The Git User's Manual</a></p></div>\r
</div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
<div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite.</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:11 UTC\r
+Last updated 2008-07-06 05:17:11 UTC\r
</div>\r
</div>\r
</body>\r
directory created, named ".git".
Next, tell git to take a snapshot of the contents of all files under the
-current directory (note the '.'), with `git-add`:
+current directory (note the '.'), with 'git-add':
------------------------------------------------
$ git add .
This snapshot is now stored in a temporary staging area which git calls
the "index". You can permanently store the contents of the index in the
-repository with `git-commit`:
+repository with 'git-commit':
------------------------------------------------
$ git commit
------------------------------------------------
You are now ready to commit. You can see what is about to be committed
-using `git-diff` with the --cached option:
+using 'git-diff' with the --cached option:
------------------------------------------------
$ git diff --cached
------------------------------------------------
-(Without --cached, `git-diff` will show you any changes that
+(Without --cached, 'git-diff' will show you any changes that
you've made but not yet added to the index.) You can also get a brief
-summary of the situation with `git-status`:
+summary of the situation with 'git-status':
------------------------------------------------
$ git status
This will again prompt you for a message describing the change, and then
record a new version of the project.
-Alternatively, instead of running `git-add` beforehand, you can use
+Alternatively, instead of running 'git-add' beforehand, you can use
------------------------------------------------
$ git commit -a
Many revision control systems provide an `add` command that tells the
system to start tracking changes to a new file. Git's `add` command
-does something simpler and more powerful: `git-add` is used both for new
+does something simpler and more powerful: 'git-add' is used both for new
and newly modified files, and in both cases it takes a snapshot of the
given files and stages that content in the index, ready for inclusion in
the next commit.
------------------------------------------------
With this, Alice can perform the first operation alone using the
-`git-fetch` command without merging them with her own branch,
+'git-fetch' command without merging them with her own branch,
using:
-------------------------------------
-------------------------------------
Unlike the longhand form, when Alice fetches from Bob using a
-remote repository shorthand set up with `git-remote`, what was
+remote repository shorthand set up with 'git-remote', what was
fetched is stored in a remote tracking branch, in this case
`bob/master`. So after this:
/home/alice/project
-------------------------------------
-(The complete configuration created by `git-clone` is visible using
+(The complete configuration created by 'git-clone' is visible using
`git config -l`, and the linkgit:git-config[1] man page
explains the meaning of each option.)
-----------------
Git history is represented as a series of interrelated commits. We
-have already seen that the `git-log` command can list those commits.
+have already seen that the 'git-log' command can list those commits.
Note that first line of each git log entry also gives a name for the
commit:
merge-base: Clarify the comments on post processing.
-------------------------------------
-We can give this name to `git-show` to see the details about this
+We can give this name to 'git-show' to see the details about this
commit.
-------------------------------------
Be careful with that last command: in addition to losing any changes
in the working directory, it will also remove all later commits from
this branch. If this branch is the only branch containing those
-commits, they will be lost. Also, don't use `git-reset` on a
+commits, they will be lost. Also, don't use 'git-reset' on a
publicly-visible branch that other developers pull from, as it will
force needless merges on other developers to clean up the history.
-If you need to undo changes that you have pushed, use `git-revert`
+If you need to undo changes that you have pushed, use 'git-revert'
instead.
-The `git-grep` command can search for strings in any version of your
+The 'git-grep' command can search for strings in any version of your
project, so
-------------------------------------
searches for all occurrences of "hello" in v2.5.
-If you leave out the commit name, `git-grep` will search any of the
+If you leave out the commit name, 'git-grep' will search any of the
files it manages in your current directory. So
-------------------------------------
is a quick way to search just the files that are tracked by git.
Many git commands also take sets of commits, which can be specified
-in a number of ways. Here are some examples with `git-log`:
+in a number of ways. Here are some examples with 'git-log':
-------------------------------------
$ git log v2.5..v2.6 # commits between v2.5 and v2.6
# Makefile
-------------------------------------
-You can also give `git-log` a "range" of commits where the first is not
+You can also give 'git-log' a "range" of commits where the first is not
necessarily an ancestor of the second; for example, if the tips of
the branches "stable-release" and "master" diverged from a common
commit some time ago, then
will show the list of commits made on the stable branch but not
the experimental branch.
-The `git-log` command has a weakness: it must present commits in a
+The 'git-log' command has a weakness: it must present commits in a
list. When the history has lines of development that diverged and
-then merged back together, the order in which `git-log` presents
+then merged back together, the order in which 'git-log' presents
those commits is meaningless.
Most projects with multiple contributors (such as the linux kernel,
-or git itself) have frequent merges, and `gitk` does a better job of
+or git itself) have frequent merges, and 'gitk' does a better job of
visualizing their history. For example,
-------------------------------------
$ git diff v2.5:Makefile HEAD:Makefile.in
-------------------------------------
-You can also use `git-show` to see any such file:
+You can also use 'git-show' to see any such file:
-------------------------------------
$ git show v2.5:Makefile
does not forbid it. However, there are a few things to keep in
mind.
-. `git-commit-tree` (hence, `git-commit` which uses it) issues
+. 'git-commit-tree' (hence, 'git-commit' which uses it) issues
a warning if the commit log message given to it does not look
like a valid UTF-8 string, unless you explicitly say your
project uses a legacy encoding. The way to say this is to
help other people who look at them later. Lack of this header
implies that the commit log message is encoded in UTF-8.
-. `git-log`, `git-show` and friends looks at the `encoding`
+. 'git-log', 'git-show' and friends looks at the `encoding`
header of a commit object, and tries to re-code the log
message into UTF-8 unless otherwise specified. You can
specify the desired output encoding with
Use the given merge strategy; can be supplied more than
once to specify them in the order they should be tried.
If there is no `-s` option, a built-in list of strategies
- is used instead (`git-merge-recursive` when merging a single
- head, `git-merge-octopus` otherwise).
+ is used instead ('git-merge-recursive' when merging a single
+ head, 'git-merge-octopus' otherwise).
commit <sha1>
Author: <author>
- Date: <date>
+ Date: <author date>
<title line>
commit <sha1>
Author: <author>
- AuthorDate: <date & time>
+ AuthorDate: <author date>
Commit: <committer>
- CommitDate: <date & time>
+ CommitDate: <committer date>
<title line>
From <sha1> <date>
From: <author>
- Date: <date & time>
+ Date: <author date>
Subject: [PATCH] <title line>
<full commit message>
[NOTE]
You never do your own development on branches that appear
on the right hand side of a <refspec> colon on `Pull:` lines;
-they are to be updated by `git-fetch`. If you intend to do
+they are to be updated by 'git-fetch'. If you intend to do
development derived from a remote branch `B`, have a `Pull:`
line to track it (i.e. `Pull: B:remote-B`), and have a separate
branch `my-B` to do your development on top of it. The latter
+
[NOTE]
There is a difference between listing multiple <refspec>
-directly on `git-pull` command line and having multiple
+directly on 'git-pull' command line and having multiple
`Pull:` <refspec> lines for a <repository> and running
-`git-pull` command without any explicit <refspec> parameters.
+'git-pull' command without any explicit <refspec> parameters.
<refspec> listed explicitly on the command line are always
merged into the current branch after fetching. In other words,
if you list more than one remote refs, you would be making
-an Octopus. While `git-pull` run without any explicit <refspec>
+an Octopus. While 'git-pull' run without any explicit <refspec>
parameter takes default <refspec>s from `Pull:` lines, it
merges only the first <refspec> found into the current branch,
after fetching all the remote refs. This is because making an
------------
-`Push:` lines are used by `git-push` and
-`Pull:` lines are used by `git-pull` and `git-fetch`.
+`Push:` lines are used by 'git-push' and
+`Pull:` lines are used by 'git-pull' and 'git-fetch'.
Multiple `Push:` and `Pull:` lines may
be specified for additional branch mappings.
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User's Manual (for version 1.5.3 or newer)</title><link rel="stylesheet" href="docbook-xsl.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.69.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id189136"></a>Git User's Manual (for version 1.5.3 or newer)</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#id264725">Preface</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-with-git-fetch">Updating a repository with git-fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-comments-with-given-content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-with-git">3. Developing with git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-with-git-pull">Getting updates with git-pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a git repository via the git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via http</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git-rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-with-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git-fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#id280263">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory -> index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index -> object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database -> index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index -> working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git's source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. GIT Glossary</a></span></dt><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt></dl></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id264725"></a>Preface</h2></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
-command-line skills, but no previous knowledge of git.</p><p><a href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a> and <a href="#exploring-git-history" title="Chapter 2. Exploring git history">Chapter 2, <i>Exploring git history</i></a> explain how
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User's Manual (for version 1.5.3 or newer)</title><link rel="stylesheet" href="docbook-xsl.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id450364"></a>Git User's Manual (for version 1.5.3 or newer)</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#id482845">Preface</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-with-git-fetch">Updating a repository with git-fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-comments-with-given-content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-with-git">3. Developing with git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-with-git-pull">Getting updates with git-pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a git repository via the git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via http</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git-rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-with-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git-fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory -> index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index -> object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database -> index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index -> working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git's source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. GIT Glossary</a></span></dt><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt></dl></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id482845"></a>Preface</h2></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
+command-line skills, but no previous knowledge of git.</p><p><a class="xref" href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a> and <a class="xref" href="#exploring-git-history" title="Chapter 2. Exploring git history">Chapter 2, <i>Exploring git history</i></a> explain how
to fetch and study a project using git—read these chapters to learn how
to build and test a particular version of a software project, search for
regressions, and so on.</p><p>People needing to do actual development will also want to read
-<a href="#Developing-with-git" title="Chapter 3. Developing with git">Chapter 3, <i>Developing with git</i></a> and <a href="#sharing-development" title="Chapter 4. Sharing development with others">Chapter 4, <i>Sharing development with others</i></a>.</p><p>Further chapters cover more specialized topics.</p><p>Comprehensive reference documentation is available through the man
-pages. For a command such as "git clone <repo>", just use</p><div class="literallayout"><p>$ man git-clone</p></div><p>See also <a href="#git-quick-start" title="Appendix A. Git Quick Reference">Appendix A, <i>Git Quick Reference</i></a> for a brief overview of git commands,
-without any explanation.</p><p>Finally, see <a href="#todo" title="Appendix B. Notes and todo list for this manual">Appendix B, <i>Notes and todo list for this manual</i></a> for ways that you can help make this manual more
+<a class="xref" href="#Developing-with-git" title="Chapter 3. Developing with git">Chapter 3, <i>Developing with git</i></a> and <a class="xref" href="#sharing-development" title="Chapter 4. Sharing development with others">Chapter 4, <i>Sharing development with others</i></a>.</p><p>Further chapters cover more specialized topics.</p><p>Comprehensive reference documentation is available through the man
+pages. For a command such as "git clone <repo>", just use</p><div class="literallayout"><p>$ man git-clone</p></div><p>See also <a class="xref" href="#git-quick-start" title="Appendix A. Git Quick Reference">Appendix A, <i>Git Quick Reference</i></a> for a brief overview of git commands,
+without any explanation.</p><p>Finally, see <a class="xref" href="#todo" title="Appendix B. Notes and todo list for this manual">Appendix B, <i>Notes and todo list for this manual</i></a> for ways that you can help make this manual more
complete.</p></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="repositories-and-branches"></a>Chapter 1. Repositories and Branches</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-with-git-fetch">Updating a repository with git-fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="how-to-get-a-git-repository"></a>How to get a git repository</h2></div></div></div><p>It will be useful to have a git repository to experiment with as you
-read this manual.</p><p>The best way to get one is by using the <a href="git-clone.html" target="_top">git-clone(1)</a> command to
+read this manual.</p><p>The best way to get one is by using the <a class="ulink" href="git-clone.html" target="_top">git-clone(1)</a> command to
download a copy of an existing repository. If you don't already have a
project in mind, here are some interesting examples:</p><div class="literallayout"><p> # git itself (approx. 10MB download):<br>
$ git clone git://git.kernel.org/pub/scm/git/git.git<br>
will only need to clone once.</p><p>The clone command creates a new directory named after the project ("git"
or "linux-2.6" in the examples above). After you cd into this
directory, you will see that it contains a copy of the project files,
-called the <a href="#def_working_tree">working tree</a>, together with a special
+called the <a class="link" href="#def_working_tree">working tree</a>, together with a special
top-level directory named ".git", which contains all the information
about the history of the project.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="how-to-check-out"></a>How to check out a different version of a project</h2></div></div></div><p>Git is best thought of as a tool for storing the history of a collection
of files. It stores the history as a compressed collection of
interrelated snapshots of the project's contents. In git each such
-version is called a <a href="#def_commit">commit</a>.</p><p>Those snapshots aren't necessarily all arranged in a single line from
+version is called a <a class="link" href="#def_commit">commit</a>.</p><p>Those snapshots aren't necessarily all arranged in a single line from
oldest to newest; instead, work may simultaneously proceed along
-parallel lines of development, called <a href="#def_branch">branches</a>, which may
+parallel lines of development, called <a class="link" href="#def_branch">branches</a>, which may
merge and diverge.</p><p>A single git repository can track development on multiple branches. It
-does this by keeping a list of <a href="#def_head">heads</a> which reference the
-latest commit on each branch; the <a href="git-branch.html" target="_top">git-branch(1)</a> command shows
+does this by keeping a list of <a class="link" href="#def_head">heads</a> which reference the
+latest commit on each branch; the <a class="ulink" href="git-branch.html" target="_top">git-branch(1)</a> command shows
you the list of branch heads:</p><div class="literallayout"><p>$ git branch<br>
* master</p></div><p>A freshly cloned repository contains a single branch head, by default
named "master", with the working directory initialized to the state of
-the project referred to by that branch head.</p><p>Most projects also use <a href="#def_tag">tags</a>. Tags, like heads, are
+the project referred to by that branch head.</p><p>Most projects also use <a class="link" href="#def_tag">tags</a>. Tags, like heads, are
references into the project's history, and can be listed using the
-<a href="git-tag.html" target="_top">git-tag(1)</a> command:</p><div class="literallayout"><p>$ git tag -l<br>
+<a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> command:</p><div class="literallayout"><p>$ git tag -l<br>
v2.6.11<br>
v2.6.11-tree<br>
v2.6.12<br>
v2.6.13<br>
...</p></div><p>Tags are expected to always point at the same version of a project,
while heads are expected to advance as development progresses.</p><p>Create a new branch head pointing to one of these versions and check it
-out using <a href="git-checkout.html" target="_top">git-checkout(1)</a>:</p><div class="literallayout"><p>$ git checkout -b new v2.6.13</p></div><p>The working directory then reflects the contents that the project had
-when it was tagged v2.6.13, and <a href="git-branch.html" target="_top">git-branch(1)</a> shows two
+out using <a class="ulink" href="git-checkout.html" target="_top">git-checkout(1)</a>:</p><div class="literallayout"><p>$ git checkout -b new v2.6.13</p></div><p>The working directory then reflects the contents that the project had
+when it was tagged v2.6.13, and <a class="ulink" href="git-branch.html" target="_top">git-branch(1)</a> shows two
branches, with an asterisk marking the currently checked-out branch:</p><div class="literallayout"><p>$ git branch<br>
master<br>
* new</p></div><p>If you decide that you'd rather see version 2.6.17, you can modify
particular point in history, then resetting that branch may leave you
with no way to find the history it used to point to; so use this command
carefully.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="understanding-commits"></a>Understanding History: Commits</h2></div></div></div><p>Every change in the history of a project is represented by a commit.
-The <a href="git-show.html" target="_top">git-show(1)</a> command shows the most recent commit on the
+The <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> command shows the most recent commit on the
current branch:</p><div class="literallayout"><p>$ git show<br>
commit 17cf781661e6d38f737f15f53ab552f1e95960d7<br>
Author: Linus Torvalds <torvalds@ppc970.osdl.org.(none)><br>
commit in their repository that it does in yours (assuming their repository
has that commit at all). Since the object name is computed as a hash over the
contents of the commit, you are guaranteed that the commit can never change
-without its name also changing.</p><p>In fact, in <a href="#git-concepts" title="Chapter 7. Git concepts">Chapter 7, <i>Git concepts</i></a> we shall see that everything stored in git
+without its name also changing.</p><p>In fact, in <a class="xref" href="#git-concepts" title="Chapter 7. Git concepts">Chapter 7, <i>Git concepts</i></a> we shall see that everything stored in git
history, including file data and directory contents, is stored in an object
with a name that is a hash of its contents.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="understanding-reachability"></a>Understanding history: commits, parents, and reachability</h3></div></div></div><p>Every commit (except the very first commit in a project) also has a
parent commit which shows what happened before this commit.
lines of development reconverge is called a "merge". The commit
representing a merge can therefore have more than one parent, with
each parent representing the most recent commit on one of the lines
-of development leading to that point.</p><p>The best way to see how this works is using the <a href="gitk.html" target="_top">gitk(1)</a>
+of development leading to that point.</p><p>The best way to see how this works is using the <a class="ulink" href="gitk.html" target="_top">gitk(1)</a>
command; running gitk now on a git repository and looking for merge
commits will help understand how the git organizes history.</p><p>In the following, we say that commit X is "reachable" from commit Y
if commit X is an ancestor of commit Y. Equivalently, you could say
of the HEAD in the repository that you cloned from. That repository
may also have had other branches, though, and your local repository
keeps branches which track each of those remote branches, which you
-can view using the "-r" option to <a href="git-branch.html" target="_top">git-branch(1)</a>:</p><div class="literallayout"><p>$ git branch -r<br>
+can view using the "-r" option to <a class="ulink" href="git-branch.html" target="_top">git-branch(1)</a>:</p><div class="literallayout"><p>$ git branch -r<br>
origin/HEAD<br>
origin/html<br>
origin/maint<br>
exists a tag and a branch with the same name.</p><p>(Newly created refs are actually stored in the .git/refs directory,
under the path given by their name. However, for efficiency reasons
they may also be packed together in a single file; see
-<a href="git-pack-refs.html" target="_top">git-pack-refs(1)</a>).</p><p>As another useful shortcut, the "HEAD" of a repository can be referred
+<a class="ulink" href="git-pack-refs.html" target="_top">git-pack-refs(1)</a>).</p><p>As another useful shortcut, the "HEAD" of a repository can be referred
to just using the name of that repository. So, for example, "origin"
is usually a shortcut for the HEAD branch in the repository "origin".</p><p>For the complete list of paths which git checks for references, and
the order it uses to decide which to choose when there are multiple
references with the same shorthand name, see the "SPECIFYING
-REVISIONS" section of <a href="git-rev-parse.html" target="_top">git-rev-parse(1)</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Updating-a-repository-with-git-fetch"></a>Updating a repository with git-fetch</h2></div></div></div><p>Eventually the developer cloned from will do additional work in her
+REVISIONS" section of <a class="ulink" href="git-rev-parse.html" target="_top">git-rev-parse(1)</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Updating-a-repository-with-git-fetch"></a>Updating a repository with git-fetch</h2></div></div></div><p>Eventually the developer cloned from will do additional work in her
repository, creating new commits and advancing the branches to point
at the new commits.</p><p>The command "git fetch", with no arguments, will update all of the
remote-tracking branches to the latest version found in her
repository. It will not touch any of your own branches—not even the
"master" branch that was created for you on clone.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="fetching-branches"></a>Fetching branches from other repositories</h2></div></div></div><p>You can also track branches from repositories other than the one you
-cloned from, using <a href="git-remote.html" target="_top">git-remote(1)</a>:</p><div class="literallayout"><p>$ git remote add linux-nfs git://linux-nfs.org/pub/nfs-2.6.git<br>
+cloned from, using <a class="ulink" href="git-remote.html" target="_top">git-remote(1)</a>:</p><div class="literallayout"><p>$ git remote add linux-nfs git://linux-nfs.org/pub/nfs-2.6.git<br>
$ git fetch linux-nfs<br>
* refs/remotes/linux-nfs/master: storing branch 'master' ...<br>
commit: bf81b46</p></div><p>New remote-tracking branches will be stored under the shorthand name
...</p></div><p>This is what causes git to track the remote's branches; you may modify
or delete these configuration options by editing .git/config with a
text editor. (See the "CONFIGURATION FILE" section of
-<a href="git-config.html" target="_top">git-config(1)</a> for details.)</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="exploring-git-history"></a>Chapter 2. Exploring git history</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-comments-with-given-content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></div><p>Git is best thought of as a tool for storing the history of a
+<a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for details.)</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="exploring-git-history"></a>Chapter 2. Exploring git history</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-comments-with-given-content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></div><p>Git is best thought of as a tool for storing the history of a
collection of files. It does this by storing compressed snapshots of
the contents of a file hierarchy, together with "commits" which show
the relationships between these snapshots.</p><p>Git provides extremely flexible and fast tools for exploring the
"master" crashes. Sometimes the best way to find the cause of such a
regression is to perform a brute-force search through the project's
history to find the particular commit that caused the problem. The
-<a href="git-bisect.html" target="_top">git-bisect(1)</a> command can help you do this:</p><div class="literallayout"><p>$ git bisect start<br>
+<a class="ulink" href="git-bisect.html" target="_top">git-bisect(1)</a> command can help you do this:</p><div class="literallayout"><p>$ git bisect start<br>
$ git bisect good v2.6.18<br>
$ git bisect bad master<br>
Bisecting: 3537 revisions left to test after this<br>
that the number of revisions left to test is cut approximately in
half each time.</p><p>After about 13 tests (in this case), it will output the commit id of
the guilty commit. You can then examine the commit with
-<a href="git-show.html" target="_top">git-show(1)</a>, find out who wrote it, and mail them your bug
+<a class="ulink" href="git-show.html" target="_top">git-show(1)</a>, find out who wrote it, and mail them your bug
report with the commit id. Finally, run</p><div class="literallayout"><p>$ git bisect reset</p></div><p>to return you to the branch you were on before and delete the
temporary "bisect" branch.</p><p>Note that the version which git-bisect checks out for you at each
point is just a suggestion, and you're free to try a different
</li><li>
tag name: refers to the commit pointed to by the given tag
(we've seen branches and tags are special cases of
- <a href="#how-git-stores-references" title="Naming branches, tags, and other references">references</a>).
+ <a class="link" href="#how-git-stores-references" title="Naming branches, tags, and other references">references</a>).
</li><li>
HEAD: refers to the head of the current branch
</li></ul></div><p>There are many more; see the "SPECIFYING REVISIONS" section of the
-<a href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> man page for the complete list of ways to
+<a class="ulink" href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> man page for the complete list of ways to
name revisions. Some examples:</p><div class="literallayout"><p>$ git show fb47ddb2 # the first few characters of the object name<br>
# are usually enough to specify it uniquely<br>
$ git show HEAD^ # the parent of the HEAD commit<br>
branch in FETCH_HEAD. For example, if you run git fetch without
specifying a local branch as the target of the operation</p><div class="literallayout"><p>$ git fetch git://example.com/proj.git theirbranch</p></div><p>the fetched commits will still be available from FETCH_HEAD.</p><p>When we discuss merges we'll also see the special name MERGE_HEAD,
which refers to the other branch that we're merging in to the current
-branch.</p><p>The <a href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> command is a low-level command that is
+branch.</p><p>The <a class="ulink" href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> command is a low-level command that is
occasionally useful for translating some name for a commit to the object
name for that commit:</p><div class="literallayout"><p>$ git rev-parse origin<br>
e05db0fd4f31dde7005f075a84f96b360d05984b</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-tags"></a>Creating tags</h2></div></div></div><p>We can also create a tag to refer to a particular commit; after
running</p><div class="literallayout"><p>$ git tag stable-1 1b2e1d63ff</p></div><p>You can use stable-1 to refer to the commit 1b2e1d63ff.</p><p>This creates a "lightweight" tag. If you would also like to include a
comment with the tag, and possibly sign it cryptographically, then you
-should create a tag object instead; see the <a href="git-tag.html" target="_top">git-tag(1)</a> man page
-for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="browsing-revisions"></a>Browsing revisions</h2></div></div></div><p>The <a href="git-log.html" target="_top">git-log(1)</a> command can show lists of commits. On its
+should create a tag object instead; see the <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> man page
+for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="browsing-revisions"></a>Browsing revisions</h2></div></div></div><p>The <a class="ulink" href="git-log.html" target="_top">git-log(1)</a> command can show lists of commits. On its
own, it shows all commits reachable from the parent commit; but you
can also make more specific requests:</p><div class="literallayout"><p>$ git log v2.5.. # commits since (not reachable from) v2.5<br>
$ git log test..master # commits reachable from master but not test<br>
$ git log fs/ # ... which modify any file under fs/<br>
$ git log -S'foo()' # commits which add or remove any file data<br>
# matching the string 'foo()'</p></div><p>And of course you can combine all of these; the following finds
-commits since v2.5 which touch the Makefile or any file under fs:</p><div class="literallayout"><p>$ git log v2.5.. Makefile fs/</p></div><p>You can also ask git log to show patches:</p><div class="literallayout"><p>$ git log -p</p></div><p>See the "—pretty" option in the <a href="git-log.html" target="_top">git-log(1)</a> man page for more
+commits since v2.5 which touch the Makefile or any file under fs:</p><div class="literallayout"><p>$ git log v2.5.. Makefile fs/</p></div><p>You can also ask git log to show patches:</p><div class="literallayout"><p>$ git log -p</p></div><p>See the "—pretty" option in the <a class="ulink" href="git-log.html" target="_top">git-log(1)</a> man page for more
display options.</p><p>Note that git log starts with the most recent commit and works
backwards through the parents; however, since git history can contain
multiple independent lines of development, the particular order that
commits are listed in may be somewhat arbitrary.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="generating-diffs"></a>Generating diffs</h2></div></div></div><p>You can generate diffs between any two versions using
-<a href="git-diff.html" target="_top">git-diff(1)</a>:</p><div class="literallayout"><p>$ git diff master..test</p></div><p>That will produce the diff between the tips of the two branches. If
+<a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a>:</p><div class="literallayout"><p>$ git diff master..test</p></div><p>That will produce the diff between the tips of the two branches. If
you'd prefer to find the diff from their common ancestor to test, you
can use three dots instead of two:</p><div class="literallayout"><p>$ git diff master...test</p></div><p>Sometimes what you want instead is a set of patches; for this you can
-use <a href="git-format-patch.html" target="_top">git-format-patch(1)</a>:</p><div class="literallayout"><p>$ git format-patch master..test</p></div><p>will generate a file with a patch for each commit reachable from test
+use <a class="ulink" href="git-format-patch.html" target="_top">git-format-patch(1)</a>:</p><div class="literallayout"><p>$ git format-patch master..test</p></div><p>will generate a file with a patch for each commit reachable from test
but not from master.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="viewing-old-file-versions"></a>Viewing old file versions</h2></div></div></div><p>You can always view an old version of a file by just checking out the
correct revision first. But sometimes it is more convenient to be
able to view an old version of a single file without checking
anything out; this command does that:</p><div class="literallayout"><p>$ git show v2.5:fs/locks.c</p></div><p>Before the colon may be anything that names a commit, and after it
may be any path to a file tracked by git.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="history-examples"></a>Examples</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="counting-commits-on-a-branch"></a>Counting the number of commits on a branch</h3></div></div></div><p>Suppose you want to know how many commits you've made on "mybranch"
since it diverged from "origin":</p><div class="literallayout"><p>$ git log --pretty=oneline origin..mybranch | wc -l</p></div><p>Alternatively, you may often see this sort of thing done with the
-lower-level command <a href="git-rev-list.html" target="_top">git-rev-list(1)</a>, which just lists the SHA1's
+lower-level command <a class="ulink" href="git-rev-list.html" target="_top">git-rev-list(1)</a>, which just lists the SHA1's
of all the given commits:</p><div class="literallayout"><p>$ git rev-list origin..mybranch | wc -l</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="checking-for-equal-branches"></a>Check whether two branches point at the same history</h3></div></div></div><p>Suppose you want to check whether two branches point at the same point
in history.</p><div class="literallayout"><p>$ git diff origin..master</p></div><p>will tell you whether the contents of the project are the same at the
two branches; in theory, however, it's possible that the same project
You'd like to find the earliest tagged release that contains that
fix.</p><p>Of course, there may be more than one answer—if the history branched
after commit e05db0fd, then there could be multiple "earliest" tagged
-releases.</p><p>You could just visually inspect the commits since e05db0fd:</p><div class="literallayout"><p>$ gitk e05db0fd..</p></div><p>Or you can use <a href="git-name-rev.html" target="_top">git-name-rev(1)</a>, which will give the commit a
+releases.</p><p>You could just visually inspect the commits since e05db0fd:</p><div class="literallayout"><p>$ gitk e05db0fd..</p></div><p>Or you can use <a class="ulink" href="git-name-rev.html" target="_top">git-name-rev(1)</a>, which will give the commit a
name based on any tag it finds pointing to one of the commit's
descendants:</p><div class="literallayout"><p>$ git name-rev --tags e05db0fd<br>
-e05db0fd tags/v1.5.0-rc1^0~23</p></div><p>The <a href="git-describe.html" target="_top">git-describe(1)</a> command does the opposite, naming the
+e05db0fd tags/v1.5.0-rc1^0~23</p></div><p>The <a class="ulink" href="git-describe.html" target="_top">git-describe(1)</a> command does the opposite, naming the
revision using a tag on which the given commit is based:</p><div class="literallayout"><p>$ git describe e05db0fd<br>
v1.5.0-rc0-260-ge05db0f</p></div><p>but that may sometimes help you guess which tags might come after the
given commit.</p><p>If you just want to verify whether a given tagged version contains a
-given commit, you could use <a href="git-merge-base.html" target="_top">git-merge-base(1)</a>:</p><div class="literallayout"><p>$ git merge-base e05db0fd v1.5.0-rc1<br>
+given commit, you could use <a class="ulink" href="git-merge-base.html" target="_top">git-merge-base(1)</a>:</p><div class="literallayout"><p>$ git merge-base e05db0fd v1.5.0-rc1<br>
e05db0fd4f31dde7005f075a84f96b360d05984b</p></div><p>The merge-base command finds a common ancestor of the given commits,
and always returns one or the other in the case where one is a
descendant of the other; so the above output shows that e05db0fd
actually is an ancestor of v1.5.0-rc1.</p><p>Alternatively, note that</p><div class="literallayout"><p>$ git log v1.5.0-rc1..e05db0fd</p></div><p>will produce empty output if and only if v1.5.0-rc1 includes e05db0fd,
-because it outputs only commits that are not reachable from v1.5.0-rc1.</p><p>As yet another alternative, the <a href="git-show-branch.html" target="_top">git-show-branch(1)</a> command lists
+because it outputs only commits that are not reachable from v1.5.0-rc1.</p><p>As yet another alternative, the <a class="ulink" href="git-show-branch.html" target="_top">git-show-branch(1)</a> command lists
the commits reachable from its arguments with a display on the left-hand
side that indicates which arguments that commit is reachable from. So,
you can run something like</p><div class="literallayout"><p>$ git show-branch e05db0fd v1.5.0-rc0 v1.5.0-rc1 v1.5.0-rc2<br>
available</p></div><p>Which shows that e05db0fd is reachable from itself, from v1.5.0-rc1, and
from v1.5.0-rc2, but not from v1.5.0-rc0.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="showing-commits-unique-to-a-branch"></a>Showing commits unique to a given branch</h3></div></div></div><p>Suppose you would like to see all the commits reachable from the branch
head named "master" but not from any other head in your repository.</p><p>We can list all the heads in this repository with
-<a href="git-show-ref.html" target="_top">git-show-ref(1)</a>:</p><div class="literallayout"><p>$ git show-ref --heads<br>
+<a class="ulink" href="git-show-ref.html" target="_top">git-show-ref(1)</a>:</p><div class="literallayout"><p>$ git show-ref --heads<br>
bf62196b5e363d73353a9dcf094c59595f3153b7 refs/heads/core-tutorial<br>
db768d5504c1bb46f63ee9d6e1772bd047e05bf9 refs/heads/maint<br>
a07157ac624b2524a059a3414e99f6f44bebc1e7 refs/heads/master<br>
refs/heads/tutorial-fixes</p></div><p>And then we can ask to see all the commits reachable from master
but not from these other heads:</p><div class="literallayout"><p>$ gitk master --not $( git show-ref --heads | cut -d' ' -f2 |<br>
grep -v '^refs/heads/master' )</p></div><p>Obviously, endless variations are possible; for example, to see all
-commits reachable from some head but not from any tag in the repository:</p><div class="literallayout"><p>$ gitk $( git show-ref --heads ) --not $( git show-ref --tags )</p></div><p>(See <a href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> for explanations of commit-selecting
-syntax such as <code class="literal">—not</code>.)</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="making-a-release"></a>Creating a changelog and tarball for a software release</h3></div></div></div><p>The <a href="git-archive.html" target="_top">git-archive(1)</a> command can create a tar or zip archive from
+commits reachable from some head but not from any tag in the repository:</p><div class="literallayout"><p>$ gitk $( git show-ref --heads ) --not $( git show-ref --tags )</p></div><p>(See <a class="ulink" href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> for explanations of commit-selecting
+syntax such as <code class="literal">—not</code>.)</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="making-a-release"></a>Creating a changelog and tarball for a software release</h3></div></div></div><p>The <a class="ulink" href="git-archive.html" target="_top">git-archive(1)</a> command can create a tar or zip archive from
any version of a project; for example:</p><div class="literallayout"><p>$ git archive --format=tar --prefix=project/ HEAD | gzip >latest.tar.gz</p></div><p>will use HEAD to produce a tar archive in which each filename is
preceded by "project/".</p><p>If you're releasing a new version of a software project, you may want
to simultaneously make a changelog to include in the release
file such that it contained the given content either before or after the
commit. You can find out with this:</p><div class="literallayout"><p>$ git log --raw --abbrev=40 --pretty=oneline |<br>
grep -B 1 `git hash-object filename`</p></div><p>Figuring out why this works is left as an exercise to the (advanced)
-student. The <a href="git-log.html" target="_top">git-log(1)</a>, <a href="git-diff-tree.html" target="_top">git-diff-tree(1)</a>, and
-<a href="git-hash-object.html" target="_top">git-hash-object(1)</a> man pages may prove helpful.</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="Developing-with-git"></a>Chapter 3. Developing with git</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#telling-git-your-name">Telling git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="telling-git-your-name"></a>Telling git your name</h2></div></div></div><p>Before creating any commits, you should introduce yourself to git. The
+student. The <a class="ulink" href="git-log.html" target="_top">git-log(1)</a>, <a class="ulink" href="git-diff-tree.html" target="_top">git-diff-tree(1)</a>, and
+<a class="ulink" href="git-hash-object.html" target="_top">git-hash-object(1)</a> man pages may prove helpful.</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="Developing-with-git"></a>Chapter 3. Developing with git</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#telling-git-your-name">Telling git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="telling-git-your-name"></a>Telling git your name</h2></div></div></div><p>Before creating any commits, you should introduce yourself to git. The
easiest way to do so is to make sure the following lines appear in a
file named .gitconfig in your home directory:</p><div class="literallayout"><p>[user]<br>
name = Your Name Comes Here<br>
- email = you@yourdomain.example.com</p></div><p>(See the "CONFIGURATION FILE" section of <a href="git-config.html" target="_top">git-config(1)</a> for
+ email = you@yourdomain.example.com</p></div><p>(See the "CONFIGURATION FILE" section of <a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for
details on the configuration file.)</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-a-new-repository"></a>Creating a new repository</h2></div></div></div><p>Creating a new repository from scratch is very easy:</p><div class="literallayout"><p>$ mkdir project<br>
$ cd project<br>
$ git init</p></div><p>If you have some initial content (say, a tarball):</p><div class="literallayout"><p>$ tar -xzvf project.tar.gz<br>
# be included if you ran "commit" now.<br>
$ git diff HEAD # difference between HEAD and working tree; what<br>
# would be committed if you ran "commit -a" now.<br>
-$ git status # a brief per-file summary of the above.</p></div><p>You can also use <a href="git-gui.html" target="_top">git-gui(1)</a> to create commits, view changes in
+$ git status # a brief per-file summary of the above.</p></div><p>You can also use <a class="ulink" href="git-gui.html" target="_top">git-gui(1)</a> to create commits, view changes in
the index and the working tree files, and individually select diff hunks
for inclusion in the index (by right-clicking on the diff hunk and
choosing "Stage Hunk For Commit").</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-good-commit-messages"></a>Creating good commit messages</h2></div></div></div><p>Though not required, it's a good idea to begin the commit message
# except foo.html which is maintained by hand.<br>
!foo.html<br>
# Ignore objects and archives.<br>
-*.[oa]</p></div><p>See <a href="gitignore.html" target="_top">gitignore(5)</a> for a detailed explanation of the syntax. You can
+*.[oa]</p></div><p>See <a class="ulink" href="gitignore.html" target="_top">gitignore(5)</a> for a detailed explanation of the syntax. You can
also place .gitignore files in other directories in your working tree, and they
will apply to those directories and their subdirectories. The <code class="literal">.gitignore</code>
files can be added to your repository like any other files (just run <code class="literal">git add
them in a file in your repository named .git/info/exclude, or in any file
specified by the <code class="literal">core.excludesfile</code> configuration variable. Some git
commands can also take exclude patterns directly on the command line.
-See <a href="gitignore.html" target="_top">gitignore(5)</a> for the details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="how-to-merge"></a>How to merge</h2></div></div></div><p>You can rejoin two diverging branches of development using
-<a href="git-merge.html" target="_top">git-merge(1)</a>:</p><div class="literallayout"><p>$ git merge branchname</p></div><p>merges the development in the branch "branchname" into the current
+See <a class="ulink" href="gitignore.html" target="_top">gitignore(5)</a> for the details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="how-to-merge"></a>How to merge</h2></div></div></div><p>You can rejoin two diverging branches of development using
+<a class="ulink" href="git-merge.html" target="_top">git-merge(1)</a>:</p><div class="literallayout"><p>$ git merge branchname</p></div><p>merges the development in the branch "branchname" into the current
branch. If there are conflicts—for example, if the same file is
modified in two different ways in the remote branch and the local
branch—then you are warned; the output may look something like this:</p><div class="literallayout"><p>$ git merge next<br>
one to the top of the other branch.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="resolving-a-merge"></a>Resolving a merge</h2></div></div></div><p>When a merge isn't resolved automatically, git leaves the index and
the working tree in a special state that gives you all the
information you need to help resolve the merge.</p><p>Files with conflicts are marked specially in the index, so until you
-resolve the problem and update the index, <a href="git-commit.html" target="_top">git-commit(1)</a> will
+resolve the problem and update the index, <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a> will
fail:</p><div class="literallayout"><p>$ git commit<br>
-file.txt: needs merge</p></div><p>Also, <a href="git-status.html" target="_top">git-status(1)</a> will list those files as "unmerged", and the
+file.txt: needs merge</p></div><p>Also, <a class="ulink" href="git-status.html" target="_top">git-status(1)</a> will list those files as "unmerged", and the
files with conflicts will have conflict markers added, like this:</p><div class="literallayout"><p><<<<<<< HEAD:file.txt<br>
Hello world<br>
=======<br>
default message unchanged, but you may add additional commentary of
your own if desired.</p><p>The above is all you need to know to resolve a simple merge. But git
also provides more information to help resolve conflicts:</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="conflict-resolution"></a>Getting conflict-resolution help during a merge</h3></div></div></div><p>All of the changes that git was able to merge automatically are
-already added to the index file, so <a href="git-diff.html" target="_top">git-diff(1)</a> shows only
+already added to the index file, so <a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a> shows only
the conflicts. It uses an unusual syntax:</p><div class="literallayout"><p>$ git diff<br>
diff --cc file.txt<br>
index 802992c,2b60207..0000000<br>
tip of the other branch, which is stored temporarily in MERGE_HEAD.</p><p>During the merge, the index holds three versions of each file. Each of
these three "file stages" represents a different version of the file:</p><div class="literallayout"><p>$ git show :1:file.txt # the file in a common ancestor of both branches<br>
$ git show :2:file.txt # the version from HEAD.<br>
-$ git show :3:file.txt # the version from MERGE_HEAD.</p></div><p>When you ask <a href="git-diff.html" target="_top">git-diff(1)</a> to show the conflicts, it runs a
+$ git show :3:file.txt # the version from MERGE_HEAD.</p></div><p>When you ask <a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a> to show the conflicts, it runs a
three-way diff between the conflicted merge results in the work tree with
stages 2 and 3 to show only hunks whose contents come from both sides,
mixed (in other words, when a hunk's merge results come only from stage 2,
column is used for differences between the first parent and the working
directory copy, and the second for differences between the second parent
and the working directory copy. (See the "COMBINED DIFF FORMAT" section
-of <a href="git-diff-files.html" target="_top">git-diff-files(1)</a> for a details of the format.)</p><p>After resolving the conflict in the obvious way (but before updating the
+of <a class="ulink" href="git-diff-files.html" target="_top">git-diff-files(1)</a> for a details of the format.)</p><p>After resolving the conflict in the obvious way (but before updating the
index), the diff will look like:</p><div class="literallayout"><p>$ git diff<br>
diff --cc file.txt<br>
index 802992c,2b60207..0000000<br>
$ git diff -2 file.txt # diff against stage 2<br>
$ git diff --ours file.txt # same as the above<br>
$ git diff -3 file.txt # diff against stage 3<br>
-$ git diff --theirs file.txt # same as the above.</p></div><p>The <a href="git-log.html" target="_top">git-log(1)</a> and gitk[1] commands also provide special help
+$ git diff --theirs file.txt # same as the above.</p></div><p>The <a class="ulink" href="git-log.html" target="_top">git-log(1)</a> and <a class="ulink" href="gitk.html" target="_top">gitk(1)</a> commands also provide special help
for merges:</p><div class="literallayout"><p>$ git log --merge<br>
$ gitk --merge</p></div><p>These will display all commits which exist only on HEAD or on
-MERGE_HEAD, and which touch an unmerged file.</p><p>You may also use <a href="git-mergetool.html" target="_top">git-mergetool(1)</a>, which lets you merge the
+MERGE_HEAD, and which touch an unmerged file.</p><p>You may also use <a class="ulink" href="git-mergetool.html" target="_top">git-mergetool(1)</a>, which lets you merge the
unmerged files using external tools such as emacs or kdiff3.</p><p>Each time you resolve the conflicts in a file and update the index:</p><div class="literallayout"><p>$ git add file.txt</p></div><p>the different stages of that file will be "collapsed", after which
git-diff will (by default) no longer show diffs for that file.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="undoing-a-merge"></a>Undoing a merge</h2></div></div></div><p>If you get stuck and decide to just give up and throw the whole mess
away, you can always return to the pre-merge state with</p><div class="literallayout"><p>$ git reset --hard HEAD</p></div><p>Or, if you've already committed the merge that you want to throw away,</p><div class="literallayout"><p>$ git reset --hard ORIG_HEAD</p></div><p>However, this last command can be dangerous in some cases—never
change, and cannot correctly perform repeated merges from
a branch that has had its history changed.
</li></ol></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="reverting-a-commit"></a>Fixing a mistake with a new commit</h3></div></div></div><p>Creating a new commit that reverts an earlier change is very easy;
-just pass the <a href="git-revert.html" target="_top">git-revert(1)</a> command a reference to the bad
+just pass the <a class="ulink" href="git-revert.html" target="_top">git-revert(1)</a> command a reference to the bad
commit; for example, to revert the most recent commit:</p><div class="literallayout"><p>$ git revert HEAD</p></div><p>This will create a new commit which undoes the change in HEAD. You
will be given a chance to edit the commit message for the new commit.</p><p>You can also revert an earlier change, for example, the next-to-last:</p><div class="literallayout"><p>$ git revert HEAD^</p></div><p>In this case git will attempt to undo the old change while leaving
intact any changes made since then. If more recent changes overlap
with the changes to be reverted, then you will be asked to fix
-conflicts manually, just as in the case of <a href="#resolving-a-merge" title="Resolving a merge">resolving a merge</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="fixing-a-mistake-by-rewriting-history"></a>Fixing a mistake by rewriting history</h3></div></div></div><p>If the problematic commit is the most recent commit, and you have not
+conflicts manually, just as in the case of <a class="link" href="#resolving-a-merge" title="Resolving a merge">resolving a merge</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="fixing-a-mistake-by-rewriting-history"></a>Fixing a mistake by rewriting history</h3></div></div></div><p>If the problematic commit is the most recent commit, and you have not
yet made that commit public, then you may just
-<a href="#undoing-a-merge" title="Undoing a merge">destroy it using git-reset</a>.</p><p>Alternatively, you
+<a class="link" href="#undoing-a-merge" title="Undoing a merge">destroy it using git-reset</a>.</p><p>Alternatively, you
can edit the working directory and update the index to fix your
-mistake, just as if you were going to <a href="#how-to-make-a-commit" title="How to make a commit">create a new commit</a>, then run</p><div class="literallayout"><p>$ git commit --amend</p></div><p>which will replace the old commit by a new commit incorporating your
+mistake, just as if you were going to <a class="link" href="#how-to-make-a-commit" title="How to make a commit">create a new commit</a>, then run</p><div class="literallayout"><p>$ git commit --amend</p></div><p>which will replace the old commit by a new commit incorporating your
changes, giving you a chance to edit the old commit message first.</p><p>Again, you should never do this to a commit that may already have
-been merged into another branch; use <a href="git-revert.html" target="_top">git-revert(1)</a> instead in
+been merged into another branch; use <a class="ulink" href="git-revert.html" target="_top">git-revert(1)</a> instead in
that case.</p><p>It is also possible to replace commits further back in the history, but
this is an advanced topic to be left for
-<a href="#cleaning-up-history" title="Chapter 5. Rewriting history and maintaining patch series">another chapter</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="checkout-of-path"></a>Checking out an old version of a file</h3></div></div></div><p>In the process of undoing a previous bad change, you may find it
+<a class="link" href="#cleaning-up-history" title="Chapter 5. Rewriting history and maintaining patch series">another chapter</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="checkout-of-path"></a>Checking out an old version of a file</h3></div></div></div><p>In the process of undoing a previous bad change, you may find it
useful to check out an older version of a particular file using
-<a href="git-checkout.html" target="_top">git-checkout(1)</a>. We've used git-checkout before to switch
+<a class="ulink" href="git-checkout.html" target="_top">git-checkout(1)</a>. We've used git-checkout before to switch
branches, but it has quite different behavior if it is given a path
name: the command</p><div class="literallayout"><p>$ git checkout HEAD^ path/to/file</p></div><p>replaces path/to/file by the contents it had in the commit HEAD^, and
also updates the index to match. It does not change branches.</p><p>If you just want to look at an old version of the file, without
modifying the working directory, you can do that with
-<a href="git-show.html" target="_top">git-show(1)</a>:</p><div class="literallayout"><p>$ git show HEAD^:path/to/file</p></div><p>which will display the given version of the file.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="interrupted-work"></a>Temporarily setting aside work in progress</h3></div></div></div><p>While you are in the middle of working on something complicated, you
+<a class="ulink" href="git-show.html" target="_top">git-show(1)</a>:</p><div class="literallayout"><p>$ git show HEAD^:path/to/file</p></div><p>which will display the given version of the file.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="interrupted-work"></a>Temporarily setting aside work in progress</h3></div></div></div><p>While you are in the middle of working on something complicated, you
find an unrelated but obvious and trivial bug. You would like to fix it
-before continuing. You can use <a href="git-stash.html" target="_top">git-stash(1)</a> to save the current
+before continuing. You can use <a class="ulink" href="git-stash.html" target="_top">git-stash(1)</a> to save the current
state of your work, and after fixing the bug (or, optionally after doing
so on a different branch and then coming back), unstash the
work-in-progress changes.</p><div class="literallayout"><p>$ git stash "work in progress for foo feature"</p></div><p>This command will save your changes away to the <code class="literal">stash</code>, and
$ git commit -a -m "blorpl: typofix"</p></div><p>After that, you can go back to what you were working on with
<code class="literal">git stash apply</code>:</p><div class="literallayout"><p>$ git stash apply</p></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ensuring-good-performance"></a>Ensuring good performance</h2></div></div></div><p>On large repositories, git depends on compression to keep the history
information from taking up too much space on disk or in memory.</p><p>This compression is not performed automatically. Therefore you
-should occasionally run <a href="git-gc.html" target="_top">git-gc(1)</a>:</p><div class="literallayout"><p>$ git gc</p></div><p>to recompress the archive. This can be very time-consuming, so
-you may prefer to run git-gc when you are not doing other work.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ensuring-reliability"></a>Ensuring reliability</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="checking-for-corruption"></a>Checking the repository for corruption</h3></div></div></div><p>The <a href="git-fsck.html" target="_top">git-fsck(1)</a> command runs a number of self-consistency checks
+should occasionally run <a class="ulink" href="git-gc.html" target="_top">git-gc(1)</a>:</p><div class="literallayout"><p>$ git gc</p></div><p>to recompress the archive. This can be very time-consuming, so
+you may prefer to run git-gc when you are not doing other work.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ensuring-reliability"></a>Ensuring reliability</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="checking-for-corruption"></a>Checking the repository for corruption</h3></div></div></div><p>The <a class="ulink" href="git-fsck.html" target="_top">git-fsck(1)</a> command runs a number of self-consistency checks
on the repository, and reports on any problems. This may take some
time. The most common warning by far is about "dangling" objects:</p><div class="literallayout"><p>$ git fsck<br>
dangling commit 7281251ddd2a61e38657c827739c57015671a6b3<br>
dangling tree b24c2473f1fd3d91352a624795be026d64c8841f<br>
...</p></div><p>Dangling objects are not a problem. At worst they may take up a little
extra disk space. They can sometimes provide a last-resort method for
-recovering lost work—see <a href="#dangling-objects" title="Dangling objects">the section called “Dangling objects”</a> for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="recovering-lost-changes"></a>Recovering lost changes</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="reflogs"></a>Reflogs</h4></div></div></div><p>Say you modify a branch with <code class="literal"><a href="git-reset.html" target="_top">git-reset(1)</a> —hard</code>, and then
+recovering lost work—see <a class="xref" href="#dangling-objects" title="Dangling objects">the section called “Dangling objects”</a> for details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="recovering-lost-changes"></a>Recovering lost changes</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="reflogs"></a>Reflogs</h4></div></div></div><p>Say you modify a branch with <code class="literal"><a class="ulink" href="git-reset.html" target="_top">git-reset(1)</a> —hard</code>, and then
realize that the branch was the only reference you had to that point in
history.</p><p>Fortunately, git also keeps a log, called a "reflog", of all the
previous values of each branch. So in this case you can still find the
$ git log --walk-reflogs master # show reflog entries for master</p></div><p>A separate reflog is kept for the HEAD, so</p><div class="literallayout"><p>$ git show HEAD@{"1 week ago"}</p></div><p>will show what HEAD pointed to one week ago, not what the current branch
pointed to one week ago. This allows you to see the history of what
you've checked out.</p><p>The reflogs are kept by default for 30 days, after which they may be
-pruned. See <a href="git-reflog.html" target="_top">git-reflog(1)</a> and <a href="git-gc.html" target="_top">git-gc(1)</a> to learn
+pruned. See <a class="ulink" href="git-reflog.html" target="_top">git-reflog(1)</a> and <a class="ulink" href="git-gc.html" target="_top">git-gc(1)</a> to learn
how to control this pruning, and see the "SPECIFYING REVISIONS"
-section of <a href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> for details.</p><p>Note that the reflog history is very different from normal git history.
+section of <a class="ulink" href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> for details.</p><p>Note that the reflog history is very different from normal git history.
While normal history is shared by every repository that works on the
same project, the reflog history is not shared: it tells you only about
how the branches in your local repository have changed over time.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="dangling-object-recovery"></a>Examining dangling objects</h4></div></div></div><p>In some situations the reflog may not be able to save you. For example,
contained. The reflog is also deleted; however, if you have not yet
pruned the repository, then you may still be able to find the lost
commits in the dangling objects that git-fsck reports. See
-<a href="#dangling-objects" title="Dangling objects">the section called “Dangling objects”</a> for the details.</p><div class="literallayout"><p>$ git fsck<br>
+<a class="xref" href="#dangling-objects" title="Dangling objects">the section called “Dangling objects”</a> for the details.</p><div class="literallayout"><p>$ git fsck<br>
dangling commit 7281251ddd2a61e38657c827739c57015671a6b3<br>
dangling commit 2706a059f258c6b245f298dc4ff2ccd30ec21a63<br>
dangling commit 13472b7c4b80851a1bc551779171dcb03655e9b5<br>
reference pointing to it, for example, a new branch:</p><div class="literallayout"><p>$ git branch recovered-branch 7281251ddd</p></div><p>Other types of dangling objects (blobs and trees) are also possible, and
dangling objects can arise in other situations.</p></div></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="sharing-development"></a>Chapter 4. Sharing development with others</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#getting-updates-with-git-pull">Getting updates with git-pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a git repository via the git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via http</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="getting-updates-with-git-pull"></a>Getting updates with git-pull</h2></div></div></div><p>After you clone a repository and make a few changes of your own, you
may wish to check the original repository for updates and merge them
-into your own work.</p><p>We have already seen <a href="#Updating-a-repository-with-git-fetch" title="Updating a repository with git-fetch">how to keep remote tracking branches up to date</a> with <a href="git-fetch.html" target="_top">git-fetch(1)</a>,
+into your own work.</p><p>We have already seen <a class="link" href="#Updating-a-repository-with-git-fetch" title="Updating a repository with git-fetch">how to keep remote tracking branches up to date</a> with <a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a>,
and how to merge two branches. So you can merge in changes from the
original repository's master branch with:</p><div class="literallayout"><p>$ git fetch<br>
-$ git merge origin/master</p></div><p>However, the <a href="git-pull.html" target="_top">git-pull(1)</a> command provides a way to do this in
+$ git merge origin/master</p></div><p>However, the <a class="ulink" href="git-pull.html" target="_top">git-pull(1)</a> command provides a way to do this in
one step:</p><div class="literallayout"><p>$ git pull origin master</p></div><p>In fact, if you have "master" checked out, then by default "git pull"
merges from the HEAD branch of the origin repository. So often you can
accomplish the above with just a simple</p><div class="literallayout"><p>$ git pull</p></div><p>More generally, a branch that is created from a remote branch will pull
by default from that branch. See the descriptions of the
branch.<name>.remote and branch.<name>.merge options in
-<a href="git-config.html" target="_top">git-config(1)</a>, and the discussion of the <code class="literal">—track</code> option in
-<a href="git-checkout.html" target="_top">git-checkout(1)</a>, to learn how to control these defaults.</p><p>In addition to saving you keystrokes, "git pull" also helps you by
+<a class="ulink" href="git-config.html" target="_top">git-config(1)</a>, and the discussion of the <code class="literal">—track</code> option in
+<a class="ulink" href="git-checkout.html" target="_top">git-checkout(1)</a>, to learn how to control these defaults.</p><p>In addition to saving you keystrokes, "git pull" also helps you by
producing a default commit message documenting the branch and
repository that you pulled from.</p><p>(But note that no such commit will be created in the case of a
-<a href="#fast-forwards" title="Fast-forward merges">fast forward</a>; instead, your branch will just be
+<a class="link" href="#fast-forwards" title="Fast-forward merges">fast forward</a>; instead, your branch will just be
updated to point to the latest commit from the upstream branch.)</p><p>The git-pull command can also be given "." as the "remote" repository,
in which case it just merges in a branch from the current repository; so
the commands</p><div class="literallayout"><p>$ git pull . branch<br>
$ git merge branch</p></div><p>are roughly equivalent. The former is actually very commonly used.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="submitting-patches"></a>Submitting patches to a project</h2></div></div></div><p>If you just have a few changes, the simplest way to submit them may
-just be to send them as patches in email:</p><p>First, use <a href="git-format-patch.html" target="_top">git-format-patch(1)</a>; for example:</p><div class="literallayout"><p>$ git format-patch origin</p></div><p>will produce a numbered series of files in the current directory, one
+just be to send them as patches in email:</p><p>First, use <a class="ulink" href="git-format-patch.html" target="_top">git-format-patch(1)</a>; for example:</p><div class="literallayout"><p>$ git format-patch origin</p></div><p>will produce a numbered series of files in the current directory, one
for each patch in the current branch but not in origin/HEAD.</p><p>You can then import these into your mail client and send them by
hand. However, if you have a lot to send at once, you may prefer to
-use the <a href="git-send-email.html" target="_top">git-send-email(1)</a> script to automate the process.
+use the <a class="ulink" href="git-send-email.html" target="_top">git-send-email(1)</a> script to automate the process.
Consult the mailing list for your project first to determine how they
-prefer such patches be handled.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="importing-patches"></a>Importing patches to a project</h2></div></div></div><p>Git also provides a tool called <a href="git-am.html" target="_top">git-am(1)</a> (am stands for
+prefer such patches be handled.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="importing-patches"></a>Importing patches to a project</h2></div></div></div><p>Git also provides a tool called <a class="ulink" href="git-am.html" target="_top">git-am(1)</a> (am stands for
"apply mailbox"), for importing such an emailed series of patches.
Just save all of the patch-containing messages, in order, into a
single mailbox file, say "patches.mbox", then run</p><div class="literallayout"><p>$ git am -3 patches.mbox</p></div><p>Git will apply each patch in order; if any conflicts are found, it
will stop, and you can fix the conflicts as described in
-"<a href="#resolving-a-merge" title="Resolving a merge">Resolving a merge</a>". (The "-3" option tells
+"<a class="link" href="#resolving-a-merge" title="Resolving a merge">Resolving a merge</a>". (The "-3" option tells
git to perform a merge; if you would prefer it just to abort and
leave your tree and index untouched, you may omit that option.)</p><p>Once the index is updated with the results of the conflict
resolution, instead of creating a new commit, just run</p><div class="literallayout"><p>$ git am --resolved</p></div><p>and git will create the commit for you and continue applying the
the original mailbox, with authorship and commit log message each
taken from the message containing each patch.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="public-repositories"></a>Public git repositories</h2></div></div></div><p>Another way to submit changes to a project is to tell the maintainer
of that project to pull the changes from your repository using
-<a href="git-pull.html" target="_top">git-pull(1)</a>. In the section "<a href="#getting-updates-with-git-pull" title="Getting updates with git-pull">Getting updates with git-pull</a>" we described this as a way to get
+<a class="ulink" href="git-pull.html" target="_top">git-pull(1)</a>. In the section "<a class="link" href="#getting-updates-with-git-pull" title="Getting updates with git-pull">Getting updates with git-pull</a>" we described this as a way to get
updates from the "main" repository, but it works just as well in the
other direction.</p><p>If you and the maintainer both have accounts on the same machine, then
you can just pull changes from each other's repositories directly;
convenient.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="exporting-via-git"></a>Exporting a git repository via the git protocol</h3></div></div></div><p>This is the preferred method.</p><p>If someone else administers the server, they should tell you what
directory to put the repository in, and what git:// URL it will appear
at. You can then skip to the section
-"<a href="#pushing-changes-to-a-public-repository" title="Pushing changes to a public repository">Pushing changes to a public repository</a>", below.</p><p>Otherwise, all you need to do is start <a href="git-daemon.html" target="_top">git-daemon(1)</a>; it will
+"<a class="link" href="#pushing-changes-to-a-public-repository" title="Pushing changes to a public repository">Pushing changes to a public repository</a>", below.</p><p>Otherwise, all you need to do is start <a class="ulink" href="git-daemon.html" target="_top">git-daemon(1)</a>; it will
listen on port 9418. By default, it will allow access to any directory
that looks like a git directory and contains the magic file
git-daemon-export-ok. Passing some directory paths as git-daemon
arguments will further restrict the exports to those paths.</p><p>You can also run git-daemon as an inetd service; see the
-<a href="git-daemon.html" target="_top">git-daemon(1)</a> man page for details. (See especially the
+<a class="ulink" href="git-daemon.html" target="_top">git-daemon(1)</a> man page for details. (See especially the
examples section.)</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="exporting-via-http"></a>Exporting a git repository via http</h3></div></div></div><p>The git protocol gives better performance and reliability, but on a
host with a web server set up, http exports may be simpler to set up.</p><p>All you need to do is place the newly created bare git repository in
a directory that is exported by the web server, and make some
$ cd proj.git<br>
$ git --bare update-server-info<br>
$ chmod a+x hooks/post-update</p></div><p>(For an explanation of the last two lines, see
-<a href="git-update-server-info.html" target="_top">git-update-server-info(1)</a> and <a href="githooks.html" target="_top">githooks(5)</a>.)</p><p>Advertise the URL of proj.git. Anybody else should then be able to
+<a class="ulink" href="git-update-server-info.html" target="_top">git-update-server-info(1)</a> and <a class="ulink" href="githooks.html" target="_top">githooks(5)</a>.)</p><p>Advertise the URL of proj.git. Anybody else should then be able to
clone or pull from that URL, for example with a command line like:</p><div class="literallayout"><p>$ git clone http://yourserver.com/~you/proj.git</p></div><p>(See also
-<a href="howto/setup-git-server-over-http.txt" target="_top">setup-git-server-over-http</a>
+<a class="ulink" href="howto/setup-git-server-over-http.txt" target="_top">setup-git-server-over-http</a>
for a slightly more sophisticated setup using WebDAV which also
allows pushing over http.)</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="pushing-changes-to-a-public-repository"></a>Pushing changes to a public repository</h3></div></div></div><p>Note that the two techniques outlined above (exporting via
-<a href="#exporting-via-http" title="Exporting a git repository via http">http</a> or <a href="#exporting-via-git" title="Exporting a git repository via the git protocol">git</a>) allow other
+<a class="link" href="#exporting-via-http" title="Exporting a git repository via http">http</a> or <a class="link" href="#exporting-via-git" title="Exporting a git repository via the git protocol">git</a>) allow other
maintainers to fetch your latest changes, but they do not allow write
access, which you will need to update the public repository with the
-latest changes created in your private repository.</p><p>The simplest way to do this is using <a href="git-push.html" target="_top">git-push(1)</a> and ssh; to
+latest changes created in your private repository.</p><p>The simplest way to do this is using <a class="ulink" href="git-push.html" target="_top">git-push(1)</a> and ssh; to
update the remote branch named "master" with the latest state of your
branch named "master", run</p><div class="literallayout"><p>$ git push ssh://yourserver.com/~you/proj.git master:master</p></div><p>or just</p><div class="literallayout"><p>$ git push ssh://yourserver.com/~you/proj.git master</p></div><p>As with git-fetch, git-push will complain if this does not result in a
-<a href="#fast-forwards" title="Fast-forward merges">fast forward</a>; see the following section for details on
+<a class="link" href="#fast-forwards" title="Fast-forward merges">fast forward</a>; see the following section for details on
handling this case.</p><p>Note that the target of a "push" is normally a
-<a href="#def_bare_repository">bare</a> repository. You can also push to a
+<a class="link" href="#def_bare_repository">bare</a> repository. You can also push to a
repository that has a checked-out working tree, but the working tree
will not be updated by the push. This may lead to unexpected results if
the branch you push to is the currently checked-out branch!</p><p>As with git-fetch, you may also set up configuration options to
[remote "public-repo"]<br>
url = ssh://yourserver.com/~you/proj.git<br>
EOF</p></div><p>you should be able to perform the above push with just</p><div class="literallayout"><p>$ git push public-repo master</p></div><p>See the explanations of the remote.<name>.url, branch.<name>.remote,
-and remote.<name>.push options in <a href="git-config.html" target="_top">git-config(1)</a> for
-details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="forcing-push"></a>What to do when a push fails</h3></div></div></div><p>If a push would not result in a <a href="#fast-forwards" title="Fast-forward merges">fast forward</a> of the
+and remote.<name>.push options in <a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for
+details.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="forcing-push"></a>What to do when a push fails</h3></div></div></div><p>If a push would not result in a <a class="link" href="#fast-forwards" title="Fast-forward merges">fast forward</a> of the
remote branch, then it will fail with an error like:</p><div class="literallayout"><p>error: remote 'refs/heads/master' is not an ancestor of<br>
local 'refs/heads/master'.<br>
Maybe you are not up-to-date and need to pull first?<br>
error: failed to push to 'ssh://yourserver.com/~you/proj.git'</p></div><p>This can happen, for example, if you:</p><div class="itemizedlist"><ul type="disc"><li>
-use <code class="literal">git reset —hard</code> to remove already-published commits, or
+use <code class="literal">git-reset —hard</code> to remove already-published commits, or
</li><li>
-use <code class="literal">git commit —amend</code> to replace already-published commits
- (as in <a href="#fixing-a-mistake-by-rewriting-history" title="Fixing a mistake by rewriting history">the section called “Fixing a mistake by rewriting history”</a>), or
+use <code class="literal">git-commit —amend</code> to replace already-published commits
+ (as in <a class="xref" href="#fixing-a-mistake-by-rewriting-history" title="Fixing a mistake by rewriting history">the section called “Fixing a mistake by rewriting history”</a>), or
</li><li>
-use <code class="literal">git rebase</code> to rebase any already-published commits (as
- in <a href="#using-git-rebase" title="Keeping a patch series up to date using git-rebase">the section called “Keeping a patch series up to date using git-rebase”</a>).
+use <code class="literal">git-rebase</code> to rebase any already-published commits (as
+ in <a class="xref" href="#using-git-rebase" title="Keeping a patch series up to date using git-rebase">the section called “Keeping a patch series up to date using git-rebase”</a>).
</li></ul></div><p>You may force git-push to perform the update anyway by preceding the
branch name with a plus sign:</p><div class="literallayout"><p>$ git push ssh://yourserver.com/~you/proj.git +master</p></div><p>Normally whenever a branch head in a public repository is modified, it
is modified to point to a descendant of the commit that it pointed to
before. By forcing a push in this situation, you break that convention.
-(See <a href="#problems-with-rewriting-history" title="Problems with rewriting history">the section called “Problems with rewriting history”</a>.)</p><p>Nevertheless, this is a common practice for people that need a simple
+(See <a class="xref" href="#problems-with-rewriting-history" title="Problems with rewriting history">the section called “Problems with rewriting history”</a>.)</p><p>Nevertheless, this is a common practice for people that need a simple
way to publish a work-in-progress patch series, and it is an acceptable
compromise as long as you warn other developers that this is how you
intend to manage the branch.</p><p>It's also possible for a push to fail in this way when other people have
the right to push to the same repository. In that case, the correct
solution is to retry the push after first updating your work by either a
pull or a fetch followed by a rebase; see the
-<a href="#setting-up-a-shared-repository" title="Setting up a shared repository">next section</a> and
-<a href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for more.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="setting-up-a-shared-repository"></a>Setting up a shared repository</h3></div></div></div><p>Another way to collaborate is by using a model similar to that
+<a class="link" href="#setting-up-a-shared-repository" title="Setting up a shared repository">next section</a> and
+<a class="ulink" href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for more.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="setting-up-a-shared-repository"></a>Setting up a shared repository</h3></div></div></div><p>Another way to collaborate is by using a model similar to that
commonly used in CVS, where several developers with special rights
all push to and pull from a single shared repository. See
-<a href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for instructions on how to
+<a class="ulink" href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for instructions on how to
set this up.</p><p>However, while there is nothing wrong with git's support for shared
repositories, this mode of operation is not generally recommended,
simply because the mode of collaboration that git supports—by
containing a logical grouping of patches.</p><p>To set this up, first create your work tree by cloning Linus's public
tree:</p><div class="literallayout"><p>$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git work<br>
$ cd work</p></div><p>Linus's tree will be stored in the remote branch named origin/master,
-and can be updated using <a href="git-fetch.html" target="_top">git-fetch(1)</a>; you can track other
-public trees using <a href="git-remote.html" target="_top">git-remote(1)</a> to set up a "remote" and
-<a href="git-fetch.html" target="_top">git-fetch(1)</a> to keep them up-to-date; see
-<a href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a>.</p><p>Now create the branches in which you are going to work; these start out
+and can be updated using <a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a>; you can track other
+public trees using <a class="ulink" href="git-remote.html" target="_top">git-remote(1)</a> to set up a "remote" and
+<a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a> to keep them up-to-date; see
+<a class="xref" href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a>.</p><p>Now create the branches in which you are going to work; these start out
at the current tip of origin/master branch, and should be set up (using
-the —track option to <a href="git-branch.html" target="_top">git-branch(1)</a>) to merge changes in from
+the —track option to <a class="ulink" href="git-branch.html" target="_top">git-branch(1)</a>) to merge changes in from
Linus by default.</p><div class="literallayout"><p>$ git branch --track test origin/master<br>
-$ git branch --track release origin/master</p></div><p>These can be easily kept up to date using <a href="git-pull.html" target="_top">git-pull(1)</a>.</p><div class="literallayout"><p>$ git checkout test && git pull<br>
+$ git branch --track release origin/master</p></div><p>These can be easily kept up to date using <a class="ulink" href="git-pull.html" target="_top">git-pull(1)</a>.</p><div class="literallayout"><p>$ git checkout test && git pull<br>
$ git checkout release && git pull</p></div><p>Important note! If you have any local changes in these branches, then
this merge will create a commit object in the history (with no local
changes git will simply do a "Fast forward" merge). Many people dislike
the "noise" that this creates in the Linux history, so you should avoid
doing this capriciously in the "release" branch, as these noisy commits
will become part of the permanent history when you ask Linus to pull
-from the release branch.</p><p>A few configuration variables (see <a href="git-config.html" target="_top">git-config(1)</a>) can
+from the release branch.</p><p>A few configuration variables (see <a class="ulink" href="git-config.html" target="_top">git-config(1)</a>) can
make it easy to push both branches to your public tree. (See
-<a href="#setting-up-a-public-repository" title="Setting up a public repository">the section called “Setting up a public repository”</a>.)</p><div class="literallayout"><p>$ cat >> .git/config <<EOF<br>
+<a class="xref" href="#setting-up-a-public-repository" title="Setting up a public repository">the section called “Setting up a public repository”</a>.)</p><div class="literallayout"><p>$ cat >> .git/config <<EOF<br>
[remote "mytree"]<br>
url = master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git<br>
push = release<br>
push = test<br>
EOF</p></div><p>Then you can push both the test and release trees using
-<a href="git-push.html" target="_top">git-push(1)</a>:</p><div class="literallayout"><p>$ git push mytree</p></div><p>or push just one of the test and release branches using:</p><div class="literallayout"><p>$ git push mytree test</p></div><p>or</p><div class="literallayout"><p>$ git push mytree release</p></div><p>Now to apply some patches from the community. Think of a short
+<a class="ulink" href="git-push.html" target="_top">git-push(1)</a>:</p><div class="literallayout"><p>$ git push mytree</p></div><p>or push just one of the test and release branches using:</p><div class="literallayout"><p>$ git push mytree test</p></div><p>or</p><div class="literallayout"><p>$ git push mytree release</p></div><p>Now to apply some patches from the community. Think of a short
snappy name for a branch to hold this patch (or related group of
patches), and create a new branch from the current tip of Linus's
branch:</p><div class="literallayout"><p>$ git checkout -b speed-up-spinlocks origin</p></div><p>Now you apply the patch(es), run some tests, and commit the change(s). If
means that the patches can be moved into the "release" tree in any order.</p><div class="literallayout"><p>$ git checkout release && git pull . speed-up-spinlocks</p></div><p>After a while, you will have a number of branches, and despite the
well chosen names you picked for each of them, you may forget what
they are for, or what status they are in. To get a reminder of what
-changes are in a specific branch, use:</p><div class="literallayout"><p>$ git log linux..branchname | git-shortlog</p></div><p>To see whether it has already been merged into the test or release branches,
+changes are in a specific branch, use:</p><div class="literallayout"><p>$ git log linux..branchname | git shortlog</p></div><p>To see whether it has already been merged into the test or release branches,
use:</p><div class="literallayout"><p>$ git log test..branchname</p></div><p>or</p><div class="literallayout"><p>$ git log release..branchname</p></div><p>(If this branch has not yet been merged, you will see some log entries.
If it has been merged, then there will be no output.)</p><p>Once a patch completes the great cycle (moving from test to release,
then pulled by Linus, and finally coming back into your local
\ \
a--b--c--m <-- mywork</pre><p>However, if you prefer to keep the history in mywork a simple series of
commits without any merges, you may instead choose to use
-<a href="git-rebase.html" target="_top">git-rebase(1)</a>:</p><div class="literallayout"><p>$ git checkout mywork<br>
+<a class="ulink" href="git-rebase.html" target="_top">git-rebase(1)</a>:</p><div class="literallayout"><p>$ git checkout mywork<br>
$ git rebase origin</p></div><p>This will remove each of your commits from mywork, temporarily saving
them as patches (in a directory named ".dotest"), update mywork to
point at the latest version of origin, then apply each of the saved
patches to the new mywork. The result will look like:</p><pre class="literallayout"> o--o--O--o--o--o <-- origin
\
a'--b'--c' <-- mywork</pre><p>In the process, it may discover conflicts. In that case it will stop
-and allow you to fix the conflicts; after fixing conflicts, use "git
-add" to update the index with those contents, and then, instead of
+and allow you to fix the conflicts; after fixing conflicts, use "git-add"
+to update the index with those contents, and then, instead of
running git-commit, just run</p><div class="literallayout"><p>$ git rebase --continue</p></div><p>and git will continue applying the rest of the patches.</p><p>At any point you may use the <code class="literal">—abort</code> option to abort this process and
-return mywork to the state it had before you started the rebase:</p><div class="literallayout"><p>$ git rebase --abort</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rewriting-one-commit"></a>Rewriting a single commit</h2></div></div></div><p>We saw in <a href="#fixing-a-mistake-by-rewriting-history" title="Fixing a mistake by rewriting history">the section called “Fixing a mistake by rewriting history”</a> that you can replace the
+return mywork to the state it had before you started the rebase:</p><div class="literallayout"><p>$ git rebase --abort</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rewriting-one-commit"></a>Rewriting a single commit</h2></div></div></div><p>We saw in <a class="xref" href="#fixing-a-mistake-by-rewriting-history" title="Fixing a mistake by rewriting history">the section called “Fixing a mistake by rewriting history”</a> that you can replace the
most recent commit using</p><div class="literallayout"><p>$ git commit --amend</p></div><p>which will replace the old commit by a new commit incorporating your
-changes, giving you a chance to edit the old commit message first.</p><p>You can also use a combination of this and <a href="git-rebase.html" target="_top">git-rebase(1)</a> to
+changes, giving you a chance to edit the old commit message first.</p><p>You can also use a combination of this and <a class="ulink" href="git-rebase.html" target="_top">git-rebase(1)</a> to
replace a commit further back in your history and recreate the
intervening changes on top of it. First, tag the problematic commit
with</p><div class="literallayout"><p>$ git tag bad mywork~5</p></div><p>(Either gitk or git-log may be useful for finding the commit.)</p><p>Then check out that commit, edit it, and rebase the rest of the series
on top of it (note that we could check out the commit on a temporary
-branch, but instead we're using a <a href="#detached-head" title="Examining an old version without creating a new branch">detached head</a>):</p><div class="literallayout"><p>$ git checkout bad<br>
+branch, but instead we're using a <a class="link" href="#detached-head" title="Examining an old version without creating a new branch">detached head</a>):</p><div class="literallayout"><p>$ git checkout bad<br>
$ # make changes here and update the index<br>
$ git commit --amend<br>
$ git rebase --onto HEAD bad mywork</p></div><p>When you're done, you'll be left with mywork checked out, with the top
patches on mywork reapplied on top of your modified commit. You can
then clean up with</p><div class="literallayout"><p>$ git tag -d bad</p></div><p>Note that the immutable nature of git history means that you haven't really
"modified" existing commits; instead, you have replaced the old commits with
-new commits having new object names.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="reordering-patch-series"></a>Reordering or selecting from a patch series</h2></div></div></div><p>Given one existing commit, the <a href="git-cherry-pick.html" target="_top">git-cherry-pick(1)</a> command
+new commits having new object names.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="reordering-patch-series"></a>Reordering or selecting from a patch series</h2></div></div></div><p>Given one existing commit, the <a class="ulink" href="git-cherry-pick.html" target="_top">git-cherry-pick(1)</a> command
allows you to apply the change introduced by that commit and create a
new commit that records it. So, for example, if "mywork" points to a
series of patches on top of "origin", you might do something like:</p><div class="literallayout"><p>$ git checkout -b mywork-new origin<br>
$ gitk origin..mywork &</p></div><p>and browse through the list of patches in the mywork branch using gitk,
applying them (possibly in a different order) to mywork-new using
cherry-pick, and possibly modifying them as you go using <code class="literal">commit —amend</code>.
-The <a href="git-gui.html" target="_top">git-gui(1)</a> command may also help as it allows you to
+The <a class="ulink" href="git-gui.html" target="_top">git-gui(1)</a> command may also help as it allows you to
individually select diff hunks for inclusion in the index (by
right-clicking on the diff hunk and choosing "Stage Hunk for Commit").</p><p>Another technique is to use git-format-patch to create a series of
patches, then reset the state to before the patches:</p><div class="literallayout"><p>$ git format-patch origin<br>
$ git reset --hard origin</p></div><p>Then modify, reorder, or eliminate patches as preferred before applying
-them again with <a href="git-am.html" target="_top">git-am(1)</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="patch-series-tools"></a>Other tools</h2></div></div></div><p>There are numerous other tools, such as StGIT, which exist for the
+them again with <a class="ulink" href="git-am.html" target="_top">git-am(1)</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="patch-series-tools"></a>Other tools</h2></div></div></div><p>There are numerous other tools, such as StGIT, which exist for the
purpose of maintaining a patch series. These are outside of the scope of
this manual.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="problems-with-rewriting-history"></a>Problems with rewriting history</h2></div></div></div><p>The primary problem with rewriting the history of a branch has to do
with merging. Suppose somebody fetches your branch and merges it into
and it may be useful for others to be able to fetch those branches in
order to examine or test them, but they should not attempt to pull such
branches into their own work.</p><p>For true distributed development that supports proper merging,
-published branches should never be rewritten.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bisect-merges"></a>Why bisecting merge commits can be harder than bisecting linear history</h2></div></div></div><p>The <a href="git-bisect.html" target="_top">git-bisect(1)</a> command correctly handles history that
+published branches should never be rewritten.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bisect-merges"></a>Why bisecting merge commits can be harder than bisecting linear history</h2></div></div></div><p>The <a class="ulink" href="git-bisect.html" target="_top">git-bisect(1)</a> command correctly handles history that
includes merge commits. However, when the commit that it finds is a
merge commit, the user may need to work harder than usual to figure out
why that commit introduced a problem.</p><p>Imagine this history:</p><pre class="literallayout"> ---Z---o---X---...---o---A---C---D
on the lower line of development have not been converted to the new
semantics introduced on the upper line of development. So if all
you know is that D is bad, that Z is good, and that
-<a href="git-bisect.html" target="_top">git-bisect(1)</a> identifies C as the culprit, how will you
+<a class="ulink" href="git-bisect.html" target="_top">git-bisect(1)</a> identifies C as the culprit, how will you
figure out that the problem is due to this change in semantics?</p><p>When the result of a git-bisect is a non-merge commit, you should
normally be able to discover the problem by examining just that commit.
Developers can make this easy by breaking their changes into small
and understanding why Y* was broken would probably be easier.</p><p>Partly for this reason, many experienced git users, even when
working on an otherwise merge-heavy project, keep the history
linear by rebasing against the latest upstream version before
-publishing.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="advanced-branch-management"></a>Chapter 6. Advanced branch management</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git-fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote branches</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="fetching-individual-branches"></a>Fetching individual branches</h2></div></div></div><p>Instead of using <a href="git-remote.html" target="_top">git-remote(1)</a>, you can also choose just
+publishing.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="advanced-branch-management"></a>Chapter 6. Advanced branch management</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git-fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote branches</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="fetching-individual-branches"></a>Fetching individual branches</h2></div></div></div><p>Instead of using <a class="ulink" href="git-remote.html" target="_top">git-remote(1)</a>, you can also choose just
to update one branch at a time, and to store it locally under an
arbitrary name:</p><div class="literallayout"><p>$ git fetch origin todo:my-todo-work</p></div><p>The first argument, "origin", just tells git to fetch from the
repository you originally cloned from. The second argument tells git
store it locally under the name refs/heads/my-todo-work.</p><p>You can also fetch branches from other repositories; so</p><div class="literallayout"><p>$ git fetch git://example.com/proj.git master:example-master</p></div><p>will create a new branch named "example-master" and store in it the
branch named "master" from the repository at the given URL. If you
already have a branch named example-master, it will attempt to
-<a href="#fast-forwards" title="Fast-forward merges">fast-forward</a> to the commit given by example.com's
-master branch. In more detail:</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="fetch-fast-forwards"></a>git fetch and fast-forwards</h2></div></div></div><p>In the previous example, when updating an existing branch, "git
-fetch" checks to make sure that the most recent commit on the remote
+<a class="link" href="#fast-forwards" title="Fast-forward merges">fast-forward</a> to the commit given by example.com's
+master branch. In more detail:</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="fetch-fast-forwards"></a>git fetch and fast-forwards</h2></div></div></div><p>In the previous example, when updating an existing branch, "git-fetch"
+checks to make sure that the most recent commit on the remote
branch is a descendant of the most recent commit on your copy of the
branch before updating your copy of the branch to point at the new
-commit. Git calls this process a <a href="#fast-forwards" title="Fast-forward merges">fast forward</a>.</p><p>A fast forward looks something like this:</p><pre class="literallayout"> o--o--o--o <-- old head of the branch
+commit. Git calls this process a <a class="link" href="#fast-forwards" title="Fast-forward merges">fast forward</a>.</p><p>A fast forward looks something like this:</p><pre class="literallayout"> o--o--o--o <-- old head of the branch
\
o--o--o <-- new head of the branch</pre><p>In some cases it is possible that the new head will <span class="strong"><strong>not</strong></span> actually be
a descendant of the old head. For example, the developer may have
realized she made a serious mistake, and decided to backtrack,
resulting in a situation like:</p><pre class="literallayout"> o--o--o--o--a--b <-- old head of the branch
\
- o--o--o <-- new head of the branch</pre><p>In this case, "git fetch" will fail, and print out a warning.</p><p>In that case, you can still force git to update to the new head, as
+ o--o--o <-- new head of the branch</pre><p>In this case, "git-fetch" will fail, and print out a warning.</p><p>In that case, you can still force git to update to the new head, as
described in the following section. However, note that in the
situation above this may mean losing the commits labeled "a" and "b",
unless you've already created a reference of your own pointing to
may be lost, as we saw in the previous section.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="remote-branch-configuration"></a>Configuring remote branches</h2></div></div></div><p>We saw above that "origin" is just a shortcut to refer to the
repository that you originally cloned from. This information is
stored in git configuration variables, which you can see using
-<a href="git-config.html" target="_top">git-config(1)</a>:</p><div class="literallayout"><p>$ git config -l<br>
+<a class="ulink" href="git-config.html" target="_top">git-config(1)</a>:</p><div class="literallayout"><p>$ git config -l<br>
core.repositoryformatversion=0<br>
core.filemode=true<br>
core.logallrefupdates=true<br>
$ git fetch example</p></div><p>You can also add a "+" to force the update each time:</p><div class="literallayout"><p>$ git config remote.example.fetch +master:ref/remotes/example/master</p></div><p>Don't do this unless you're sure you won't mind "git-fetch" possibly
throwing away commits on mybranch.</p><p>Also note that all of the above configuration can be performed by
directly editing the file .git/config instead of using
-<a href="git-config.html" target="_top">git-config(1)</a>.</p><p>See <a href="git-config.html" target="_top">git-config(1)</a> for more details on the configuration
+<a class="ulink" href="git-config.html" target="_top">git-config(1)</a>.</p><p>See <a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for more details on the configuration
options mentioned above.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="git-concepts"></a>Chapter 7. Git concepts</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></div><p>Git is built on a small number of simple but powerful ideas. While it
is possible to get things done without understanding them, you will find
-git much more intuitive if you do.</p><p>We start with the most important, the <a href="#def_object_database">object database</a> and the <a href="#def_index">index</a>.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="the-object-database"></a>The Object Database</h2></div></div></div><p>We already saw in <a href="#understanding-commits" title="Understanding History: Commits">the section called “Understanding History: Commits”</a> that all commits are stored
+git much more intuitive if you do.</p><p>We start with the most important, the <a class="link" href="#def_object_database">object database</a> and the <a class="link" href="#def_index">index</a>.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="the-object-database"></a>The Object Database</h2></div></div></div><p>We already saw in <a class="xref" href="#understanding-commits" title="Understanding History: Commits">the section called “Understanding History: Commits”</a> that all commits are stored
under a 40-digit "object name". In fact, all the information needed to
represent the history of a project is stored in objects with such names.
In each case the name is calculated by taking the SHA1 hash of the
</li><li>
Git can detect errors when it reads an object, by checking that the
object's name is still the SHA1 hash of its contents.
-</li></ul></div><p>(See <a href="#object-details" title="Object storage format">the section called “Object storage format”</a> for the details of the object formatting and
+</li></ul></div><p>(See <a class="xref" href="#object-details" title="Object storage format">the section called “Object storage format”</a> for the details of the object formatting and
SHA1 calculation.)</p><p>There are four different types of objects: "blob", "tree", "commit", and
"tag".</p><div class="itemizedlist"><ul type="disc"><li>
-A <a href="#def_blob_object">"blob" object</a> is used to store file data.
+A <a class="link" href="#def_blob_object">"blob" object</a> is used to store file data.
</li><li>
-A <a href="#def_tree_object">"tree" object</a> is an object that ties one or more
+A <a class="link" href="#def_tree_object">"tree" object</a> is an object that ties one or more
"blob" objects into a directory structure. In addition, a tree object
can refer to other tree objects, thus creating a directory hierarchy.
</li><li>
-A <a href="#def_commit_object">"commit" object</a> ties such directory hierarchies
- together into a <a href="#def_DAG">directed acyclic graph</a> of revisions—each
+A <a class="link" href="#def_commit_object">"commit" object</a> ties such directory hierarchies
+ together into a <a class="link" href="#def_DAG">directed acyclic graph</a> of revisions—each
commit contains the object name of exactly one tree designating the
directory hierarchy at the time of the commit. In addition, a commit
refers to "parent" commit objects that describe the history of how we
arrived at that directory hierarchy.
</li><li>
-A <a href="#def_tag_object">"tag" object</a> symbolically identifies and can be
+A <a class="link" href="#def_tag_object">"tag" object</a> symbolically identifies and can be
used to sign other objects. It contains the object name and type of
another object, a symbolic name (of course!) and, optionally, a
signature.
</li></ul></div><p>The object types in some more detail:</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="commit-object"></a>Commit Object</h3></div></div></div><p>The "commit" object links a physical state of a tree with a description
of how we got there and why. Use the —pretty=raw option to
-<a href="git-show.html" target="_top">git-show(1)</a> or <a href="git-log.html" target="_top">git-log(1)</a> to examine your favorite
+<a class="ulink" href="git-show.html" target="_top">git-show(1)</a> or <a class="ulink" href="git-log.html" target="_top">git-log(1)</a> to examine your favorite
commit:</p><div class="literallayout"><p>$ git show -s --pretty=raw 2be7fcb476<br>
commit 2be7fcb4764f2dbcee52635b91fedb1b3dcf7ab4<br>
tree fb3a8bdd0ceddd019615af4d57a53f43d8cee2bf<br>
its parents. In particular, git does not attempt to record file renames
explicitly, though it can identify cases where the existence of the same
file data at changing paths suggests a rename. (See, for example, the
--M option to <a href="git-diff.html" target="_top">git-diff(1)</a>).</p><p>A commit is usually created by <a href="git-commit.html" target="_top">git-commit(1)</a>, which creates a
+-M option to <a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a>).</p><p>A commit is usually created by <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a>, which creates a
commit whose parent is normally the current HEAD, and whose tree is
-taken from the content currently stored in the index.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tree-object"></a>Tree Object</h3></div></div></div><p>The ever-versatile <a href="git-show.html" target="_top">git-show(1)</a> command can also be used to
-examine tree objects, but <a href="git-ls-tree.html" target="_top">git-ls-tree(1)</a> will give you more
+taken from the content currently stored in the index.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tree-object"></a>Tree Object</h3></div></div></div><p>The ever-versatile <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> command can also be used to
+examine tree objects, but <a class="ulink" href="git-ls-tree.html" target="_top">git-ls-tree(1)</a> will give you more
details:</p><div class="literallayout"><p>$ git ls-tree fb3a8bdd0ce<br>
100644 blob 63c918c667fa005ff12ad89437f2fdc80926e21c .gitignore<br>
100644 blob 5529b198e8d14decbe4ad99db3f7fb632de0439d .mailmap<br>
are identical. This allows git to quickly determine the differences
between two related tree objects, since it can ignore any entries with
identical object names.</p><p>(Note: in the presence of submodules, trees may also have commits as
-entries. See <a href="#submodules" title="Chapter 8. Submodules">Chapter 8, <i>Submodules</i></a> for documentation.)</p><p>Note that the files all have mode 644 or 755: git actually only pays
-attention to the executable bit.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="blob-object"></a>Blob Object</h3></div></div></div><p>You can use <a href="git-show.html" target="_top">git-show(1)</a> to examine the contents of a blob; take,
+entries. See <a class="xref" href="#submodules" title="Chapter 8. Submodules">Chapter 8, <i>Submodules</i></a> for documentation.)</p><p>Note that the files all have mode 644 or 755: git actually only pays
+attention to the executable bit.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="blob-object"></a>Blob Object</h3></div></div></div><p>You can use <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> to examine the contents of a blob; take,
for example, the blob in the entry for "COPYING" from the tree above:</p><div class="literallayout"><p>$ git show 6ff87c4664<br>
<br>
Note that the only valid version of the GPL as far as this project<br>
have the same contents, they will share the same blob object. The object
is totally independent of its location in the directory tree, and
renaming a file does not change the object that file is associated with.</p><p>Note that any tree or blob object can be examined using
-<a href="git-show.html" target="_top">git-show(1)</a> with the <revision>:<path> syntax. This can
+<a class="ulink" href="git-show.html" target="_top">git-show(1)</a> with the <revision>:<path> syntax. This can
sometimes be useful for browsing the contents of a tree that is not
currently checked out.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="trust"></a>Trust</h3></div></div></div><p>If you receive the SHA1 name of a blob from one source, and its contents
from another (possibly untrusted) source, you can still trust that those
of the top commit, and digitally sign that email using something
like GPG/PGP.</p><p>To assist in this, git also provides the tag object…</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tag-object"></a>Tag Object</h3></div></div></div><p>A tag object contains an object, object type, tag name, the name of the
person ("tagger") who created the tag, and a message, which may contain
-a signature, as can be seen using the <a href="git-cat-file.html" target="_top">git-cat-file(1)</a>:</p><div class="literallayout"><p>$ git cat-file tag v1.5.0<br>
+a signature, as can be seen using the <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a>:</p><div class="literallayout"><p>$ git cat-file tag v1.5.0<br>
object 437b1b20df4b356c9342dac8d38849f24ef44f27<br>
type commit<br>
tag v1.5.0<br>
iD8DBQBF0lGqwMbZpPMRm5oRAuRiAJ9ohBLd7s2kqjkKlq1qqC57SbnmzQCdG4ui<br>
nLE/L9aUXdWeTFPron96DLA=<br>
=2E+0<br>
------END PGP SIGNATURE-----</p></div><p>See the <a href="git-tag.html" target="_top">git-tag(1)</a> command to learn how to create and verify tag
-objects. (Note that <a href="git-tag.html" target="_top">git-tag(1)</a> can also be used to create
+-----END PGP SIGNATURE-----</p></div><p>See the <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> command to learn how to create and verify tag
+objects. (Note that <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> can also be used to create
"lightweight tags", which are not tag objects at all, but just simple
references whose names begin with "refs/tags/").</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="pack-files"></a>How git stores objects efficiently: pack files</h3></div></div></div><p>Newly created objects are initially created in a file named after the
object's SHA1 hash (stored in .git/objects).</p><p>Unfortunately this system becomes inefficient once a project has a
those "loose" objects.</p><p>You can save space and make git faster by moving these loose objects in
to a "pack file", which stores a group of objects in an efficient
compressed format; the details of how pack files are formatted can be
-found in <a href="technical/pack-format.txt" target="_top">technical/pack-format.txt</a>.</p><p>To put the loose objects into a pack, just run git repack:</p><div class="literallayout"><p>$ git repack<br>
+found in <a class="ulink" href="technical/pack-format.txt" target="_top">technical/pack-format.txt</a>.</p><p>To put the loose objects into a pack, just run git repack:</p><div class="literallayout"><p>$ git repack<br>
Generating pack...<br>
Done counting 6020 objects.<br>
Deltifying 6020 objects.<br>
Total 6020, written 6020 (delta 4070), reused 0 (delta 0)<br>
Pack pack-3e54ad29d5b2e05838c75df582c65257b8d08e1c created.</p></div><p>You can then run</p><div class="literallayout"><p>$ git prune</p></div><p>to remove any of the "loose" objects that are now contained in the
pack. This will also remove any unreferenced objects (which may be
-created when, for example, you use "git reset" to remove a commit).
+created when, for example, you use "git-reset" to remove a commit).
You can verify that the loose objects are gone by looking at the
.git/objects directory or by running</p><div class="literallayout"><p>$ git count-objects<br>
0 objects, 0 kilobytes</p></div><p>Although the object files are gone, any commands that refer to those
-objects will work exactly as they did before.</p><p>The <a href="git-gc.html" target="_top">git-gc(1)</a> command performs packing, pruning, and more for
-you, so is normally the only high-level command you need.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dangling-objects"></a>Dangling objects</h3></div></div></div><p>The <a href="git-fsck.html" target="_top">git-fsck(1)</a> command will sometimes complain about dangling
+objects will work exactly as they did before.</p><p>The <a class="ulink" href="git-gc.html" target="_top">git-gc(1)</a> command performs packing, pruning, and more for
+you, so is normally the only high-level command you need.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dangling-objects"></a>Dangling objects</h3></div></div></div><p>The <a class="ulink" href="git-fsck.html" target="_top">git-fsck(1)</a> command will sometimes complain about dangling
objects. They are not a problem.</p><p>The most common cause of dangling objects is that you've rebased a
branch, or you have pulled from somebody else who rebased a branch—see
-<a href="#cleaning-up-history" title="Chapter 5. Rewriting history and maintaining patch series">Chapter 5, <i>Rewriting history and maintaining patch series</i></a>. In that case, the old head of the original
+<a class="xref" href="#cleaning-up-history" title="Chapter 5. Rewriting history and maintaining patch series">Chapter 5, <i>Rewriting history and maintaining patch series</i></a>. In that case, the old head of the original
branch still exists, as does everything it pointed to. The branch
pointer itself just doesn't, since you replaced it with another one.</p><p>There are also other situations that cause dangling objects. For
-example, a "dangling blob" may arise because you did a "git add" of a
+example, a "dangling blob" may arise because you did a "git-add" of a
file, but then, before you actually committed it and made it part of the
bigger picture, you changed something else in that file and committed
that <span class="strong"><strong>updated</strong></span> thing—the old state that you added originally ends up
almost always the result of either being a half-way mergebase (the blob
will often even have the conflict markers from a merge in it, if you
have had conflicting merges that you fixed up by hand), or simply
-because you interrupted a "git fetch" with ^C or something like that,
-leaving _some_ of the new objects in the object database, but just
+because you interrupted a "git-fetch" with ^C or something like that,
+leaving <span class="emphasis"><em>some</em></span> of the new objects in the object database, but just
dangling and useless.</p><p>Anyway, once you are sure that you're not interested in any dangling
state, you can just prune all unreachable objects:</p><div class="literallayout"><p>$ git prune</p></div><p>and they'll be gone. But you should only run "git prune" on a quiescent
repository—it's kind of like doing a filesystem fsck recovery: you
in case you corrupt things even more in the process.</p><p>We'll assume that the problem is a single missing or corrupted blob,
which is sometimes a solvable problem. (Recovering missing trees and
especially commits is <span class="strong"><strong>much</strong></span> harder).</p><p>Before starting, verify that there is corruption, and figure out where
-it is with <a href="git-fsck.html" target="_top">git-fsck(1)</a>; this may be time-consuming.</p><p>Assume the output looks like this:</p><div class="literallayout"><p>$ git fsck --full<br>
+it is with <a class="ulink" href="git-fsck.html" target="_top">git-fsck(1)</a>; this may be time-consuming.</p><p>Assume the output looks like this:</p><div class="literallayout"><p>$ git fsck --full<br>
broken link from tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8<br>
to blob 4b9458b3786228369c63936db65827de3cc06200<br>
missing blob 4b9458b3786228369c63936db65827de3cc06200</p></div><p>(Typically there will be some "dangling object" messages too, but they
points to it. If you could find just one copy of that missing blob
object, possibly in some other repository, you could move it into
.git/objects/4b/9458b3… and be done. Suppose you can't. You can
-still examine the tree that pointed to it with <a href="git-ls-tree.html" target="_top">git-ls-tree(1)</a>,
+still examine the tree that pointed to it with <a class="ulink" href="git-ls-tree.html" target="_top">git-ls-tree(1)</a>,
which might output something like:</p><div class="literallayout"><p>$ git ls-tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8<br>
100644 blob 8d14531846b95bfa3564b58ccfb7913a034323b8 .gitignore<br>
100644 blob ebf9bf84da0aab5ed944264a5db2a65fe3a3e883 .mailmap<br>
say it's in "somedirectory". If you're lucky the missing copy might be
the same as the copy you have checked out in your working tree at
"somedirectory/myfile"; you can test whether that's right with
-<a href="git-hash-object.html" target="_top">git-hash-object(1)</a>:</p><div class="literallayout"><p>$ git hash-object -w somedirectory/myfile</p></div><p>which will create and store a blob object with the contents of
+<a class="ulink" href="git-hash-object.html" target="_top">git-hash-object(1)</a>:</p><div class="literallayout"><p>$ git hash-object -w somedirectory/myfile</p></div><p>which will create and store a blob object with the contents of
somedirectory/myfile, and output the sha1 of that object. if you're
extremely lucky it might be 4b9458b3786228369c63936db65827de3cc06200, in
which case you've guessed right, and the corruption is fixed!</p><p>Otherwise, you need more information. How do you tell which version of
whole thing. It's up to you - git does <span class="strong"><strong>have</strong></span> a lot of information, it is
just missing one particular blob version.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="the-index"></a>The index</h2></div></div></div><p>The index is a binary file (generally kept in .git/index) containing a
sorted list of path names, each with permissions and the SHA1 of a blob
-object; <a href="git-ls-files.html" target="_top">git-ls-files(1)</a> can show you the contents of the index:</p><div class="literallayout"><p>$ git ls-files --stage<br>
+object; <a class="ulink" href="git-ls-files.html" target="_top">git-ls-files(1)</a> can show you the contents of the index:</p><div class="literallayout"><p>$ git ls-files --stage<br>
100644 63c918c667fa005ff12ad89437f2fdc80926e21c 0 .gitignore<br>
100644 5529b198e8d14decbe4ad99db3f7fb632de0439d 0 .mailmap<br>
100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0 COPYING<br>
properties:</p><div class="orderedlist"><ol type="1"><li><p>
The index contains all the information necessary to generate a single
(uniquely determined) tree object.
-</p><p>For example, running <a href="git-commit.html" target="_top">git-commit(1)</a> generates this tree object
+</p><p>For example, running <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a> generates this tree object
from the index, stores it in the object database, and uses it as the
tree object associated with the new commit.</p></li><li><p>
The index enables fast comparisons between the tree object it defines
between different tree objects, allowing each pathname to be
associated with sufficient information about the trees involved that
you can create a three-way merge between them.
-</p><p>We saw in <a href="#conflict-resolution" title="Getting conflict-resolution help during a merge">the section called “Getting conflict-resolution help during a merge”</a> that during a merge the index can
+</p><p>We saw in <a class="xref" href="#conflict-resolution" title="Getting conflict-resolution help during a merge">the section called “Getting conflict-resolution help during a merge”</a> that during a merge the index can
store multiple versions of a single file (called "stages"). The third
-column in the <a href="git-ls-files.html" target="_top">git-ls-files(1)</a> output above is the stage
+column in the <a class="ulink" href="git-ls-files.html" target="_top">git-ls-files(1)</a> output above is the stage
number, and will take on values other than 0 for files with merge
conflicts.</p></li></ol></div><p>The index is thus a sort of temporary staging area, which is filled with
a tree which you are in the process of working on.</p><p>If you blow the index away entirely, you generally haven't lost any
-information as long as you have the name of the tree that it described.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="submodules"></a>Chapter 8. Submodules</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id280263">Pitfalls with submodules</a></span></dt></dl></div><p>Large projects are often composed of smaller, self-contained modules. For
+information as long as you have the name of the tree that it described.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="submodules"></a>Chapter 8. Submodules</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></div><p>Large projects are often composed of smaller, self-contained modules. For
example, an embedded Linux distribution's source tree would include every
piece of software in the distribution with some local modifications; a movie
player might need to build against a specific, known-working version of a
commit ID, so other developers who clone the containing project
("superproject") can easily clone all the submodules at the same revision.
Partial checkouts of the superproject are possible: you can tell Git to
-clone none, some or all of the submodules.</p><p>The <a href="git-submodule.html" target="_top">git-submodule(1)</a> command is available since Git 1.5.3. Users
+clone none, some or all of the submodules.</p><p>The <a class="ulink" href="git-submodule.html" target="_top">git-submodule(1)</a> command is available since Git 1.5.3. Users
with Git 1.5.2 can look up the submodule commits in the repository and
manually check them out; earlier versions won't recognize the submodules at
all.</p><p>To see how submodule support works, create (for example) four example
It clones the submodule under the current directory and by default checks out
the master branch.
</li><li>
-It adds the submodule's clone path to the <a href="gitmodules.html" target="_top">gitmodules(5)</a> file and
+It adds the submodule's clone path to the <a class="ulink" href="gitmodules.html" target="_top">gitmodules(5)</a> file and
adds this file to the index, ready to be committed.
</li><li>
It adds the submodule's current commit ID to the index, ready to be
$ git add a<br>
$ git commit -m "Updated submodule a."<br>
$ git push</p></div><p>You have to run <code class="literal">git submodule update</code> after <code class="literal">git pull</code> if you want to update
-submodules, too.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id280263"></a>Pitfalls with submodules</h2></div></div></div><p>Always publish the submodule change before publishing the change to the
+submodules, too.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_pitfalls_with_submodules"></a>Pitfalls with submodules</h2></div></div></div><p>Always publish the submodule change before publishing the change to the
superproject that references it. If you forget to publish the submodule change,
others won't be able to clone the repository:</p><div class="literallayout"><p>$ cd ~/git/super/a<br>
$ echo i added another line to this file >> a.txt<br>
module a</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The changes are still visible in the submodule's reflog.</p></div><p>This is not the case if you did not commit your changes.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="low-level-operations"></a>Chapter 9. Low-level git operations</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory -> index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index -> object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database -> index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index -> working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></div><p>Many of the higher-level commands were originally implemented as shell
scripts using a smaller core of low-level git commands. These can still
be useful when doing unusual things with git, or just as a way to
-understand its inner workings.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="object-manipulation"></a>Object access and manipulation</h2></div></div></div><p>The <a href="git-cat-file.html" target="_top">git-cat-file(1)</a> command can show the contents of any object,
-though the higher-level <a href="git-show.html" target="_top">git-show(1)</a> is usually more useful.</p><p>The <a href="git-commit-tree.html" target="_top">git-commit-tree(1)</a> command allows constructing commits with
-arbitrary parents and trees.</p><p>A tree can be created with <a href="git-write-tree.html" target="_top">git-write-tree(1)</a> and its data can be
-accessed by <a href="git-ls-tree.html" target="_top">git-ls-tree(1)</a>. Two trees can be compared with
-<a href="git-diff-tree.html" target="_top">git-diff-tree(1)</a>.</p><p>A tag is created with <a href="git-mktag.html" target="_top">git-mktag(1)</a>, and the signature can be
-verified by <a href="git-verify-tag.html" target="_top">git-verify-tag(1)</a>, though it is normally simpler to
-use <a href="git-tag.html" target="_top">git-tag(1)</a> for both.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="the-workflow"></a>The Workflow</h2></div></div></div><p>High-level operations such as <a href="git-commit.html" target="_top">git-commit(1)</a>,
-<a href="git-checkout.html" target="_top">git-checkout(1)</a> and <a href="git-reset.html" target="_top">git-reset(1)</a> work by moving data
+understand its inner workings.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="object-manipulation"></a>Object access and manipulation</h2></div></div></div><p>The <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a> command can show the contents of any object,
+though the higher-level <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> is usually more useful.</p><p>The <a class="ulink" href="git-commit-tree.html" target="_top">git-commit-tree(1)</a> command allows constructing commits with
+arbitrary parents and trees.</p><p>A tree can be created with <a class="ulink" href="git-write-tree.html" target="_top">git-write-tree(1)</a> and its data can be
+accessed by <a class="ulink" href="git-ls-tree.html" target="_top">git-ls-tree(1)</a>. Two trees can be compared with
+<a class="ulink" href="git-diff-tree.html" target="_top">git-diff-tree(1)</a>.</p><p>A tag is created with <a class="ulink" href="git-mktag.html" target="_top">git-mktag(1)</a>, and the signature can be
+verified by <a class="ulink" href="git-verify-tag.html" target="_top">git-verify-tag(1)</a>, though it is normally simpler to
+use <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> for both.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="the-workflow"></a>The Workflow</h2></div></div></div><p>High-level operations such as <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a>,
+<a class="ulink" href="git-checkout.html" target="_top">git-checkout(1)</a> and <a class="ulink" href="git-reset.html" target="_top">git-reset(1)</a> work by moving data
between the working tree, the index, and the object database. Git
provides low-level operations which perform each of these steps
individually.</p><p>Generally, all "git" operations work on the index file. Some operations
work <span class="strong"><strong>purely</strong></span> on the index file (showing the current state of the
index), but most operations move data between the index file and either
the database or the working directory. Thus there are four main
-combinations:</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="working-directory-to-index"></a>working directory -> index</h3></div></div></div><p>The <a href="git-update-index.html" target="_top">git-update-index(1)</a> command updates the index with
+combinations:</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="working-directory-to-index"></a>working directory -> index</h3></div></div></div><p>The <a class="ulink" href="git-update-index.html" target="_top">git-update-index(1)</a> command updates the index with
information from the working directory. You generally update the
index information by just specifying the filename you want to update,
like so:</p><div class="literallayout"><p>$ git update-index filename</p></div><p>but to avoid common mistakes with filename globbing etc, the command
structure, the index will be updated with their new status, not
removed. The only thing <code class="literal">—remove</code> means is that update-index will be
considering a removed file to be a valid thing, and if the file really
-does not exist any more, it will update the index accordingly.</p><p>As a special case, you can also do <code class="literal">git-update-index —refresh</code>, which
+does not exist any more, it will update the index accordingly.</p><p>As a special case, you can also do <code class="literal">git update-index —refresh</code>, which
will refresh the "stat" information of each index to match the current
stat information. It will <span class="emphasis"><em>not</em></span> update the object status itself, and
it will only update the fields that are used to quickly test whether
-an object still matches its old backing store object.</p><p>The previously introduced <a href="git-add.html" target="_top">git-add(1)</a> is just a wrapper for
-<a href="git-update-index.html" target="_top">git-update-index(1)</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="index-to-object-database"></a>index -> object database</h3></div></div></div><p>You write your current index file to a "tree" object with the program</p><div class="literallayout"><p>$ git write-tree</p></div><p>that doesn't come with any options—it will just write out the
+an object still matches its old backing store object.</p><p>The previously introduced <a class="ulink" href="git-add.html" target="_top">git-add(1)</a> is just a wrapper for
+<a class="ulink" href="git-update-index.html" target="_top">git-update-index(1)</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="index-to-object-database"></a>index -> object database</h3></div></div></div><p>You write your current index file to a "tree" object with the program</p><div class="literallayout"><p>$ git write-tree</p></div><p>that doesn't come with any options—it will just write out the
current index into the set of tree objects that describe that state,
and it will return the name of the resulting top-level tree. You can
use that tree to re-generate the index at any time by going in the
if you have an old version of the tree already checked out, you will
need to use the "-f" flag (<span class="emphasis"><em>before</em></span> the "-a" flag or the filename) to
<span class="emphasis"><em>force</em></span> the checkout.</p><p>Finally, there are a few odds and ends which are not purely moving
-from one representation to the other:</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tying-it-all-together"></a>Tying it all together</h3></div></div></div><p>To commit a tree you have instantiated with "git-write-tree", you'd
+from one representation to the other:</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tying-it-all-together"></a>Tying it all together</h3></div></div></div><p>To commit a tree you have instantiated with "git write-tree", you'd
create a "commit" object that refers to that tree and the history
behind it—most notably the "parent" commits that preceded it in
history.</p><p>Normally a "commit" has one parent: the previous state of the tree
+-----------+<br>
</p></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="examining-the-data"></a>Examining the data</h2></div></div></div><p>You can examine the data represented in the object database and the
index with various helper tools. For every object, you can use
-<a href="git-cat-file.html" target="_top">git-cat-file(1)</a> to examine details about the
+<a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a> to examine details about the
object:</p><div class="literallayout"><p>$ git cat-file -t <objectname></p></div><p>shows the type of the object, and once you have the type (which is
usually implicit in where you find the object), you can use</p><div class="literallayout"><p>$ git cat-file blob|tree|commit|tag <objectname></p></div><p>to show its contents. NOTE! Trees have binary content, and as a result
there is a special helper for showing that content, called
always do a merge against your last commit (which should thus match what
you have in your current index anyway).</p><p>To do the merge, do</p><div class="literallayout"><p>$ git read-tree -m -u <origtree> <yourtree> <targettree></p></div><p>which will do all trivial merge operations for you directly in the
index file, and you can just write the result out with
-<code class="literal">git-write-tree</code>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="merging-multiple-trees-2"></a>Merging multiple trees, continued</h2></div></div></div><p>Sadly, many merges aren't trivial. If there are files that have
+<code class="literal">git write-tree</code>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="merging-multiple-trees-2"></a>Merging multiple trees, continued</h2></div></div></div><p>Sadly, many merges aren't trivial. If there are files that have
been added, moved or removed, or if both branches have modified the
same file, you will be left with an index tree that contains "merge
entries" in it. Such an index tree can <span class="emphasis"><em>NOT</em></span> be written out to a tree
start.</p><p>A good place to start is with the contents of the initial commit, with:</p><div class="literallayout"><p>$ git checkout e83c5163</p></div><p>The initial revision lays the foundation for almost everything git has
today, but is small enough to read in one sitting.</p><p>Note that terminology has changed since that revision. For example, the
README in that revision uses the word "changeset" to describe what we
-now call a <a href="#def_commit_object">commit</a>.</p><p>Also, we do not call it "cache" any more, but "index", however, the
+now call a <a class="link" href="#def_commit_object">commit</a>.</p><p>Also, we do not call it "cache" any more, but "index", however, the
file is still called <code class="literal">cache.h</code>. Remark: Not much reason to change it now,
especially since there is no good single name for it anyway, because it is
-basically _the_ header file which is included by _all_ of Git's C sources.</p><p>If you grasp the ideas in that initial commit, you should check out a
+basically <span class="emphasis"><em>the</em></span> header file which is included by <span class="emphasis"><em>all</em></span> of Git's C sources.</p><p>If you grasp the ideas in that initial commit, you should check out a
more recent version and skim <code class="literal">cache.h</code>, <code class="literal">object.h</code> and <code class="literal">commit.h</code>.</p><p>In the early days, Git (in the tradition of UNIX) was a bunch of programs
which were extremely simple, and which you used in scripts, piping the
output of one into another. This turned out to be good for initial
structures in <code class="literal">cache.h</code>), and that there are just a couple of object types
(blobs, trees, commits and tags) which inherit their common structure from
<code class="literal">struct object</code>, which is their first member (and thus, you can cast e.g.
-<code class="literal">(struct object *)commit</code> to achieve the _same_ as <code class="literal">&commit->object</code>, i.e.
-get at the object name and flags).</p><p>Now is a good point to take a break to let this information sink in.</p><p>Next step: get familiar with the object naming. Read <a href="#naming-commits" title="Naming commits">the section called “Naming commits”</a>.
+<code class="literal">(struct object *)commit</code> to achieve the <span class="emphasis"><em>same</em></span> as <code class="literal">&commit->object</code>, i.e.
+get at the object name and flags).</p><p>Now is a good point to take a break to let this information sink in.</p><p>Next step: get familiar with the object naming. Read <a class="xref" href="#naming-commits" title="Naming commits">the section called “Naming commits”</a>.
There are quite a few ways to name an object (and not only revisions!).
All of these are handled in <code class="literal">sha1_name.c</code>. Just have a quick look at
the function <code class="literal">get_sha1()</code>. A lot of the special handling is done by
functions like <code class="literal">get_sha1_basic()</code> or the likes.</p><p>This is just to get you into the groove for the most libified part of Git:
-the revision walker.</p><p>Basically, the initial version of <code class="literal">git log</code> was a shell script:</p><div class="literallayout"><p>$ git-rev-list --pretty $(git-rev-parse --default HEAD "$@") | \<br>
+the revision walker.</p><p>Basically, the initial version of <code class="literal">git-log</code> was a shell script:</p><div class="literallayout"><p>$ git-rev-list --pretty $(git-rev-parse --default HEAD "$@") | \<br>
LESS=-S ${PAGER:-less}</p></div><p>What does this mean?</p><p><code class="literal">git-rev-list</code> is the original version of the revision walker, which
-_always_ printed a list of revisions to stdout. It is still functional,
+<span class="emphasis"><em>always</em></span> printed a list of revisions to stdout. It is still functional,
and needs to, since most new Git programs start out as scripts using
<code class="literal">git-rev-list</code>.</p><p><code class="literal">git-rev-parse</code> is not as important any more; it was only used to filter out
options that were relevant for the different plumbing commands that were
commits one by one with the function <code class="literal">get_revision()</code>.</p><p>If you are interested in more details of the revision walking process,
just have a look at the first implementation of <code class="literal">cmd_log()</code>; call
<code class="literal">git show v1.3.0~155^2~4</code> and scroll down to that function (note that you
-no longer need to call <code class="literal">setup_pager()</code> directly).</p><p>Nowadays, <code class="literal">git log</code> is a builtin, which means that it is _contained_ in the
+no longer need to call <code class="literal">setup_pager()</code> directly).</p><p>Nowadays, <code class="literal">git-log</code> is a builtin, which means that it is <span class="emphasis"><em>contained</em></span> in the
command <code class="literal">git</code>. The source side of a builtin is</p><div class="itemizedlist"><ul type="disc"><li>
a function called <code class="literal">cmd_<bla></code>, typically defined in <code class="literal">builtin-<bla>.c</code>,
and declared in <code class="literal">builtin.h</code>,
</li></ul></div><p>Sometimes, more than one builtin is contained in one source file. For
example, <code class="literal">cmd_whatchanged()</code> and <code class="literal">cmd_log()</code> both reside in <code class="literal">builtin-log.c</code>,
since they share quite a bit of code. In that case, the commands which are
-_not_ named like the <code class="literal">.c</code> file in which they live have to be listed in
-<code class="literal">BUILT_INS</code> in the <code class="literal">Makefile</code>.</p><p><code class="literal">git log</code> looks more complicated in C than it does in the original script,
+<span class="emphasis"><em>not</em></span> named like the <code class="literal">.c</code> file in which they live have to be listed in
+<code class="literal">BUILT_INS</code> in the <code class="literal">Makefile</code>.</p><p><code class="literal">git-log</code> looks more complicated in C than it does in the original script,
but that allows for a much greater flexibility and performance.</p><p>Here again it is a good point to take a pause.</p><p>Lesson three is: study the code. Really, it is the best way to learn about
the organization of Git (after you know the basic concepts).</p><p>So, think about something which you are interested in, say, "how can I
access a blob just knowing the object name of it?". The first step is to
find a Git command with which you can do it. In this example, it is either
-<code class="literal">git show</code> or <code class="literal">git cat-file</code>.</p><p>For the sake of clarity, let's stay with <code class="literal">git cat-file</code>, because it</p><div class="itemizedlist"><ul type="disc"><li>
+<code class="literal">git-show</code> or <code class="literal">git-cat-file</code>.</p><p>For the sake of clarity, let's stay with <code class="literal">git-cat-file</code>, because it</p><div class="itemizedlist"><ul type="disc"><li>
is plumbing, and
</li><li>
was around even in the initial commit (it literally went only through
here is the call to <code class="literal">get_sha1()</code>. It tries to interpret <code class="literal">argv[2]</code> as an
object name, and if it refers to an object which is present in the current
repository, it writes the resulting SHA-1 into the variable <code class="literal">sha1</code>.</p><p>Two things are interesting here:</p><div class="itemizedlist"><ul type="disc"><li>
-<code class="literal">get_sha1()</code> returns 0 on _success_. This might surprise some new
+<code class="literal">get_sha1()</code> returns 0 on <span class="emphasis"><em>success</em></span>. This might surprise some new
Git hackers, but there is a long tradition in UNIX to return different
negative numbers in case of different errors—and 0 on success.
</li><li>
the source.</p><p>To find out how the result can be used, just read on in <code class="literal">cmd_cat_file()</code>:</p><div class="literallayout"><p> write_or_die(1, buf, size);</p></div><p>Sometimes, you do not know where to look for a feature. In many such cases,
it helps to search through the output of <code class="literal">git log</code>, and then <code class="literal">git-show</code> the
corresponding commit.</p><p>Example: If you know that there was some test case for <code class="literal">git-bundle</code>, but
-do not remember where it was (yes, you _could_ <code class="literal">git grep bundle t/</code>, but that
+do not remember where it was (yes, you <span class="emphasis"><em>could</em></span> <code class="literal">git grep bundle t/</code>, but that
does not illustrate the point!):</p><div class="literallayout"><p>$ git log --no-merges t/</p></div><p>In the pager (<code class="literal">less</code>), just search for "bundle", go a few lines back,
and see that it is in commit 18449ab0… Now just copy this object name,
and paste it into the command line</p><div class="literallayout"><p>$ git show 18449ab0</p></div><p>Voila.</p><p>Another example: Find out what to do in order to make some script a
itself!</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="glossary"></a>Chapter 11. GIT Glossary</h2></div></div></div><div class="variablelist"><dl><dt><span class="term">
<a name="def_alternate_object_database"></a>alternate object database
</span></dt><dd>
- Via the alternates mechanism, a <a href="#def_repository">repository</a>
- can inherit part of its <a href="#def_object_database">object database</a>
+ Via the alternates mechanism, a <a class="link" href="#def_repository">repository</a>
+ can inherit part of its <a class="link" href="#def_object_database">object database</a>
from another object database, which is called "alternate".
</dd><dt><span class="term">
<a name="def_bare_repository"></a>bare repository
</span></dt><dd>
A bare repository is normally an appropriately
- named <a href="#def_directory">directory</a> with a <code class="literal">.git</code> suffix that does not
+ named <a class="link" href="#def_directory">directory</a> with a <code class="literal">.git</code> suffix that does not
have a locally checked-out copy of any of the files under
revision control. That is, all of the <code class="literal">git</code>
administrative and control files that would normally be present in the
</dd><dt><span class="term">
<a name="def_blob_object"></a>blob object
</span></dt><dd>
- Untyped <a href="#def_object">object</a>, e.g. the contents of a file.
+ Untyped <a class="link" href="#def_object">object</a>, e.g. the contents of a file.
</dd><dt><span class="term">
<a name="def_branch"></a>branch
</span></dt><dd>
A "branch" is an active line of development. The most recent
- <a href="#def_commit">commit</a> on a branch is referred to as the tip of
+ <a class="link" href="#def_commit">commit</a> on a branch is referred to as the tip of
that branch. The tip of the branch is referenced by a branch
- <a href="#def_head">head</a>, which moves forward as additional development
+ <a class="link" href="#def_head">head</a>, which moves forward as additional development
is done on the branch. A single git
- <a href="#def_repository">repository</a> can track an arbitrary number of
- branches, but your <a href="#def_working_tree">working tree</a> is
+ <a class="link" href="#def_repository">repository</a> can track an arbitrary number of
+ branches, but your <a class="link" href="#def_working_tree">working tree</a> is
associated with just one of them (the "current" or "checked out"
- branch), and <a href="#def_HEAD">HEAD</a> points to that branch.
+ branch), and <a class="link" href="#def_HEAD">HEAD</a> points to that branch.
</dd><dt><span class="term">
<a name="def_cache"></a>cache
</span></dt><dd>
- Obsolete for: <a href="#def_index">index</a>.
+ Obsolete for: <a class="link" href="#def_index">index</a>.
</dd><dt><span class="term">
<a name="def_chain"></a>chain
</span></dt><dd>
- A list of objects, where each <a href="#def_object">object</a> in the list contains
+ A list of objects, where each <a class="link" href="#def_object">object</a> in the list contains
a reference to its successor (for example, the successor of a
- <a href="#def_commit">commit</a> could be one of its <a href="#def_parent">parents</a>).
+ <a class="link" href="#def_commit">commit</a> could be one of its <a class="link" href="#def_parent">parents</a>).
</dd><dt><span class="term">
<a name="def_changeset"></a>changeset
</span></dt><dd>
- BitKeeper/cvsps speak for "<a href="#def_commit">commit</a>". Since git does not
+ BitKeeper/cvsps speak for "<a class="link" href="#def_commit">commit</a>". Since git does not
store changes, but states, it really does not make sense to use the term
"changesets" with git.
</dd><dt><span class="term">
<a name="def_checkout"></a>checkout
</span></dt><dd>
The action of updating all or part of the
- <a href="#def_working_tree">working tree</a> with a <a href="#def_tree_object">tree object</a>
- or <a href="#def_blob_object">blob</a> from the
- <a href="#def_object_database">object database</a>, and updating the
- <a href="#def_index">index</a> and <a href="#def_HEAD">HEAD</a> if the whole working tree has
- been pointed at a new <a href="#def_branch">branch</a>.
+ <a class="link" href="#def_working_tree">working tree</a> with a <a class="link" href="#def_tree_object">tree object</a>
+ or <a class="link" href="#def_blob_object">blob</a> from the
+ <a class="link" href="#def_object_database">object database</a>, and updating the
+ <a class="link" href="#def_index">index</a> and <a class="link" href="#def_HEAD">HEAD</a> if the whole working tree has
+ been pointed at a new <a class="link" href="#def_branch">branch</a>.
</dd><dt><span class="term">
<a name="def_cherry-picking"></a>cherry-picking
</span></dt><dd>
- In <a href="#def_SCM">SCM</a> jargon, "cherry pick" means to choose a subset of
+ In <a class="link" href="#def_SCM">SCM</a> jargon, "cherry pick" means to choose a subset of
changes out of a series of changes (typically commits) and record them
as a new series of changes on top of a different codebase. In GIT, this is
performed by the "git cherry-pick" command to extract the change introduced
- by an existing <a href="#def_commit">commit</a> and to record it based on the tip
- of the current <a href="#def_branch">branch</a> as a new commit.
+ by an existing <a class="link" href="#def_commit">commit</a> and to record it based on the tip
+ of the current <a class="link" href="#def_branch">branch</a> as a new commit.
</dd><dt><span class="term">
<a name="def_clean"></a>clean
</span></dt><dd>
- A <a href="#def_working_tree">working tree</a> is clean, if it
- corresponds to the <a href="#def_revision">revision</a> referenced by the current
- <a href="#def_head">head</a>. Also see "<a href="#def_dirty">dirty</a>".
+ A <a class="link" href="#def_working_tree">working tree</a> is clean, if it
+ corresponds to the <a class="link" href="#def_revision">revision</a> referenced by the current
+ <a class="link" href="#def_head">head</a>. Also see "<a class="link" href="#def_dirty">dirty</a>".
</dd><dt><span class="term">
<a name="def_commit"></a>commit
</span></dt><dd><p>
set of interrelated commits. The word "commit" is often
used by git in the same places other revision control systems
use the words "revision" or "version". Also used as a short
- hand for <a href="#def_commit_object">commit object</a>.
+ hand for <a class="link" href="#def_commit_object">commit object</a>.
</p><p>As a verb: The action of storing a new snapshot of the project's
state in the git history, by creating a new commit representing the current
-state of the <a href="#def_index">index</a> and advancing <a href="#def_HEAD">HEAD</a>
+state of the <a class="link" href="#def_index">index</a> and advancing <a class="link" href="#def_HEAD">HEAD</a>
to point at the new commit.</p></dd><dt><span class="term">
<a name="def_commit_object"></a>commit object
</span></dt><dd>
- An <a href="#def_object">object</a> which contains the information about a
- particular <a href="#def_revision">revision</a>, such as <a href="#def_parent">parents</a>, committer,
- author, date and the <a href="#def_tree_object">tree object</a> which corresponds
- to the top <a href="#def_directory">directory</a> of the stored
+ An <a class="link" href="#def_object">object</a> which contains the information about a
+ particular <a class="link" href="#def_revision">revision</a>, such as <a class="link" href="#def_parent">parents</a>, committer,
+ author, date and the <a class="link" href="#def_tree_object">tree object</a> which corresponds
+ to the top <a class="link" href="#def_directory">directory</a> of the stored
revision.
</dd><dt><span class="term">
<a name="def_core_git"></a>core git
</dd><dt><span class="term">
<a name="def_DAG"></a>DAG
</span></dt><dd>
- Directed acyclic graph. The <a href="#def_commit_object">commit objects</a> form a
+ Directed acyclic graph. The <a class="link" href="#def_commit_object">commit objects</a> form a
directed acyclic graph, because they have parents (directed), and the
- graph of commit objects is acyclic (there is no <a href="#def_chain">chain</a>
- which begins and ends with the same <a href="#def_object">object</a>).
+ graph of commit objects is acyclic (there is no <a class="link" href="#def_chain">chain</a>
+ which begins and ends with the same <a class="link" href="#def_object">object</a>).
</dd><dt><span class="term">
<a name="def_dangling_object"></a>dangling object
</span></dt><dd>
- An <a href="#def_unreachable_object">unreachable object</a> which is not
- <a href="#def_reachable">reachable</a> even from other unreachable objects; a
+ An <a class="link" href="#def_unreachable_object">unreachable object</a> which is not
+ <a class="link" href="#def_reachable">reachable</a> even from other unreachable objects; a
dangling object has no references to it from any
- reference or <a href="#def_object">object</a> in the <a href="#def_repository">repository</a>.
+ reference or <a class="link" href="#def_object">object</a> in the <a class="link" href="#def_repository">repository</a>.
</dd><dt><span class="term">
<a name="def_detached_HEAD"></a>detached HEAD
</span></dt><dd>
- Normally the <a href="#def_HEAD">HEAD</a> stores the name of a
- <a href="#def_branch">branch</a>. However, git also allows you to <a href="#def_checkout">check out</a>
- an arbitrary <a href="#def_commit">commit</a> that isn't necessarily the tip of any
+ Normally the <a class="link" href="#def_HEAD">HEAD</a> stores the name of a
+ <a class="link" href="#def_branch">branch</a>. However, git also allows you to <a class="link" href="#def_checkout">check out</a>
+ an arbitrary <a class="link" href="#def_commit">commit</a> that isn't necessarily the tip of any
particular branch. In this case HEAD is said to be "detached".
</dd><dt><span class="term">
<a name="def_dircache"></a>dircache
</span></dt><dd>
- You are <span class="strong"><strong>waaaaay</strong></span> behind. See <a href="#def_index">index</a>.
+ You are <span class="strong"><strong>waaaaay</strong></span> behind. See <a class="link" href="#def_index">index</a>.
</dd><dt><span class="term">
<a name="def_directory"></a>directory
</span></dt><dd>
</dd><dt><span class="term">
<a name="def_dirty"></a>dirty
</span></dt><dd>
- A <a href="#def_working_tree">working tree</a> is said to be "dirty" if
- it contains modifications which have not been <a href="#def_commit">committed</a> to the current
- <a href="#def_branch">branch</a>.
+ A <a class="link" href="#def_working_tree">working tree</a> is said to be "dirty" if
+ it contains modifications which have not been <a class="link" href="#def_commit">committed</a> to the current
+ <a class="link" href="#def_branch">branch</a>.
</dd><dt><span class="term">
<a name="def_ent"></a>ent
</span></dt><dd>
- Favorite synonym to "<a href="#def_tree-ish">tree-ish</a>" by some total geeks. See
+ Favorite synonym to "<a class="link" href="#def_tree-ish">tree-ish</a>" by some total geeks. See
<code class="literal">http://en.wikipedia.org/wiki/Ent_(Middle-earth)</code> for an in-depth
explanation. Avoid this term, not to confuse people.
</dd><dt><span class="term">
<a name="def_evil_merge"></a>evil merge
</span></dt><dd>
- An evil merge is a <a href="#def_merge">merge</a> that introduces changes that
- do not appear in any <a href="#def_parent">parent</a>.
+ An evil merge is a <a class="link" href="#def_merge">merge</a> that introduces changes that
+ do not appear in any <a class="link" href="#def_parent">parent</a>.
</dd><dt><span class="term">
<a name="def_fast_forward"></a>fast forward
</span></dt><dd>
- A fast-forward is a special type of <a href="#def_merge">merge</a> where you have a
- <a href="#def_revision">revision</a> and you are "merging" another
- <a href="#def_branch">branch</a>'s changes that happen to be a descendant of what
- you have. In such these cases, you do not make a new <a href="#def_merge">merge</a>
- <a href="#def_commit">commit</a> but instead just update to his
+ A fast-forward is a special type of <a class="link" href="#def_merge">merge</a> where you have a
+ <a class="link" href="#def_revision">revision</a> and you are "merging" another
+ <a class="link" href="#def_branch">branch</a>'s changes that happen to be a descendant of what
+ you have. In such these cases, you do not make a new <a class="link" href="#def_merge">merge</a>
+ <a class="link" href="#def_commit">commit</a> but instead just update to his
revision. This will happen frequently on a
- <a href="#def_tracking_branch">tracking branch</a> of a remote
- <a href="#def_repository">repository</a>.
+ <a class="link" href="#def_tracking_branch">tracking branch</a> of a remote
+ <a class="link" href="#def_repository">repository</a>.
</dd><dt><span class="term">
<a name="def_fetch"></a>fetch
</span></dt><dd>
- Fetching a <a href="#def_branch">branch</a> means to get the
- branch's <a href="#def_head_ref">head ref</a> from a remote
- <a href="#def_repository">repository</a>, to find out which objects are
- missing from the local <a href="#def_object_database">object database</a>,
- and to get them, too. See also <a href="git-fetch.html" target="_top">git-fetch(1)</a>.
+ Fetching a <a class="link" href="#def_branch">branch</a> means to get the
+ branch's <a class="link" href="#def_head_ref">head ref</a> from a remote
+ <a class="link" href="#def_repository">repository</a>, to find out which objects are
+ missing from the local <a class="link" href="#def_object_database">object database</a>,
+ and to get them, too. See also <a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a>.
</dd><dt><span class="term">
<a name="def_file_system"></a>file system
</span></dt><dd>
</dd><dt><span class="term">
<a name="def_git_archive"></a>git archive
</span></dt><dd>
- Synonym for <a href="#def_repository">repository</a> (for arch people).
+ Synonym for <a class="link" href="#def_repository">repository</a> (for arch people).
</dd><dt><span class="term">
<a name="def_grafts"></a>grafts
</span></dt><dd>
Grafts enables two otherwise different lines of development to be joined
together by recording fake ancestry information for commits. This way
- you can make git pretend the set of <a href="#def_parent">parents</a> a <a href="#def_commit">commit</a> has
+ you can make git pretend the set of <a class="link" href="#def_parent">parents</a> a <a class="link" href="#def_commit">commit</a> has
is different from what was recorded when the commit was
created. Configured via the <code class="literal">.git/info/grafts</code> file.
</dd><dt><span class="term">
<a name="def_hash"></a>hash
</span></dt><dd>
- In git's context, synonym to <a href="#def_object_name">object name</a>.
+ In git's context, synonym to <a class="link" href="#def_object_name">object name</a>.
</dd><dt><span class="term">
<a name="def_head"></a>head
</span></dt><dd>
- A <a href="#def_ref">named reference</a> to the <a href="#def_commit">commit</a> at the tip of a
- <a href="#def_branch">branch</a>. Heads are stored in
+ A <a class="link" href="#def_ref">named reference</a> to the <a class="link" href="#def_commit">commit</a> at the tip of a
+ <a class="link" href="#def_branch">branch</a>. Heads are stored in
<code class="literal">$GIT_DIR/refs/heads/</code>, except when using packed refs. (See
- <a href="git-pack-refs.html" target="_top">git-pack-refs(1)</a>.)
+ <a class="ulink" href="git-pack-refs.html" target="_top">git-pack-refs(1)</a>.)
</dd><dt><span class="term">
<a name="def_HEAD"></a>HEAD
</span></dt><dd>
- The current <a href="#def_branch">branch</a>. In more detail: Your <a href="#def_working_tree">working tree</a> is normally derived from the state of the tree
+ The current <a class="link" href="#def_branch">branch</a>. In more detail: Your <a class="link" href="#def_working_tree">working tree</a> is normally derived from the state of the tree
referred to by HEAD. HEAD is a reference to one of the
- <a href="#def_head">heads</a> in your repository, except when using a
- <a href="#def_detached_HEAD">detached HEAD</a>, in which case it may
+ <a class="link" href="#def_head">heads</a> in your repository, except when using a
+ <a class="link" href="#def_detached_HEAD">detached HEAD</a>, in which case it may
reference an arbitrary commit.
</dd><dt><span class="term">
<a name="def_head_ref"></a>head ref
</span></dt><dd>
- A synonym for <a href="#def_head">head</a>.
+ A synonym for <a class="link" href="#def_head">head</a>.
</dd><dt><span class="term">
<a name="def_hook"></a>hook
</span></dt><dd>
</span></dt><dd>
A collection of files with stat information, whose contents are stored
as objects. The index is a stored version of your
- <a href="#def_working_tree">working tree</a>. Truth be told, it can also contain a second, and even
+ <a class="link" href="#def_working_tree">working tree</a>. Truth be told, it can also contain a second, and even
a third version of a working tree, which are used
- when <a href="#def_merge">merging</a>.
+ when <a class="link" href="#def_merge">merging</a>.
</dd><dt><span class="term">
<a name="def_index_entry"></a>index entry
</span></dt><dd>
The information regarding a particular file, stored in the
- <a href="#def_index">index</a>. An index entry can be unmerged, if a
- <a href="#def_merge">merge</a> was started, but not yet finished (i.e. if
+ <a class="link" href="#def_index">index</a>. An index entry can be unmerged, if a
+ <a class="link" href="#def_merge">merge</a> was started, but not yet finished (i.e. if
the index contains multiple versions of that file).
</dd><dt><span class="term">
<a name="def_master"></a>master
</span></dt><dd>
- The default development <a href="#def_branch">branch</a>. Whenever you
- create a git <a href="#def_repository">repository</a>, a branch named
+ The default development <a class="link" href="#def_branch">branch</a>. Whenever you
+ create a git <a class="link" href="#def_repository">repository</a>, a branch named
"master" is created, and becomes the active branch. In most
cases, this contains the local development, though that is
purely by convention and is not required.
<a name="def_merge"></a>merge
</span></dt><dd><p>
As a verb: To bring the contents of another
- <a href="#def_branch">branch</a> (possibly from an external
- <a href="#def_repository">repository</a>) into the current branch. In the
+ <a class="link" href="#def_branch">branch</a> (possibly from an external
+ <a class="link" href="#def_repository">repository</a>) into the current branch. In the
case where the merged-in branch is from a different repository,
- this is done by first <a href="#def_fetch">fetching</a> the remote branch
+ this is done by first <a class="link" href="#def_fetch">fetching</a> the remote branch
and then merging the result into the current branch. This
combination of fetch and merge operations is called a
- <a href="#def_pull">pull</a>. Merging is performed by an automatic process
+ <a class="link" href="#def_pull">pull</a>. Merging is performed by an automatic process
that identifies changes made since the branches diverged, and
then applies all those changes together. In cases where changes
conflict, manual intervention may be required to complete the
merge.
-</p><p>As a noun: unless it is a <a href="#def_fast_forward">fast forward</a>, a
-successful merge results in the creation of a new <a href="#def_commit">commit</a>
+</p><p>As a noun: unless it is a <a class="link" href="#def_fast_forward">fast forward</a>, a
+successful merge results in the creation of a new <a class="link" href="#def_commit">commit</a>
representing the result of the merge, and having as
-<a href="#def_parent">parents</a> the tips of the merged <a href="#def_branch">branches</a>.
+<a class="link" href="#def_parent">parents</a> the tips of the merged <a class="link" href="#def_branch">branches</a>.
This commit is referred to as a "merge commit", or sometimes just a
"merge".</p></dd><dt><span class="term">
<a name="def_object"></a>object
</span></dt><dd>
The unit of storage in git. It is uniquely identified by the
- <a href="#def_SHA1">SHA1</a> of its contents. Consequently, an
+ <a class="link" href="#def_SHA1">SHA1</a> of its contents. Consequently, an
object can not be changed.
</dd><dt><span class="term">
<a name="def_object_database"></a>object database
</span></dt><dd>
- Stores a set of "objects", and an individual <a href="#def_object">object</a> is
- identified by its <a href="#def_object_name">object name</a>. The objects usually
+ Stores a set of "objects", and an individual <a class="link" href="#def_object">object</a> is
+ identified by its <a class="link" href="#def_object_name">object name</a>. The objects usually
live in <code class="literal">$GIT_DIR/objects/</code>.
</dd><dt><span class="term">
<a name="def_object_identifier"></a>object identifier
</span></dt><dd>
- Synonym for <a href="#def_object_name">object name</a>.
+ Synonym for <a class="link" href="#def_object_name">object name</a>.
</dd><dt><span class="term">
<a name="def_object_name"></a>object name
</span></dt><dd>
- The unique identifier of an <a href="#def_object">object</a>. The <a href="#def_hash">hash</a>
+ The unique identifier of an <a class="link" href="#def_object">object</a>. The <a class="link" href="#def_hash">hash</a>
of the object's contents using the Secure Hash Algorithm
1 and usually represented by the 40 character hexadecimal encoding of
- the <a href="#def_hash">hash</a> of the object.
+ the <a class="link" href="#def_hash">hash</a> of the object.
</dd><dt><span class="term">
<a name="def_object_type"></a>object type
</span></dt><dd>
- One of the identifiers "<a href="#def_commit_object">commit</a>",
- "<a href="#def_tree_object">tree</a>", "<a href="#def_tag_object">tag</a>" or
- "<a href="#def_blob_object">blob</a>" describing the type of an
- <a href="#def_object">object</a>.
+ One of the identifiers "<a class="link" href="#def_commit_object">commit</a>",
+ "<a class="link" href="#def_tree_object">tree</a>", "<a class="link" href="#def_tag_object">tag</a>" or
+ "<a class="link" href="#def_blob_object">blob</a>" describing the type of an
+ <a class="link" href="#def_object">object</a>.
</dd><dt><span class="term">
<a name="def_octopus"></a>octopus
</span></dt><dd>
- To <a href="#def_merge">merge</a> more than two <a href="#def_branch">branches</a>. Also denotes an
+ To <a class="link" href="#def_merge">merge</a> more than two <a class="link" href="#def_branch">branches</a>. Also denotes an
intelligent predator.
</dd><dt><span class="term">
<a name="def_origin"></a>origin
</span></dt><dd>
- The default upstream <a href="#def_repository">repository</a>. Most projects have
+ The default upstream <a class="link" href="#def_repository">repository</a>. Most projects have
at least one upstream project which they track. By default
<span class="emphasis"><em>origin</em></span> is used for that purpose. New upstream updates
- will be fetched into remote <a href="#def_tracking_branch">tracking branches</a> named
+ will be fetched into remote <a class="link" href="#def_tracking_branch">tracking branches</a> named
origin/name-of-upstream-branch, which you can see using
"<code class="literal">git branch -r</code>".
</dd><dt><span class="term">
<a name="def_pack_index"></a>pack index
</span></dt><dd>
The list of identifiers, and other information, of the objects in a
- <a href="#def_pack">pack</a>, to assist in efficiently accessing the contents of a
+ <a class="link" href="#def_pack">pack</a>, to assist in efficiently accessing the contents of a
pack.
</dd><dt><span class="term">
<a name="def_parent"></a>parent
</span></dt><dd>
- A <a href="#def_commit_object">commit object</a> contains a (possibly empty) list
+ A <a class="link" href="#def_commit_object">commit object</a> contains a (possibly empty) list
of the logical predecessor(s) in the line of development, i.e. its
parents.
</dd><dt><span class="term">
<a name="def_pickaxe"></a>pickaxe
</span></dt><dd>
- The term <a href="#def_pickaxe">pickaxe</a> refers to an option to the diffcore
+ The term <a class="link" href="#def_pickaxe">pickaxe</a> refers to an option to the diffcore
routines that help select changes that add or delete a given text
string. With the <code class="literal">—pickaxe-all</code> option, it can be used to view the full
- <a href="#def_changeset">changeset</a> that introduced or removed, say, a
- particular line of text. See <a href="git-diff.html" target="_top">git-diff(1)</a>.
+ <a class="link" href="#def_changeset">changeset</a> that introduced or removed, say, a
+ particular line of text. See <a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a>.
</dd><dt><span class="term">
<a name="def_plumbing"></a>plumbing
</span></dt><dd>
- Cute name for <a href="#def_core_git">core git</a>.
+ Cute name for <a class="link" href="#def_core_git">core git</a>.
</dd><dt><span class="term">
<a name="def_porcelain"></a>porcelain
</span></dt><dd>
Cute name for programs and program suites depending on
- <a href="#def_core_git">core git</a>, presenting a high level access to
- core git. Porcelains expose more of a <a href="#def_SCM">SCM</a>
- interface than the <a href="#def_plumbing">plumbing</a>.
+ <a class="link" href="#def_core_git">core git</a>, presenting a high level access to
+ core git. Porcelains expose more of a <a class="link" href="#def_SCM">SCM</a>
+ interface than the <a class="link" href="#def_plumbing">plumbing</a>.
</dd><dt><span class="term">
<a name="def_pull"></a>pull
</span></dt><dd>
- Pulling a <a href="#def_branch">branch</a> means to <a href="#def_fetch">fetch</a> it and
- <a href="#def_merge">merge</a> it. See also <a href="git-pull.html" target="_top">git-pull(1)</a>.
+ Pulling a <a class="link" href="#def_branch">branch</a> means to <a class="link" href="#def_fetch">fetch</a> it and
+ <a class="link" href="#def_merge">merge</a> it. See also <a class="ulink" href="git-pull.html" target="_top">git-pull(1)</a>.
</dd><dt><span class="term">
<a name="def_push"></a>push
</span></dt><dd>
- Pushing a <a href="#def_branch">branch</a> means to get the branch's
- <a href="#def_head_ref">head ref</a> from a remote <a href="#def_repository">repository</a>,
+ Pushing a <a class="link" href="#def_branch">branch</a> means to get the branch's
+ <a class="link" href="#def_head_ref">head ref</a> from a remote <a class="link" href="#def_repository">repository</a>,
find out if it is a direct ancestor to the branch's local
head ref, and in that case, putting all
- objects, which are <a href="#def_reachable">reachable</a> from the local
+ objects, which are <a class="link" href="#def_reachable">reachable</a> from the local
head ref, and which are missing from the remote
repository, into the remote
- <a href="#def_object_database">object database</a>, and updating the remote
- head ref. If the remote <a href="#def_head">head</a> is not an
+ <a class="link" href="#def_object_database">object database</a>, and updating the remote
+ head ref. If the remote <a class="link" href="#def_head">head</a> is not an
ancestor to the local head, the push fails.
</dd><dt><span class="term">
<a name="def_reachable"></a>reachable
</span></dt><dd>
- All of the ancestors of a given <a href="#def_commit">commit</a> are said to be
+ All of the ancestors of a given <a class="link" href="#def_commit">commit</a> are said to be
"reachable" from that commit. More
- generally, one <a href="#def_object">object</a> is reachable from
- another if we can reach the one from the other by a <a href="#def_chain">chain</a>
- that follows <a href="#def_tag">tags</a> to whatever they tag,
- <a href="#def_commit_object">commits</a> to their parents or trees, and
- <a href="#def_tree_object">trees</a> to the trees or <a href="#def_blob_object">blobs</a>
+ generally, one <a class="link" href="#def_object">object</a> is reachable from
+ another if we can reach the one from the other by a <a class="link" href="#def_chain">chain</a>
+ that follows <a class="link" href="#def_tag">tags</a> to whatever they tag,
+ <a class="link" href="#def_commit_object">commits</a> to their parents or trees, and
+ <a class="link" href="#def_tree_object">trees</a> to the trees or <a class="link" href="#def_blob_object">blobs</a>
that they contain.
</dd><dt><span class="term">
<a name="def_rebase"></a>rebase
</span></dt><dd>
- To reapply a series of changes from a <a href="#def_branch">branch</a> to a
- different base, and reset the <a href="#def_head">head</a> of that branch
+ To reapply a series of changes from a <a class="link" href="#def_branch">branch</a> to a
+ different base, and reset the <a class="link" href="#def_head">head</a> of that branch
to the result.
</dd><dt><span class="term">
<a name="def_ref"></a>ref
</span></dt><dd>
- A 40-byte hex representation of a <a href="#def_SHA1">SHA1</a> or a name that
- denotes a particular <a href="#def_object">object</a>. These may be stored in
+ A 40-byte hex representation of a <a class="link" href="#def_SHA1">SHA1</a> or a name that
+ denotes a particular <a class="link" href="#def_object">object</a>. These may be stored in
<code class="literal">$GIT_DIR/refs/</code>.
</dd><dt><span class="term">
<a name="def_reflog"></a>reflog
</span></dt><dd>
A reflog shows the local "history" of a ref. In other words,
- it can tell you what the 3rd last revision in _this_ repository
- was, and what was the current state in _this_ repository,
- yesterday 9:14pm. See <a href="git-reflog.html" target="_top">git-reflog(1)</a> for details.
+ it can tell you what the 3rd last revision in <span class="emphasis"><em>this</em></span> repository
+ was, and what was the current state in <span class="emphasis"><em>this</em></span> repository,
+ yesterday 9:14pm. See <a class="ulink" href="git-reflog.html" target="_top">git-reflog(1)</a> for details.
</dd><dt><span class="term">
<a name="def_refspec"></a>refspec
</span></dt><dd>
- A "refspec" is used by <a href="#def_fetch">fetch</a> and
- <a href="#def_push">push</a> to describe the mapping between remote
- <a href="#def_ref">ref</a> and local ref. They are combined with a colon in
+ A "refspec" is used by <a class="link" href="#def_fetch">fetch</a> and
+ <a class="link" href="#def_push">push</a> to describe the mapping between remote
+ <a class="link" href="#def_ref">ref</a> and local ref. They are combined with a colon in
the format <src>:<dst>, preceded by an optional plus sign, +.
For example: <code class="literal">git fetch $URL
refs/heads/master:refs/heads/origin</code> means "grab the master
- <a href="#def_branch">branch</a> <a href="#def_head">head</a> from the $URL and store
+ <a class="link" href="#def_branch">branch</a> <a class="link" href="#def_head">head</a> from the $URL and store
it as my origin branch head". And <code class="literal">git push
$URL refs/heads/master:refs/heads/to-upstream</code> means "publish my
master branch head as to-upstream branch at $URL". See also
- <a href="git-push.html" target="_top">git-push(1)</a>.
+ <a class="ulink" href="git-push.html" target="_top">git-push(1)</a>.
</dd><dt><span class="term">
<a name="def_repository"></a>repository
</span></dt><dd>
- A collection of <a href="#def_ref">refs</a> together with an
- <a href="#def_object_database">object database</a> containing all objects
- which are <a href="#def_reachable">reachable</a> from the refs, possibly
- accompanied by meta data from one or more <a href="#def_porcelain">porcelains</a>. A
+ A collection of <a class="link" href="#def_ref">refs</a> together with an
+ <a class="link" href="#def_object_database">object database</a> containing all objects
+ which are <a class="link" href="#def_reachable">reachable</a> from the refs, possibly
+ accompanied by meta data from one or more <a class="link" href="#def_porcelain">porcelains</a>. A
repository can share an object database with other repositories
- via <a href="#def_alternate_object_database">alternates mechanism</a>.
+ via <a class="link" href="#def_alternate_object_database">alternates mechanism</a>.
</dd><dt><span class="term">
<a name="def_resolve"></a>resolve
</span></dt><dd>
The action of fixing up manually what a failed automatic
- <a href="#def_merge">merge</a> left behind.
+ <a class="link" href="#def_merge">merge</a> left behind.
</dd><dt><span class="term">
<a name="def_revision"></a>revision
</span></dt><dd>
A particular state of files and directories which was stored in the
- <a href="#def_object_database">object database</a>. It is referenced by a
- <a href="#def_commit_object">commit object</a>.
+ <a class="link" href="#def_object_database">object database</a>. It is referenced by a
+ <a class="link" href="#def_commit_object">commit object</a>.
</dd><dt><span class="term">
<a name="def_rewind"></a>rewind
</span></dt><dd>
To throw away part of the development, i.e. to assign the
- <a href="#def_head">head</a> to an earlier <a href="#def_revision">revision</a>.
+ <a class="link" href="#def_head">head</a> to an earlier <a class="link" href="#def_revision">revision</a>.
</dd><dt><span class="term">
<a name="def_SCM"></a>SCM
</span></dt><dd>
</dd><dt><span class="term">
<a name="def_SHA1"></a>SHA1
</span></dt><dd>
- Synonym for <a href="#def_object_name">object name</a>.
+ Synonym for <a class="link" href="#def_object_name">object name</a>.
</dd><dt><span class="term">
<a name="def_shallow_repository"></a>shallow repository
</span></dt><dd>
- A shallow <a href="#def_repository">repository</a> has an incomplete
- history some of whose <a href="#def_commit">commits</a> have <a href="#def_parent">parents</a> cauterized away (in other
+ A shallow <a class="link" href="#def_repository">repository</a> has an incomplete
+ history some of whose <a class="link" href="#def_commit">commits</a> have <a class="link" href="#def_parent">parents</a> cauterized away (in other
words, git is told to pretend that these commits do not have the
- parents, even though they are recorded in the <a href="#def_commit_object">commit object</a>). This is sometimes useful when you are interested only in the
+ parents, even though they are recorded in the <a class="link" href="#def_commit_object">commit object</a>). This is sometimes useful when you are interested only in the
recent history of a project even though the real history recorded in the
upstream is much larger. A shallow repository
- is created by giving the <code class="literal">—depth</code> option to <a href="git-clone.html" target="_top">git-clone(1)</a>, and
- its history can be later deepened with <a href="git-fetch.html" target="_top">git-fetch(1)</a>.
+ is created by giving the <code class="literal">—depth</code> option to <a class="ulink" href="git-clone.html" target="_top">git-clone(1)</a>, and
+ its history can be later deepened with <a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a>.
</dd><dt><span class="term">
<a name="def_symref"></a>symref
</span></dt><dd>
- Symbolic reference: instead of containing the <a href="#def_SHA1">SHA1</a>
+ Symbolic reference: instead of containing the <a class="link" href="#def_SHA1">SHA1</a>
id itself, it is of the format <span class="emphasis"><em>ref: refs/some/thing</em></span> and when
referenced, it recursively dereferences to this reference.
- <span class="emphasis"><em><a href="#def_HEAD">HEAD</a></em></span> is a prime example of a symref. Symbolic
- references are manipulated with the <a href="git-symbolic-ref.html" target="_top">git-symbolic-ref(1)</a>
+ <span class="emphasis"><em><a class="link" href="#def_HEAD">HEAD</a></em></span> is a prime example of a symref. Symbolic
+ references are manipulated with the <a class="ulink" href="git-symbolic-ref.html" target="_top">git-symbolic-ref(1)</a>
command.
</dd><dt><span class="term">
<a name="def_tag"></a>tag
</span></dt><dd>
- A <a href="#def_ref">ref</a> pointing to a <a href="#def_tag_object">tag</a> or
- <a href="#def_commit_object">commit object</a>. In contrast to a <a href="#def_head">head</a>,
- a tag is not changed by a <a href="#def_commit">commit</a>. Tags (not
- <a href="#def_tag_object">tag objects</a>) are stored in <code class="literal">$GIT_DIR/refs/tags/</code>. A
+ A <a class="link" href="#def_ref">ref</a> pointing to a <a class="link" href="#def_tag_object">tag</a> or
+ <a class="link" href="#def_commit_object">commit object</a>. In contrast to a <a class="link" href="#def_head">head</a>,
+ a tag is not changed by a <a class="link" href="#def_commit">commit</a>. Tags (not
+ <a class="link" href="#def_tag_object">tag objects</a>) are stored in <code class="literal">$GIT_DIR/refs/tags/</code>. A
git tag has nothing to do with a Lisp tag (which would be
- called an <a href="#def_object_type">object type</a> in git's context). A
+ called an <a class="link" href="#def_object_type">object type</a> in git's context). A
tag is most typically used to mark a particular point in the
- commit ancestry <a href="#def_chain">chain</a>.
+ commit ancestry <a class="link" href="#def_chain">chain</a>.
</dd><dt><span class="term">
<a name="def_tag_object"></a>tag object
</span></dt><dd>
- An <a href="#def_object">object</a> containing a <a href="#def_ref">ref</a> pointing to
+ An <a class="link" href="#def_object">object</a> containing a <a class="link" href="#def_ref">ref</a> pointing to
another object, which can contain a message just like a
- <a href="#def_commit_object">commit object</a>. It can also contain a (PGP)
+ <a class="link" href="#def_commit_object">commit object</a>. It can also contain a (PGP)
signature, in which case it is called a "signed tag object".
</dd><dt><span class="term">
<a name="def_topic_branch"></a>topic branch
</span></dt><dd>
- A regular git <a href="#def_branch">branch</a> that is used by a developer to
+ A regular git <a class="link" href="#def_branch">branch</a> that is used by a developer to
identify a conceptual line of development. Since branches are very easy
and inexpensive, it is often desirable to have several small branches
that each contain very well defined concepts or small incremental yet
</dd><dt><span class="term">
<a name="def_tracking_branch"></a>tracking branch
</span></dt><dd>
- A regular git <a href="#def_branch">branch</a> that is used to follow changes from
- another <a href="#def_repository">repository</a>. A tracking
+ A regular git <a class="link" href="#def_branch">branch</a> that is used to follow changes from
+ another <a class="link" href="#def_repository">repository</a>. A tracking
branch should not contain direct modifications or have local commits
made to it. A tracking branch can usually be
- identified as the right-hand-side <a href="#def_ref">ref</a> in a Pull:
- <a href="#def_refspec">refspec</a>.
+ identified as the right-hand-side <a class="link" href="#def_ref">ref</a> in a Pull:
+ <a class="link" href="#def_refspec">refspec</a>.
</dd><dt><span class="term">
<a name="def_tree"></a>tree
</span></dt><dd>
- Either a <a href="#def_working_tree">working tree</a>, or a <a href="#def_tree_object">tree object</a> together with the dependent <a href="#def_blob_object">blob</a> and tree objects
+ Either a <a class="link" href="#def_working_tree">working tree</a>, or a <a class="link" href="#def_tree_object">tree object</a> together with the dependent <a class="link" href="#def_blob_object">blob</a> and tree objects
(i.e. a stored representation of a working tree).
</dd><dt><span class="term">
<a name="def_tree_object"></a>tree object
</span></dt><dd>
- An <a href="#def_object">object</a> containing a list of file names and modes along
+ An <a class="link" href="#def_object">object</a> containing a list of file names and modes along
with refs to the associated blob and/or tree objects. A
- <a href="#def_tree">tree</a> is equivalent to a <a href="#def_directory">directory</a>.
+ <a class="link" href="#def_tree">tree</a> is equivalent to a <a class="link" href="#def_directory">directory</a>.
</dd><dt><span class="term">
<a name="def_tree-ish"></a>tree-ish
</span></dt><dd>
- A <a href="#def_ref">ref</a> pointing to either a <a href="#def_commit_object">commit object</a>, a <a href="#def_tree_object">tree object</a>, or a <a href="#def_tag_object">tag object</a> pointing to a tag or commit or tree object.
+ A <a class="link" href="#def_ref">ref</a> pointing to either a <a class="link" href="#def_commit_object">commit object</a>, a <a class="link" href="#def_tree_object">tree object</a>, or a <a class="link" href="#def_tag_object">tag object</a> pointing to a tag or commit or tree object.
</dd><dt><span class="term">
<a name="def_unmerged_index"></a>unmerged index
</span></dt><dd>
- An <a href="#def_index">index</a> which contains unmerged
- <a href="#def_index_entry">index entries</a>.
+ An <a class="link" href="#def_index">index</a> which contains unmerged
+ <a class="link" href="#def_index_entry">index entries</a>.
</dd><dt><span class="term">
<a name="def_unreachable_object"></a>unreachable object
</span></dt><dd>
- An <a href="#def_object">object</a> which is not <a href="#def_reachable">reachable</a> from a
- <a href="#def_branch">branch</a>, <a href="#def_tag">tag</a>, or any other reference.
+ An <a class="link" href="#def_object">object</a> which is not <a class="link" href="#def_reachable">reachable</a> from a
+ <a class="link" href="#def_branch">branch</a>, <a class="link" href="#def_tag">tag</a>, or any other reference.
</dd><dt><span class="term">
<a name="def_working_tree"></a>working tree
</span></dt><dd>
The tree of actual checked out files. The working tree is
- normally equal to the <a href="#def_HEAD">HEAD</a> plus any local changes
+ normally equal to the <a class="link" href="#def_HEAD">HEAD</a> plus any local changes
that you have made but not yet committed.
</dd></dl></div></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="git-quick-start"></a>Appendix A. Git Quick Reference</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></div><p>This is a quick summary of the major commands; the previous chapters
explain how these work in more detail.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="quick-creating-a-new-repository"></a>Creating a new repository</h2></div></div></div><p>From a tarball:</p><div class="literallayout"><p>$ tar xzf project.tar.gz<br>
</li><li>
hooks
</li><li>
-list of commands in <a href="git.html" target="_top">git(1)</a>
+list of commands in <a class="ulink" href="git.html" target="_top">git(1)</a>
</li></ul></div><p>Scan email archives for other stuff left out</p><p>Scan man pages to see if any assume more background than this manual
provides.</p><p>Simplify beginning by suggesting disconnected head instead of
temporary branch creation?</p><p>Add more good examples. Entire sections of just cookbook examples
$ git diff --theirs file.txt # same as the above.
-------------------------------------------------
-The linkgit:git-log[1] and gitk[1] commands also provide special help
+The linkgit:git-log[1] and linkgit:gitk[1] commands also provide special help
for merges:
-------------------------------------------------
This can happen, for example, if you:
- - use `git reset --hard` to remove already-published commits, or
- - use `git commit --amend` to replace already-published commits
+ - use `git-reset --hard` to remove already-published commits, or
+ - use `git-commit --amend` to replace already-published commits
(as in <<fixing-a-mistake-by-rewriting-history>>), or
- - use `git rebase` to rebase any already-published commits (as
+ - use `git-rebase` to rebase any already-published commits (as
in <<using-git-rebase>>).
You may force git-push to perform the update anyway by preceding the
changes are in a specific branch, use:
-------------------------------------------------
-$ git log linux..branchname | git-shortlog
+$ git log linux..branchname | git shortlog
-------------------------------------------------
To see whether it has already been merged into the test or release branches,
................................................
In the process, it may discover conflicts. In that case it will stop
-and allow you to fix the conflicts; after fixing conflicts, use "git
-add" to update the index with those contents, and then, instead of
+and allow you to fix the conflicts; after fixing conflicts, use "git-add"
+to update the index with those contents, and then, instead of
running git-commit, just run
-------------------------------------------------
git fetch and fast-forwards
---------------------------
-In the previous example, when updating an existing branch, "git
-fetch" checks to make sure that the most recent commit on the remote
+In the previous example, when updating an existing branch, "git-fetch"
+checks to make sure that the most recent commit on the remote
branch is a descendant of the most recent commit on your copy of the
branch before updating your copy of the branch to point at the new
commit. Git calls this process a <<fast-forwards,fast forward>>.
o--o--o <-- new head of the branch
................................................
-In this case, "git fetch" will fail, and print out a warning.
+In this case, "git-fetch" will fail, and print out a warning.
In that case, you can still force git to update to the new head, as
described in the following section. However, note that in the
to remove any of the "loose" objects that are now contained in the
pack. This will also remove any unreferenced objects (which may be
-created when, for example, you use "git reset" to remove a commit).
+created when, for example, you use "git-reset" to remove a commit).
You can verify that the loose objects are gone by looking at the
.git/objects directory or by running
pointer itself just doesn't, since you replaced it with another one.
There are also other situations that cause dangling objects. For
-example, a "dangling blob" may arise because you did a "git add" of a
+example, a "dangling blob" may arise because you did a "git-add" of a
file, but then, before you actually committed it and made it part of the
bigger picture, you changed something else in that file and committed
that *updated* thing--the old state that you added originally ends up
almost always the result of either being a half-way mergebase (the blob
will often even have the conflict markers from a merge in it, if you
have had conflicting merges that you fixed up by hand), or simply
-because you interrupted a "git fetch" with ^C or something like that,
+because you interrupted a "git-fetch" with ^C or something like that,
leaving _some_ of the new objects in the object database, but just
dangling and useless.
considering a removed file to be a valid thing, and if the file really
does not exist any more, it will update the index accordingly.
-As a special case, you can also do `git-update-index --refresh`, which
+As a special case, you can also do `git update-index --refresh`, which
will refresh the "stat" information of each index to match the current
stat information. It will 'not' update the object status itself, and
it will only update the fields that are used to quickly test whether
Tying it all together
~~~~~~~~~~~~~~~~~~~~~
-To commit a tree you have instantiated with "git-write-tree", you'd
+To commit a tree you have instantiated with "git write-tree", you'd
create a "commit" object that refers to that tree and the history
behind it--most notably the "parent" commits that preceded it in
history.
which will do all trivial merge operations for you directly in the
index file, and you can just write the result out with
-`git-write-tree`.
+`git write-tree`.
[[merging-multiple-trees-2]]
This is just to get you into the groove for the most libified part of Git:
the revision walker.
-Basically, the initial version of `git log` was a shell script:
+Basically, the initial version of `git-log` was a shell script:
----------------------------------------------------------------
$ git-rev-list --pretty $(git-rev-parse --default HEAD "$@") | \
`git show v1.3.0{tilde}155^2{tilde}4` and scroll down to that function (note that you
no longer need to call `setup_pager()` directly).
-Nowadays, `git log` is a builtin, which means that it is _contained_ in the
+Nowadays, `git-log` is a builtin, which means that it is _contained_ in the
command `git`. The source side of a builtin is
- a function called `cmd_<bla>`, typically defined in `builtin-<bla>.c`,
_not_ named like the `.c` file in which they live have to be listed in
`BUILT_INS` in the `Makefile`.
-`git log` looks more complicated in C than it does in the original script,
+`git-log` looks more complicated in C than it does in the original script,
but that allows for a much greater flexibility and performance.
Here again it is a good point to take a pause.
So, think about something which you are interested in, say, "how can I
access a blob just knowing the object name of it?". The first step is to
find a Git command with which you can do it. In this example, it is either
-`git show` or `git cat-file`.
+`git-show` or `git-cat-file`.
-For the sake of clarity, let's stay with `git cat-file`, because it
+For the sake of clarity, let's stay with `git-cat-file`, because it
- is plumbing, and