diff options
author | Junio C Hamano <gitster@pobox.com> | 2022-02-18 14:08:41 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-02-18 14:08:41 -0800 |
commit | 99a21c3fd90112166afacf1fe1ed3e1c5d74cea6 (patch) | |
tree | e7775783ce7319d96df3b6768de5470c7b4b2503 | |
parent | 034a2ff96f3a3aa981e5ae4e242cefa4bd00323b (diff) | |
download | git-htmldocs-99a21c3fd90112166afacf1fe1ed3e1c5d74cea6.tar.gz |
Autogenerated HTML docs for v2.35.1-273-ge6ebf
-rw-r--r-- | RelNotes/2.36.0.txt | 34 | ||||
-rw-r--r-- | git-branch.html | 25 | ||||
-rw-r--r-- | git-branch.txt | 19 | ||||
-rw-r--r-- | git-config.html | 62 | ||||
-rw-r--r-- | gitglossary.html | 18 | ||||
-rw-r--r-- | glossary-content.txt | 13 | ||||
-rw-r--r-- | howto/coordinate-embargoed-releases.html | 2 | ||||
-rw-r--r-- | howto/keep-canonical-history-correct.html | 2 | ||||
-rw-r--r-- | howto/maintain-git.html | 2 | ||||
-rw-r--r-- | howto/new-command.html | 2 | ||||
-rw-r--r-- | howto/rebase-from-internal-branch.html | 2 | ||||
-rw-r--r-- | howto/rebuild-from-update-hook.html | 2 | ||||
-rw-r--r-- | howto/recover-corrupted-blob-object.html | 2 | ||||
-rw-r--r-- | howto/recover-corrupted-object-harder.html | 2 | ||||
-rw-r--r-- | howto/revert-a-faulty-merge.html | 2 | ||||
-rw-r--r-- | howto/revert-branch-rebase.html | 2 | ||||
-rw-r--r-- | howto/separating-topic-branches.html | 2 | ||||
-rw-r--r-- | howto/setup-git-server-over-http.html | 2 | ||||
-rw-r--r-- | howto/update-hook-example.html | 2 | ||||
-rw-r--r-- | howto/use-git-daemon.html | 2 | ||||
-rw-r--r-- | howto/using-merge-subtree.html | 2 | ||||
-rw-r--r-- | howto/using-signed-tag-in-pull-request.html | 2 | ||||
-rw-r--r-- | user-manual.html | 14 |
23 files changed, 181 insertions, 36 deletions
diff --git a/RelNotes/2.36.0.txt b/RelNotes/2.36.0.txt index 3e1261c58..4e8309701 100644 --- a/RelNotes/2.36.0.txt +++ b/RelNotes/2.36.0.txt @@ -34,6 +34,8 @@ UI, Workflows & Features complete all Git subcommands, including the ones that are normally hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used. + * "git branch" learned the "--recurse-submodules" option. + Performance, Internal Implementation, Development Support etc. @@ -59,6 +61,10 @@ Performance, Internal Implementation, Development Support etc. * "git update-index", "git checkout-index", and "git clean" are taught to work better with the sparse checkout feature. + * Use an internal call to reset_head() helper function instead of + spawning "git checkout" in "rebase", and update code paths that are + involved in the change. + Fixes since v2.35 ----------------- @@ -162,6 +168,32 @@ Fixes since v2.35 has been corrected. (merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint). + * "receive-pack" checks if it will do any ref updates (various + conditions could reject a push) before received objects are taken + out of the temporary directory used for quarantine purposes, so + that a push that is known-to-fail will not leave crufts that a + future "gc" needs to clean up. + (merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint). + + * Because a deletion of ref would need to remove it from both the + loose ref store and the packed ref store, a delete-ref operation + that logically removes one ref may end up invoking ref-transaction + hook twice, which has been corrected. + (merge 2ed1b64ebd ps/avoid-unnecessary-hook-invocation-with-packed-refs later to maint). + + * When there is no object to write .bitmap file for, "git + multi-pack-index" triggered an error, instead of just skipping, + which has been corrected. + (merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint). + + * "git cmd -h" outside a repository should error out cleanly for many + commands, but instead it hit a BUG(), which has been corrected. + (merge 87ad07d735 js/short-help-outside-repo-fix later to maint). + + * "working tree" and "per-worktree ref" were in glossary, but + "worktree" itself wasn't, which has been corrected. + (merge 2df5387ed0 jc/glossary-worktree later to maint). + * Other code cleanup, docfix, build fix, etc. (merge cfc5cf428b jc/find-header later to maint). (merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint). @@ -181,3 +213,5 @@ Fixes since v2.35 (merge 6798b08e84 ab/do-not-hide-failures-in-git-dot-pm later to maint). (merge 9325285df4 po/doc-check-ignore-markup-fix later to maint). (merge cd26cd6c7c sy/modernize-t-lib-read-tree-m-3way later to maint). + (merge d17294a05e ab/hash-object-leakfix later to maint). + (merge b8403129d3 jd/t0015-modernize later to maint). diff --git a/git-branch.html b/git-branch.html index 177f63f2f..7ba9d94e9 100644 --- a/git-branch.html +++ b/git-branch.html @@ -757,7 +757,8 @@ git-branch(1) Manual Page [--points-at <object>] [--format=<format>]
[(-r | --remotes) | (-a | --all)]
[--list] [<pattern>…]
-<em>git branch</em> [--track[=(direct|inherit)] | --no-track] [-f] <branchname> [<start-point>]
+<em>git branch</em> [--track[=(direct|inherit)] | --no-track] [-f]
+ [--recurse-submodules] <branchname> [<start-point>]
<em>git branch</em> (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
<em>git branch</em> --unset-upstream [<branchname>]
<em>git branch</em> (-m | -M) [<oldbranch>] <newbranch>
@@ -1104,6 +1105,26 @@ how the <code>branch.<name>.remote</code> and <code>branch.<name>.me </p>
</dd>
<dt class="hdlist1">
+--recurse-submodules
+</dt>
+<dd>
+<p>
+ THIS OPTION IS EXPERIMENTAL! Causes the current command to
+ recurse into submodules if <code>submodule.propagateBranches</code> is
+ enabled. See <code>submodule.propagateBranches</code> in
+ <a href="git-config.html">git-config(1)</a>. Currently, only branch creation is
+ supported.
+</p>
+<div class="paragraph"><p>When used in branch creation, a new branch <branchname> will be created
+in the superproject and all of the submodules in the superproject’s
+<start-point>. In submodules, the branch will point to the submodule
+commit in the superproject’s <start-point> but the branch’s tracking
+information will be set up based on the submodule’s branches and remotes
+e.g. <code>git branch --recurse-submodules topic origin/main</code> will create the
+submodule branch "topic" that points to the submodule commit in the
+superproject’s "origin/main", but tracks the submodule’s "origin/main".</p></div>
+</dd>
+<dt class="hdlist1">
--set-upstream
</dt>
<dd>
@@ -1406,7 +1427,7 @@ a branch?”</a> in the Git User’s Manual.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-01-20 16:14:41 PST
+ 2022-02-18 14:05:46 PST
</div>
</div>
</body>
diff --git a/git-branch.txt b/git-branch.txt index 731e340cb..c8b4f9ce3 100644 --- a/git-branch.txt +++ b/git-branch.txt @@ -16,7 +16,8 @@ SYNOPSIS [--points-at <object>] [--format=<format>] [(-r | --remotes) | (-a | --all)] [--list] [<pattern>...] -'git branch' [--track[=(direct|inherit)] | --no-track] [-f] <branchname> [<start-point>] +'git branch' [--track[=(direct|inherit)] | --no-track] [-f] + [--recurse-submodules] <branchname> [<start-point>] 'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] 'git branch' --unset-upstream [<branchname>] 'git branch' (-m | -M) [<oldbranch>] <newbranch> @@ -235,6 +236,22 @@ how the `branch.<name>.remote` and `branch.<name>.merge` options are used. Do not set up "upstream" configuration, even if the branch.autoSetupMerge configuration variable is set. +--recurse-submodules:: + THIS OPTION IS EXPERIMENTAL! Causes the current command to + recurse into submodules if `submodule.propagateBranches` is + enabled. See `submodule.propagateBranches` in + linkgit:git-config[1]. Currently, only branch creation is + supported. ++ +When used in branch creation, a new branch <branchname> will be created +in the superproject and all of the submodules in the superproject's +<start-point>. In submodules, the branch will point to the submodule +commit in the superproject's <start-point> but the branch's tracking +information will be set up based on the submodule's branches and remotes +e.g. `git branch --recurse-submodules topic origin/main` will create the +submodule branch "topic" that points to the submodule commit in the +superproject's "origin/main", but tracks the submodule's "origin/main". + --set-upstream:: As this option had confusing syntax, it is no longer supported. Please use `--track` or `--set-upstream-to` instead. diff --git a/git-config.html b/git-config.html index 638ce522c..2fb011efe 100644 --- a/git-config.html +++ b/git-config.html @@ -2196,6 +2196,15 @@ submoduleAlternateErrorStrategyDie </p>
</dd>
<dt class="hdlist1">
+submodulesNotUpdated
+</dt>
+<dd>
+<p>
+ Advice shown when a user runs a submodule command that fails
+ because <code>git submodule update --init</code> was not run.
+</p>
+</dd>
+<dt class="hdlist1">
addIgnoredFile
</dt>
<dd>
@@ -9844,18 +9853,49 @@ submodule.recurse <dd>
<p>
A boolean indicating if commands should enable the <code>--recurse-submodules</code>
- option by default.
- Applies to all commands that support this option
- (<code>checkout</code>, <code>fetch</code>, <code>grep</code>, <code>pull</code>, <code>push</code>, <code>read-tree</code>, <code>reset</code>,
- <code>restore</code> and <code>switch</code>) except <code>clone</code> and <code>ls-files</code>.
+ option by default. Defaults to false.
+</p>
+<div class="paragraph"><p>When set to true, it can be deactivated via the
+<code>--no-recurse-submodules</code> option. Note that some Git commands
+lacking this option may call some of the above commands affected by
+<code>submodule.recurse</code>; for instance <code>git remote update</code> will call
+<code>git fetch</code> but does not have a <code>--no-recurse-submodules</code> option.
+For these commands a workaround is to temporarily change the
+configuration value by using <code>git -c submodule.recurse=0</code>.</p></div>
+<div class="paragraph"><p>The following list shows the commands that accept
+<code>--recurse-submodules</code> and whether they are supported by this
+setting.</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+<code>checkout</code>, <code>fetch</code>, <code>grep</code>, <code>pull</code>, <code>push</code>, <code>read-tree</code>,
+<code>reset</code>, <code>restore</code> and <code>switch</code> are always supported.
+</p>
+</li>
+<li>
+<p>
+<code>clone</code> and <code>ls-files</code> are not supported.
+</p>
+</li>
+<li>
+<p>
+<code>branch</code> is supported only if <code>submodule.propagateBranches</code> is
+enabled
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+submodule.propagateBranches
+</dt>
+<dd>
+<p>
+ [EXPERIMENTAL] A boolean that enables branching support when
+ using <code>--recurse-submodules</code> or <code>submodule.recurse=true</code>.
+ Enabling this will allow certain commands to accept
+ <code>--recurse-submodules</code> and certain commands that already accept
+ <code>--recurse-submodules</code> will now consider branches.
Defaults to false.
- When set to true, it can be deactivated via the
- <code>--no-recurse-submodules</code> option. Note that some Git commands
- lacking this option may call some of the above commands affected by
- <code>submodule.recurse</code>; for instance <code>git remote update</code> will call
- <code>git fetch</code> but does not have a <code>--no-recurse-submodules</code> option.
- For these commands a workaround is to temporarily change the
- configuration value by using <code>git -c submodule.recurse=0</code>.
</p>
</dd>
<dt class="hdlist1">
diff --git a/gitglossary.html b/gitglossary.html index d16e1e097..9289afb26 100644 --- a/gitglossary.html +++ b/gitglossary.html @@ -1293,7 +1293,7 @@ This commit is referred to as a "merge commit", or sometimes just a ls-tree", "git add", "git grep", "git diff", "git checkout",
and many other commands to
limit the scope of operations to some subset of the tree or
-worktree. See the documentation of each command for whether
+working tree. See the documentation of each command for whether
paths are relative to the current directory or toplevel. The
pathspec syntax is as follows:</p></div>
<div class="openblock">
@@ -1516,7 +1516,7 @@ exclude </dt>
<dd>
<p>
- Refs that are per-<a href="#def_working_tree">worktree</a>, rather than
+ Refs that are per-<a href="#def_worktree">worktree</a>, rather than
global. This is presently only <a href="#def_HEAD">HEAD</a> and any refs
that start with <code>refs/bisect/</code>, but might later include other
unusual refs.
@@ -1897,6 +1897,20 @@ The most notable example is <code>HEAD</code>.</p></div> plus any local changes that you have made but not yet committed.
</p>
</dd>
+<dt class="hdlist1">
+<a id="def_worktree"></a>worktree
+</dt>
+<dd>
+<p>
+ A repository can have zero (i.e. bare repository) or one or
+ more worktrees attached to it. One "worktree" consists of a
+ "working tree" and repository metadata, most of which are
+ shared among other worktrees of a single repository, and
+ some of which are maintained separately per worktree
+ (e.g. the index, HEAD and pseudorefs like MERGE_HEAD,
+ per-worktree refs and per-worktree configuration file).
+</p>
+</dd>
</dl></div>
</div>
</div>
diff --git a/glossary-content.txt b/glossary-content.txt index c07797133..aa2f41f5e 100644 --- a/glossary-content.txt +++ b/glossary-content.txt @@ -312,7 +312,7 @@ Pathspecs are used on the command line of "git ls-files", "git ls-tree", "git add", "git grep", "git diff", "git checkout", and many other commands to limit the scope of operations to some subset of the tree or -worktree. See the documentation of each command for whether +working tree. See the documentation of each command for whether paths are relative to the current directory or toplevel. The pathspec syntax is as follows: + @@ -446,7 +446,7 @@ exclude;; interface than the <<def_plumbing,plumbing>>. [[def_per_worktree_ref]]per-worktree ref:: - Refs that are per-<<def_working_tree,worktree>>, rather than + Refs that are per-<<def_worktree,worktree>>, rather than global. This is presently only <<def_HEAD,HEAD>> and any refs that start with `refs/bisect/`, but might later include other unusual refs. @@ -669,3 +669,12 @@ The most notable example is `HEAD`. The tree of actual checked out files. The working tree normally contains the contents of the <<def_HEAD,HEAD>> commit's tree, plus any local changes that you have made but not yet committed. + +[[def_worktree]]worktree:: + A repository can have zero (i.e. bare repository) or one or + more worktrees attached to it. One "worktree" consists of a + "working tree" and repository metadata, most of which are + shared among other worktrees of a single repository, and + some of which are maintained separately per worktree + (e.g. the index, HEAD and pseudorefs like MERGE_HEAD, + per-worktree refs and per-worktree configuration file). diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index 418ff903e..74c6f15fa 100644 --- a/howto/coordinate-embargoed-releases.html +++ b/howto/coordinate-embargoed-releases.html @@ -873,7 +873,7 @@ Thanks, <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:35 PST
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index f3b41c420..26d27bd6e 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html @@ -938,7 +938,7 @@ tip of your <em>master</em> again and redo the two merges:</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:35 PST
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html index 5fb5fc9a8..c7d1ddb07 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html @@ -1469,7 +1469,7 @@ $ git update-ref -d $mf/ai/topic</code></pre> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:35 PST
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html index c43913ead..589c90db7 100644 --- a/howto/new-command.html +++ b/howto/new-command.html @@ -863,7 +863,7 @@ letter [PATCH 0/n]. <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:46 PST
+ 2022-02-18 14:06:31 PST
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index bf5163f79..daf9d78c6 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html @@ -895,7 +895,7 @@ the #1' commit.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:35 PST
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index ed4088cf4..52b755f7c 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html @@ -847,7 +847,7 @@ This is still crude and does not protect against simultaneous <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:35 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index a12d7da4e..cf663655e 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html @@ -880,7 +880,7 @@ thing.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:34 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index 94282da33..98c2fe6dd 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html @@ -1189,7 +1189,7 @@ int main(int argc, char **argv) <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:35 PST
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index aafc14375..4878d602b 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html @@ -1025,7 +1025,7 @@ P---o---o---M---x---x---W---x---M2 <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:48 PST
+ 2022-02-18 14:06:34 PST
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index a08c17023..909fec70f 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html @@ -907,7 +907,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:46 PST
+ 2022-02-18 14:06:32 PST
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index 8b64e4567..8801af344 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html @@ -841,7 +841,7 @@ o---o"master"</code></pre> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:47 PST
+ 2022-02-18 14:06:34 PST
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index 8b8b74263..94e1d8871 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html @@ -1071,7 +1071,7 @@ help diagnosing the problem, but removes security checks.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:47 PST
+ 2022-02-18 14:06:34 PST
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 7120dc430..4b308cf00 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html @@ -930,7 +930,7 @@ that JC can make non-fast-forward pushes on it.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:47 PST
+ 2022-02-18 14:06:33 PST
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index de4ddf405..c20f91a49 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html @@ -791,7 +791,7 @@ a good practice to put the paths after a "--" separator.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:47 PST
+ 2022-02-18 14:06:33 PST
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 9c69a5a39..69138f717 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html @@ -848,7 +848,7 @@ Please note that if the other project merges from you, then it will <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:46 PST
+ 2022-02-18 14:06:32 PST
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index c70b669cf..94c17365e 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html @@ -952,7 +952,7 @@ as part of the merge commit.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 16:38:47 PST
+ 2022-02-18 14:06:33 PST
</div>
</div>
</body>
diff --git a/user-manual.html b/user-manual.html index d85de014f..e5b89c596 100644 --- a/user-manual.html +++ b/user-manual.html @@ -2298,7 +2298,7 @@ This commit is referred to as a "merge commit", or sometimes just a ls-tree", "git add", "git grep", "git diff", "git checkout", and many other commands to limit the scope of operations to some subset of the tree or -worktree. See the documentation of each command for whether +working tree. See the documentation of each command for whether paths are relative to the current directory or toplevel. The pathspec syntax is as follows:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> any path matches itself @@ -2422,7 +2422,7 @@ exclude </dd><dt><span class="term"> <a name="def_per_worktree_ref"></a>per-worktree ref </span></dt><dd> - Refs that are per-<a class="link" href="#def_working_tree">worktree</a>, rather than + Refs that are per-<a class="link" href="#def_worktree">worktree</a>, rather than global. This is presently only <a class="link" href="#def_HEAD">HEAD</a> and any refs that start with <code class="literal">refs/bisect/</code>, but might later include other unusual refs. @@ -2671,6 +2671,16 @@ The most notable example is <code class="literal">HEAD</code>.</p></dd><dt><span The tree of actual checked out files. The working tree normally contains the contents of the <a class="link" href="#def_HEAD">HEAD</a> commit’s tree, plus any local changes that you have made but not yet committed. +</dd><dt><span class="term"> +<a name="def_worktree"></a>worktree +</span></dt><dd> + A repository can have zero (i.e. bare repository) or one or + more worktrees attached to it. One "worktree" consists of a + "working tree" and repository metadata, most of which are + shared among other worktrees of a single repository, and + some of which are maintained separately per worktree + (e.g. the index, HEAD and pseudorefs like MERGE_HEAD, + per-worktree refs and per-worktree configuration file). </dd></dl></div></div></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a name="git-quick-start"></a>Appendix A. Git Quick Reference</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><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"><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><pre class="screen">$ tar xzf project.tar.gz $ cd project |