summaryrefslogtreecommitdiffstats
path: root/git-fetch.html
diff options
context:
space:
mode:
authorJunio C Hamano <junio@hera.kernel.org>2005-12-27 00:17:23 -0800
committerJunio C Hamano <junio@hera.kernel.org>2005-12-27 00:17:23 -0800
commit1a4e841b439ba014b365999c3a6b9e2be3740bd8 (patch)
tree263dbc68b55d73929f82a6d1f7df677dfb06e294 /git-fetch.html
downloadgit-htmldocs-1a4e841b439ba014b365999c3a6b9e2be3740bd8.tar.gz
Autogenerated HTML docs for 36de72aa9dc3b7daf8cf2770c840f39bb0d2ae70
Diffstat (limited to 'git-fetch.html')
-rw-r--r--git-fetch.html586
1 files changed, 586 insertions, 0 deletions
diff --git a/git-fetch.html b/git-fetch.html
new file mode 100644
index 000000000..9d38bb1e3
--- /dev/null
+++ b/git-fetch.html
@@ -0,0 +1,586 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 7.0.1" />
+<style type="text/css">
+/* Debug borders */
+p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
+/*
+ border: 1px solid red;
+*/
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a { color: blue; }
+a:visited { color: fuchsia; }
+
+em {
+ font-style: italic;
+}
+
+strong {
+ font-weight: bold;
+}
+
+tt {
+ color: navy;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ font-family: sans-serif;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ border-bottom: 2px solid silver;
+ padding-top: 0.5em;
+}
+
+div.sectionbody {
+ font-family: serif;
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+pre {
+ padding: 0;
+ margin: 0;
+}
+
+span#author {
+ color: #527bbd;
+ font-family: sans-serif;
+ font-weight: bold;
+ font-size: 1.2em;
+}
+span#email {
+}
+span#revision {
+ font-family: sans-serif;
+}
+
+div#footer {
+ font-family: sans-serif;
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+div#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+div#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+div#preamble,
+div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-right: 10%;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.5em;
+ margin-bottom: 2.5em;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ font-family: sans-serif;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid silver;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid silver;
+ background: #f4f4f4;
+ padding: 0.5em;
+}
+
+div.quoteblock > div.content {
+ padding-left: 2.0em;
+}
+div.quoteblock .attribution {
+ text-align: right;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 2px solid silver;
+}
+
+div.exampleblock > div.content {
+ border-left: 2px solid silver;
+ padding: 0.5em;
+}
+
+div.verseblock div.content {
+ white-space: pre;
+}
+
+div.imageblock div.content { padding-left: 0; }
+div.imageblock img { border: 1px solid silver; }
+span.image img { border-style: none; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: italic;
+}
+dd > *:first-child {
+ margin-top: 0;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.olist2 {
+ list-style-type: lower-alpha;
+}
+
+div.tableblock > table {
+ border-color: #527bbd;
+ border-width: 3px;
+}
+thead {
+ font-family: sans-serif;
+ font-weight: bold;
+}
+tfoot {
+ font-weight: bold;
+}
+
+div.hlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+td.hlist1 {
+ vertical-align: top;
+ font-style: italic;
+ padding-right: 0.8em;
+}
+td.hlist2 {
+ vertical-align: top;
+}
+
+@media print {
+ div#footer-badges { display: none; }
+}
+include::./stylesheets/xhtml11-manpage.css[]
+/* Workarounds for IE6's broken and incomplete CSS2. */
+
+div.sidebar-content {
+ background: #ffffee;
+ border: 1px solid silver;
+ padding: 0.5em;
+}
+div.sidebar-title, div.image-title {
+ font-family: sans-serif;
+ font-weight: bold;
+ margin-top: 0.0em;
+ margin-bottom: 0.5em;
+}
+
+div.listingblock div.content {
+ border: 1px solid silver;
+ background: #f4f4f4;
+ padding: 0.5em;
+}
+
+div.quoteblock-content {
+ padding-left: 2.0em;
+}
+
+div.exampleblock-content {
+ border-left: 2px solid silver;
+ padding-left: 0.5em;
+}
+</style>
+<title>git-fetch(1)</title>
+</head>
+<body>
+<div id="header">
+<h1>
+git-fetch(1) Manual Page
+</h1>
+<h2>NAME</h2>
+<div class="sectionbody">
+<p>git-fetch -
+ Download objects and a head from another repository.
+</p>
+</div>
+</div>
+<h2>SYNOPSIS</h2>
+<div class="sectionbody">
+<p><em>git-fetch</em> &lt;options&gt; &lt;repository&gt; &lt;refspec&gt;&#8230;</p>
+</div>
+<h2>DESCRIPTION</h2>
+<div class="sectionbody">
+<p>Fetches named heads or tags from another repository, along with
+the objects necessary to complete them.</p>
+<p>The ref names and their object names of fetched refs are stored
+in <tt>.git/FETCH_HEAD</tt>. This information is left for a later merge
+operation done by "git merge".</p>
+</div>
+<h2>OPTIONS</h2>
+<div class="sectionbody">
+<dl>
+<dt>
+-a, --append
+</dt>
+<dd>
+<p>
+ Append ref names and object names of fetched refs to the
+ existing contents of <tt>.git/FETCH_HEAD</tt>. Without this
+ option old data in <tt>.git/FETCH_HEAD</tt> will be overwritten.
+</p>
+</dd>
+<dt>
+-f, --force
+</dt>
+<dd>
+<p>
+ When <tt>git-fetch</tt> is used with <tt>&lt;rbranch&gt;:&lt;lbranch&gt;</tt>
+ refspec, it refuses to update the local branch
+ <tt>&lt;lbranch&gt;</tt> unless the remote branch <tt>&lt;rbranch&gt;</tt> it
+ fetches is a descendant of <tt>&lt;lbranch&gt;</tt>. This option
+ overrides that check.
+</p>
+</dd>
+<dt>
+-t, --tags
+</dt>
+<dd>
+<p>
+ By default, the git core utilities will not fetch and store
+ tags under the same name as the remote repository; ask it
+ to do so using <tt>--tags</tt>. Using this option will bound the
+ list of objects pulled to the remote tags. Commits in branches
+ beyond the tags will be ignored.
+</p>
+</dd>
+<dt>
+-u, --update-head-ok
+</dt>
+<dd>
+<p>
+ By default <tt>git-fetch</tt> refuses to update the head which
+ corresponds to the current branch. This flag disables the
+ check. Note that fetching into the current branch will not
+ update the index and working directory, so use it with care.
+</p>
+</dd>
+<dt>
+&lt;repository&gt;
+</dt>
+<dd>
+<p>
+ The "remote" repository that is the source of a fetch
+ or pull operation, or the destination of a push operation.
+ One of the following notations can be used
+ to name the remote repository:
+</p>
+<div class="exampleblock">
+<div class="exampleblock-content">
+<ul>
+<li>
+<p>
+rsync://host.xz/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+http://host.xz/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+https://host.xz/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+git://host.xz/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+git://host.xz/~user/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+ssh://host.xz/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+ssh://host.xz/~user/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+ssh://host.xz/~/path/to/repo.git
+</p>
+</li>
+</ul>
+</div></div>
+<p>SSH Is the default transport protocol and also supports an
+scp-like syntax. Both syntaxes support username expansion,
+as does the native git protocol. The following three are
+identical to the last three above, respectively:</p>
+<div class="exampleblock">
+<div class="exampleblock-content">
+<ul>
+<li>
+<p>
+host.xz:/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+host.xz:~user/path/to/repo.git/
+</p>
+</li>
+<li>
+<p>
+host.xz:path/to/repo.git
+</p>
+</li>
+</ul>
+</div></div>
+<p>To sync with a local directory, use:</p>
+<div class="exampleblock">
+<div class="exampleblock-content">
+<ul>
+<li>
+<p>
+/path/to/repo.git/
+</p>
+</li>
+</ul>
+</div></div>
+<p>In addition to the above, as a short-hand, the name of a
+file in <tt>$GIT_DIR/remotes</tt> directory can be given; the
+named file should be in the following format:</p>
+<div class="literalblock">
+<div class="content">
+<pre><tt>URL: one of the above URL format
+Push: &lt;refspec&gt;
+Pull: &lt;refspec&gt;</tt></pre>
+</div></div>
+<p>When such a short-hand is specified in place of
+&lt;repository&gt; without &lt;refspec&gt; parameters on the command
+line, &lt;refspec&gt; specified on <tt>Push:</tt> lines or <tt>Pull:</tt>
+lines are used for <tt>git-push</tt> and <tt>git-fetch</tt>/<tt>git-pull</tt>,
+respectively. Multiple <tt>Push:</tt> and and <tt>Pull:</tt> lines may
+be specified for additional branch mappings.</p>
+<p>The name of a file in <tt>$GIT_DIR/branches</tt> directory can be
+specified as an older notation short-hand; the named
+file should contain a single line, a URL in one of the
+above formats, optionally followed by a hash <tt>#</tt> and the
+name of remote head (URL fragment notation).
+<tt>$GIT_DIR/branches/&lt;remote&gt;</tt> file that stores a &lt;url&gt;
+without the fragment is equivalent to have this in the
+corresponding file in the <tt>$GIT_DIR/remotes/</tt> directory.</p>
+<div class="literalblock">
+<div class="content">
+<pre><tt>URL: &lt;url&gt;
+Pull: refs/heads/master:&lt;remote&gt;</tt></pre>
+</div></div>
+<p>while having <tt>&lt;url&gt;#&lt;head&gt;</tt> is equivalent to</p>
+<div class="literalblock">
+<div class="content">
+<pre><tt>URL: &lt;url&gt;
+Pull: refs/heads/&lt;head&gt;:&lt;remote&gt;</tt></pre>
+</div></div>
+</dd>
+<dt>
+&lt;refspec&gt;
+</dt>
+<dd>
+<p>
+ The canonical format of a &lt;refspec&gt; parameter is
+ <tt>+?&lt;src&gt;:&lt;dst&gt;</tt>; that is, an optional plus <tt>+</tt>, followed
+ by the source ref, followed by a colon <tt>:</tt>, followed by
+ the destination ref.
+</p>
+<p>When used in <tt>git-push</tt>, the &lt;src&gt; side can be an
+arbitrary "SHA1 expression" that can be used as an
+argument to <tt>git-cat-file -t</tt>. E.g. <tt>master~4</tt> (push
+four parents before the current master head).</p>
+<p>For <tt>git-push</tt>, the local ref that matches &lt;src&gt; is used
+to fast forward the remote ref that matches &lt;dst&gt;. If
+the optional plus <tt>+</tt> is used, the remote ref is updated
+even if it does not result in a fast forward update.</p>
+<p>For <tt>git-fetch</tt> and <tt>git-pull</tt>, the remote ref that matches &lt;src&gt;
+is fetched, and if &lt;dst&gt; is not empty string, the local
+ref that matches it is fast forwarded using &lt;src&gt;.
+Again, if the optional plus <tt>+</tt> is used, the local ref
+is updated even if it does not result in a fast forward
+update.</p>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">If the remote branch from which you want to pull is
+modified in non-linear ways such as being rewound and
+rebased frequently, then a pull will attempt a merge with
+an older version of itself, likely conflict, and fail.
+It is under these conditions that you would want to use
+the <tt>+</tt> sign to indicate non-fast-forward updates will
+be needed. There is currently no easy way to determine
+or declare that a branch will be made available in a
+repository with this behavior; the pulling user simply
+must know this is the expected usage pattern for a branch.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">You never do your own development on branches that appear
+on the right hand side of a &lt;refspec&gt; colon on <tt>Pull:</tt> lines;
+they are to be updated by <tt>git-fetch</tt>. If you intend to do
+development derived from a remote branch <tt>B</tt>, have a <tt>Pull:</tt>
+line to track it (i.e. <tt>Pull: B:remote-B</tt>), and have a separate
+branch <tt>my-B</tt> to do your development on top of it. The latter
+is created by <tt>git branch my-B remote-B</tt> (or its equivalent <tt>git
+checkout -b my-B remote-B</tt>). Run <tt>git fetch</tt> to keep track of
+the progress of the remote side, and when you see something new
+on the remote branch, merge it into your development branch with
+<tt>git pull . remote-B</tt>, while you are on <tt>my-B</tt> branch.
+The common <tt>Pull: master:origin</tt> mapping of a remote <tt>master</tt>
+branch to a local <tt>origin</tt> branch, which is then merged to a
+local development branch, again typically named <tt>master</tt>, is made
+when you run <tt>git clone</tt> for you to follow this pattern.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">There is a difference between listing multiple &lt;refspec&gt;
+directly on <tt>git-pull</tt> command line and having multiple
+<tt>Pull:</tt> &lt;refspec&gt; lines for a &lt;repository&gt; and running
+<tt>git-pull</tt> command without any explicit &lt;refspec&gt; parameters.
+&lt;refspec&gt; 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 <tt>git-pull</tt> run without any explicit &lt;refspec&gt;
+parameter takes default &lt;refspec&gt;s from <tt>Pull:</tt> lines, it
+merges only the first &lt;refspec&gt; found into the current branch,
+after fetching all the remote refs. This is because making an
+Octopus from remote refs is rarely done, while keeping track
+of multiple remote heads in one-go by fetching more than one
+is often useful.</td>
+</tr></table>
+</div>
+<p>Some short-cut notations are also supported.</p>
+<ul>
+<li>
+<p>
+For backward compatibility, <tt>tag</tt> is almost ignored;
+ it just makes the following parameter &lt;tag&gt; to mean a
+ refspec <tt>refs/tags/&lt;tag&gt;:refs/tags/&lt;tag&gt;</tt>.
+</p>
+</li>
+<li>
+<p>
+A parameter &lt;ref&gt; without a colon is equivalent to
+ &lt;ref&gt;: when pulling/fetching, and &lt;ref&gt;<tt>:</tt>&lt;ref&gt; when
+ pushing. That is, do not store it locally if
+ fetching, and update the same name if pushing.
+</p>
+</li>
+</ul>
+</dd>
+</dl>
+</div>
+<h2>SEE ALSO</h2>
+<div class="sectionbody">
+<p><a href="git-pull.html">git-pull(1)</a></p>
+</div>
+<h2>Author</h2>
+<div class="sectionbody">
+<p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt; and
+Junio C Hamano &lt;junkio@cox.net&gt;</p>
+</div>
+<h2>Documentation</h2>
+<div class="sectionbody">
+<p>Documentation by David Greaves, Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p>
+</div>
+<h2>GIT</h2>
+<div class="sectionbody">
+<p>Part of the <a href="git.html">git(7)</a> suite</p>
+</div>
+<div id="footer">
+<div id="footer-text">
+Last updated 27-Dec-2005 00:16:06 PDT
+</div>
+</div>
+</body>
+</html>