]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-worktree.txt
Merge branch 'tz/lib-gpg-prereq-fix'
[thirdparty/git.git] / Documentation / git-worktree.txt
CommitLineData
df0b6cfb
NTND
1git-worktree(1)
2===============
3
4NAME
5----
bc483285 6git-worktree - Manage multiple working trees
df0b6cfb
NTND
7
8
9SYNOPSIS
10--------
11[verse]
5af8b61c 12'git worktree add' [-f] [--detach] [--checkout] [--lock [--reason <string>]]
7ab89189 13 [--orphan] [(-b | -B) <new-branch>] <path> [<commit-ish>]
d97eb302 14'git worktree list' [-v | --porcelain [-z]]
58142c09 15'git worktree lock' [--reason <string>] <worktree>
9f792bb4 16'git worktree move' <worktree> <new-path>
7b722d90 17'git worktree prune' [-n] [-v] [--expire <expire>]
d228eea5 18'git worktree remove' [-f] <worktree>
b214ab5a 19'git worktree repair' [<path>...]
6d308627 20'git worktree unlock' <worktree>
df0b6cfb
NTND
21
22DESCRIPTION
23-----------
24
bc483285 25Manage multiple working trees attached to the same repository.
df0b6cfb 26
93a36493 27A git repository can support multiple working trees, allowing you to check
4d5a3c58 28out more than one branch at a time. With `git worktree add` a new working
c57bf8ce
DS
29tree is associated with the repository, along with additional metadata
30that differentiates that working tree from others in the same repository.
31The working tree, along with this metadata, is called a "worktree".
32
33This new worktree is called a "linked worktree" as opposed to the "main
34worktree" prepared by linkgit:git-init[1] or linkgit:git-clone[1].
35A repository has one main worktree (if it's not a bare repository) and
36zero or more linked worktrees. When you are done with a linked worktree,
37remove it with `git worktree remove`.
93a36493 38
dccadad7
ES
39In its simplest form, `git worktree add <path>` automatically creates a
40new branch whose name is the final component of `<path>`, which is
41convenient if you plan to work on a new topic. For instance, `git
42worktree add ../hotfix` creates new branch `hotfix` and checks it out at
c57bf8ce
DS
43path `../hotfix`. To instead work on an existing branch in a new worktree,
44use `git worktree add <path> <branch>`. On the other hand, if you just
45plan to make some experimental changes or do testing without disturbing
46existing development, it is often convenient to create a 'throwaway'
47worktree not associated with any branch. For instance,
48`git worktree add -d <path>` creates a new worktree with a detached `HEAD`
49at the same commit as the current branch.
dccadad7 50
3f0b42bd
ES
51If a working tree is deleted without using `git worktree remove`, then
52its associated administrative files, which reside in the repository
53(see "DETAILS" below), will eventually be removed automatically (see
5f5f553f 54`gc.worktreePruneExpire` in linkgit:git-config[1]), or you can run
c57bf8ce
DS
55`git worktree prune` in the main or any linked worktree to clean up any
56stale administrative files.
93a36493 57
c57bf8ce
DS
58If the working tree for a linked worktree is stored on a portable device
59or network share which is not always mounted, you can prevent its
60administrative files from being pruned by issuing the `git worktree lock`
61command, optionally specifying `--reason` to explain why the worktree is
62locked.
93a36493 63
df0b6cfb
NTND
64COMMANDS
65--------
c4738aed 66add <path> [<commit-ish>]::
fc56361f 67
c57bf8ce
DS
68Create a worktree at `<path>` and checkout `<commit-ish>` into it. The new worktree
69is linked to the current repository, sharing everything except per-worktree
70files such as `HEAD`, `index`, etc. As a convenience, `<commit-ish>` may
71be a bare "`-`", which is synonymous with `@{-1}`.
1eb07d82 72+
e79e313c 73If `<commit-ish>` is a branch name (call it `<branch>`) and is not found,
4e853331
TG
74and neither `-b` nor `-B` nor `--detach` are used, but there does
75exist a tracking branch in exactly one remote (call it `<remote>`)
661a5a38 76with a matching name, treat as equivalent to:
d023df1e 77+
4e853331
TG
78------------
79$ git worktree add --track -b <branch> <path> <remote>/<branch>
80------------
81+
8d7b558b
ÆAB
82If the branch exists in multiple remotes and one of them is named by
83the `checkout.defaultRemote` configuration variable, we'll use that
84one for the purposes of disambiguation, even if the `<branch>` isn't
85unique across all remotes. Set it to
86e.g. `checkout.defaultRemote=origin` to always checkout remote
87branches from there if `<branch>` is ambiguous but exists on the
e79e313c 88`origin` remote. See also `checkout.defaultRemote` in
8d7b558b
ÆAB
89linkgit:git-config[1].
90+
c4738aed 91If `<commit-ish>` is omitted and neither `-b` nor `-B` nor `--detach` used,
59970144
DS
92then, as a convenience, the new worktree is associated with a branch (call
93it `<branch>`) named after `$(basename <path>)`. If `<branch>` doesn't
94exist, a new branch based on `HEAD` is automatically created as if
95`-b <branch>` was given. If `<branch>` does exist, it will be checked out
96in the new worktree, if it's not checked out anywhere else, otherwise the
97command will refuse to create the worktree (unless `--force` is used).
128e5496
JA
98+
99If `<commit-ish>` is omitted, neither `--detach`, or `--orphan` is
100used, and there are no valid local branches (or remote branches if
101`--guess-remote` is specified) then, as a convenience, the new worktree is
102associated with a new orphan branch named `<branch>` (after
103`$(basename <path>)` if neither `-b` or `-B` is used) as if `--orphan` was
104passed to the command. In the event the repository has a remote and
105`--guess-remote` is used, but no remote or local branches exist, then the
106command fails with a warning reminding the user to fetch from their remote
107first (or override by using `-f/--force`).
fc56361f 108
bb9c03b8
MR
109list::
110
59970144
DS
111List details of each worktree. The main worktree is listed first,
112followed by each of the linked worktrees. The output details include
113whether the worktree is bare, the revision currently checked out, the
9b19a58f 114branch currently checked out (or "detached HEAD" if none), "locked" if
59970144
DS
115the worktree is locked, "prunable" if the worktree can be pruned by the
116`prune` command.
bb9c03b8 117
58142c09
NTND
118lock::
119
59970144
DS
120If a worktree is on a portable device or network share which is not always
121mounted, lock it to prevent its administrative files from being pruned
122automatically. This also prevents it from being moved or deleted.
123Optionally, specify a reason for the lock with `--reason`.
58142c09 124
9f792bb4
NTND
125move::
126
59970144
DS
127Move a worktree to a new location. Note that the main worktree or linked
128worktrees containing submodules cannot be moved with this command. (The
129`git worktree repair` command, however, can reestablish the connection
130with linked worktrees if you move the main worktree manually.)
9f792bb4 131
7b722d90
NTND
132prune::
133
59970144 134Prune worktree information in `$GIT_DIR/worktrees`.
7b722d90 135
cc73385c
NTND
136remove::
137
59970144
DS
138Remove a worktree. Only clean worktrees (no untracked files and no
139modification in tracked files) can be removed. Unclean worktrees or ones
140with submodules can be removed with `--force`. The main worktree cannot be
141removed.
cc73385c 142
b214ab5a 143repair [<path>...]::
e8e1ff24 144
59970144
DS
145Repair worktree administrative files, if possible, if they have become
146corrupted or outdated due to external factors.
bdd1f3e4 147+
59970144
DS
148For instance, if the main worktree (or bare repository) is moved, linked
149worktrees will be unable to locate it. Running `repair` in the main
150worktree will reestablish the connection from linked worktrees back to the
151main worktree.
b214ab5a 152+
59970144
DS
153Similarly, if the working tree for a linked worktree is moved without
154using `git worktree move`, the main worktree (or bare repository) will be
155unable to locate it. Running `repair` within the recently-moved worktree
156will reestablish the connection. If multiple linked worktrees are moved,
157running `repair` from any worktree with each tree's new `<path>` as an
158argument, will reestablish the connection to all the specified paths.
cf76baea 159+
59970144
DS
160If both the main worktree and linked worktrees have been moved manually,
161then running `repair` in the main worktree and specifying the new `<path>`
162of each linked worktree will reestablish all connections in both
163directions.
e8e1ff24 164
6d308627
NTND
165unlock::
166
59970144 167Unlock a worktree, allowing it to be pruned, moved or deleted.
6d308627 168
df0b6cfb
NTND
169OPTIONS
170-------
171
f4325444
ES
172-f::
173--force::
6036be14 174 By default, `add` refuses to create a new worktree when
cc73385c 175 `<commit-ish>` is a branch name and is already checked out by
6036be14
DS
176 another worktree, or if `<path>` is already assigned to some
177 worktree but is missing (for instance, if `<path>` was deleted
e19831c9 178 manually). This option overrides these safeguards. To add a missing but
6036be14 179 locked worktree path, specify `--force` twice.
e19831c9 180+
6036be14
DS
181`move` refuses to move a locked worktree unless `--force` is specified
182twice. If the destination is already assigned to some other worktree but is
810382ed 183missing (for instance, if `<new-path>` was deleted manually), then `--force`
e79e313c 184allows the move to proceed; use `--force` twice if the destination is locked.
68a6b3a1 185+
6036be14
DS
186`remove` refuses to remove an unclean worktree unless `--force` is used.
187To remove a locked worktree, specify `--force` twice.
f4325444 188
cbdf60fa
ES
189-b <new-branch>::
190-B <new-branch>::
191 With `add`, create a new branch named `<new-branch>` starting at
6036be14 192 `<commit-ish>`, and check out `<new-branch>` into the new worktree.
e79e313c 193 If `<commit-ish>` is omitted, it defaults to `HEAD`.
cbdf60fa
ES
194 By default, `-b` refuses to create a new branch if it already
195 exists. `-B` overrides this safeguard, resetting `<new-branch>` to
c4738aed 196 `<commit-ish>`.
cbdf60fa 197
c670aa47 198-d::
39ecb274 199--detach::
6036be14 200 With `add`, detach `HEAD` in the new worktree. See "DETACHED HEAD"
bc483285 201 in linkgit:git-checkout[1].
39ecb274 202
ef2a0ac9 203--[no-]checkout::
c4738aed 204 By default, `add` checks out `<commit-ish>`, however, `--no-checkout` can
ef2a0ac9
RZ
205 be used to suppress checkout in order to make customizations,
206 such as configuring sparse-checkout. See "Sparse checkout"
207 in linkgit:git-read-tree[1].
208
71d6682d
TG
209--[no-]guess-remote::
210 With `worktree add <path>`, without `<commit-ish>`, instead
e79e313c 211 of creating a new branch from `HEAD`, if there exists a tracking
50fdf7b1 212 branch in exactly one remote matching the basename of `<path>`,
71d6682d
TG
213 base the new branch on the remote-tracking branch, and mark
214 the remote-tracking branch as "upstream" from the new branch.
e92445a7
TG
215+
216This can also be set up as the default behaviour by using the
217`worktree.guessRemote` config option.
71d6682d 218
e284e892
TG
219--[no-]track::
220 When creating a new branch, if `<commit-ish>` is a branch,
221 mark it as "upstream" from the new branch. This is the
222 default if `<commit-ish>` is a remote-tracking branch. See
e79e313c 223 `--track` in linkgit:git-branch[1] for details.
e284e892 224
507e6e9e 225--lock::
6036be14 226 Keep the worktree locked after creation. This is the
507e6e9e 227 equivalent of `git worktree lock` after `git worktree add`,
ff1ce500 228 but without a race condition.
507e6e9e 229
df0b6cfb
NTND
230-n::
231--dry-run::
4f09825e 232 With `prune`, do not remove anything; just report what it would
df0b6cfb
NTND
233 remove.
234
7ab89189
JA
235--orphan::
236 With `add`, make the new worktree and index empty, associating
237 the worktree with a new orphan/unborn branch named `<new-branch>`.
238
bb9c03b8
MR
239--porcelain::
240 With `list`, output in an easy-to-parse format for scripts.
241 This format will remain stable across Git versions and regardless of user
d97eb302
PW
242 configuration. It is recommended to combine this with `-z`.
243 See below for details.
244
245-z::
246 Terminate each line with a NUL rather than a newline when
247 `--porcelain` is specified with `list`. This makes it possible
248 to parse the output when a worktree path contains a newline
249 character.
bb9c03b8 250
371979c2
EP
251-q::
252--quiet::
e79e313c 253 With `add`, suppress feedback messages.
371979c2 254
df0b6cfb
NTND
255-v::
256--verbose::
4f09825e 257 With `prune`, report all removals.
076b444a
RS
258+
259With `list`, output additional information about worktrees (see below).
df0b6cfb
NTND
260
261--expire <time>::
6036be14 262 With `prune`, only expire unused worktrees older than `<time>`.
9b19a58f 263+
6036be14
DS
264With `list`, annotate missing worktrees as prunable if they are older than
265`<time>`.
df0b6cfb 266
58142c09 267--reason <string>::
6036be14
DS
268 With `lock` or with `add --lock`, an explanation why the worktree
269 is locked.
58142c09
NTND
270
271<worktree>::
6036be14 272 Worktrees can be identified by path, either relative or absolute.
080739ba 273+
6036be14
DS
274If the last path components in the worktree's path is unique among
275worktrees, it can be used to identify a worktree. For example if you only
276have two worktrees, at `/abc/def/ghi` and `/abc/def/ggg`, then `ghi` or
277`def/ghi` is enough to point to the former worktree.
58142c09 278
8aff1a9c
NTND
279REFS
280----
a777d4c7
DS
281When using multiple worktrees, some refs are shared between all worktrees,
282but others are specific to an individual worktree. One example is `HEAD`,
283which is different for each worktree. This section is about the sharing
284rules and how to access refs of one worktree from another.
285
286In general, all pseudo refs are per-worktree and all refs starting with
287`refs/` are shared. Pseudo refs are ones like `HEAD` which are directly
288under `$GIT_DIR` instead of inside `$GIT_DIR/refs`. There are exceptions,
289however: refs inside `refs/bisect` and `refs/worktree` are not shared.
290
291Refs that are per-worktree can still be accessed from another worktree via
292two special paths, `main-worktree` and `worktrees`. The former gives
293access to per-worktree refs of the main worktree, while the latter to all
294linked worktrees.
3a3b9d8c 295
e79e313c 296For example, `main-worktree/HEAD` or `main-worktree/refs/bisect/good`
a777d4c7 297resolve to the same value as the main worktree's `HEAD` and
e79e313c
ES
298`refs/bisect/good` respectively. Similarly, `worktrees/foo/HEAD` or
299`worktrees/bar/refs/bisect/bad` are the same as
300`$GIT_COMMON_DIR/worktrees/foo/HEAD` and
301`$GIT_COMMON_DIR/worktrees/bar/refs/bisect/bad`.
3a3b9d8c 302
e79e313c 303To access refs, it's best not to look inside `$GIT_DIR` directly. Instead
14f74d59 304use commands such as linkgit:git-rev-parse[1] or linkgit:git-update-ref[1]
8aff1a9c
NTND
305which will handle refs correctly.
306
58b284a2
NTND
307CONFIGURATION FILE
308------------------
7b215826
DS
309By default, the repository `config` file is shared across all worktrees.
310If the config variables `core.bare` or `core.worktree` are present in the
311common config file and `extensions.worktreeConfig` is disabled, then they
312will be applied to the main worktree only.
58b284a2 313
7b215826
DS
314In order to have worktree-specific configuration, you can turn on the
315`worktreeConfig` extension, e.g.:
58b284a2
NTND
316
317------------
318$ git config extensions.worktreeConfig true
319------------
320
321In this mode, specific configuration stays in the path pointed by `git
322rev-parse --git-path config.worktree`. You can add or update
323configuration in this file with `git config --worktree`. Older Git
324versions will refuse to access repositories with this extension.
325
326Note that in this file, the exception for `core.bare` and `core.worktree`
ff1ce500 327is gone. If they exist in `$GIT_DIR/config`, you must move
7b215826
DS
328them to the `config.worktree` of the main worktree. You may also take this
329opportunity to review and move other configuration that you do not want to
330share to all worktrees:
58b284a2 331
5c11c0d5
DS
332 - `core.worktree` should never be shared.
333
334 - `core.bare` should not be shared if the value is `core.bare=true`.
58b284a2 335
7b215826
DS
336 - `core.sparseCheckout` should not be shared, unless you are sure you
337 always use sparse checkout for all worktrees.
58b284a2 338
5c11c0d5
DS
339See the documentation of `extensions.worktreeConfig` in
340linkgit:git-config[1] for more details.
341
af189b4c
ES
342DETAILS
343-------
f13a146c 344Each linked worktree has a private sub-directory in the repository's
e79e313c 345`$GIT_DIR/worktrees` directory. The private sub-directory's name is usually
f13a146c 346the base name of the linked worktree's path, possibly appended with a
af189b4c 347number to make it unique. For example, when `$GIT_DIR=/path/main/.git` the
4d5a3c58 348command `git worktree add /path/other/test-next next` creates the linked
f13a146c 349worktree in `/path/other/test-next` and also creates a
af189b4c
ES
350`$GIT_DIR/worktrees/test-next` directory (or `$GIT_DIR/worktrees/test-next1`
351if `test-next` is already taken).
352
f13a146c 353Within a linked worktree, `$GIT_DIR` is set to point to this private
af189b4c 354directory (e.g. `/path/main/.git/worktrees/test-next` in the example) and
f13a146c 355`$GIT_COMMON_DIR` is set to point back to the main worktree's `$GIT_DIR`
af189b4c 356(e.g. `/path/main/.git`). These settings are made in a `.git` file located at
f13a146c 357the top directory of the linked worktree.
af189b4c
ES
358
359Path resolution via `git rev-parse --git-path` uses either
e79e313c 360`$GIT_DIR` or `$GIT_COMMON_DIR` depending on the path. For example, in the
f13a146c 361linked worktree `git rev-parse --git-path HEAD` returns
af189b4c
ES
362`/path/main/.git/worktrees/test-next/HEAD` (not
363`/path/other/test-next/.git/HEAD` or `/path/main/.git/HEAD`) while `git
364rev-parse --git-path refs/heads/master` uses
e79e313c 365`$GIT_COMMON_DIR` and returns `/path/main/.git/refs/heads/master`,
f13a146c 366since refs are shared across all worktrees, except `refs/bisect` and
e79e313c 367`refs/worktree`.
af189b4c
ES
368
369See linkgit:gitrepository-layout[5] for more information. The rule of
370thumb is do not make any assumption about whether a path belongs to
e79e313c
ES
371`$GIT_DIR` or `$GIT_COMMON_DIR` when you need to directly access something
372inside `$GIT_DIR`. Use `git rev-parse --git-path` to get the final path.
af189b4c 373
f13a146c
DS
374If you manually move a linked worktree, you need to update the `gitdir` file
375in the entry's directory. For example, if a linked worktree is moved
618244e1
NTND
376to `/newpath/test-next` and its `.git` file points to
377`/path/main/.git/worktrees/test-next`, then update
378`/path/main/.git/worktrees/test-next/gitdir` to reference `/newpath/test-next`
b214ab5a
ES
379instead. Better yet, run `git worktree repair` to reestablish the connection
380automatically.
618244e1 381
e79e313c 382To prevent a `$GIT_DIR/worktrees` entry from being pruned (which
a8ba5dd7 383can be useful in some situations, such as when the
f13a146c 384entry's worktree is stored on a portable device), use the
58142c09 385`git worktree lock` command, which adds a file named
e79e313c 386`locked` to the entry's directory. The file contains the reason in
f13a146c 387plain text. For example, if a linked worktree's `.git` file points
a8ba5dd7
ES
388to `/path/main/.git/worktrees/test-next` then a file named
389`/path/main/.git/worktrees/test-next/locked` will prevent the
390`test-next` entry from being pruned. See
391linkgit:gitrepository-layout[5] for details.
392
e79e313c 393When `extensions.worktreeConfig` is enabled, the config file
58b284a2 394`.git/worktrees/<id>/config.worktree` is read after `.git/config` is.
a8ba5dd7 395
bb9c03b8
MR
396LIST OUTPUT FORMAT
397------------------
e79e313c 398The `worktree list` command has two output formats. The default format shows the
bb9c03b8
MR
399details on a single line with columns. For example:
400
401------------
22d11a6e 402$ git worktree list
bb9c03b8
MR
403/path/to/bare-source (bare)
404/path/to/linked-worktree abcd1234 [master]
405/path/to/other-linked-worktree 1234abc (detached HEAD)
406------------
407
07d85380 408The command also shows annotations for each worktree, according to its state.
9b19a58f
RS
409These annotations are:
410
07d85380
DS
411 * `locked`, if the worktree is locked.
412 * `prunable`, if the worktree can be pruned via `git worktree prune`.
9b19a58f
RS
413
414------------
415$ git worktree list
416/path/to/linked-worktree abcd1234 [master]
98c7656a 417/path/to/locked-worktree acbd5678 (brancha) locked
9b19a58f
RS
418/path/to/prunable-worktree 5678abc (detached HEAD) prunable
419------------
420
076b444a
RS
421For these annotations, a reason might also be available and this can be
422seen using the verbose mode. The annotation is then moved to the next line
423indented followed by the additional information.
424
425------------
426$ git worktree list --verbose
427/path/to/linked-worktree abcd1234 [master]
428/path/to/locked-worktree-no-reason abcd5678 (detached HEAD) locked
429/path/to/locked-worktree-with-reason 1234abcd (brancha)
07d85380 430 locked: worktree path is mounted on a portable device
076b444a
RS
431/path/to/prunable-worktree 5678abc1 (detached HEAD)
432 prunable: gitdir file points to non-existent location
433------------
434
435Note that the annotation is moved to the next line if the additional
436information is available, otherwise it stays on the same line as the
07d85380 437worktree itself.
076b444a 438
bb9c03b8
MR
439Porcelain Format
440~~~~~~~~~~~~~~~~
d97eb302
PW
441The porcelain format has a line per attribute. If `-z` is given then the lines
442are terminated with NUL rather than a newline. Attributes are listed with a
e79e313c 443label and value separated by a single space. Boolean attributes (like `bare`
ff1ce500 444and `detached`) are listed as a label only, and are present only
862c723d
RS
445if the value is true. Some attributes (like `locked`) can be listed as a label
446only or with a value depending upon whether a reason is available. The first
07d85380 447attribute of a worktree is always `worktree`, an empty line indicates the
862c723d 448end of the record. For example:
bb9c03b8
MR
449
450------------
22d11a6e 451$ git worktree list --porcelain
bb9c03b8
MR
452worktree /path/to/bare-source
453bare
454
455worktree /path/to/linked-worktree
456HEAD abcd1234abcd1234abcd1234abcd1234abcd1234
457branch refs/heads/master
458
459worktree /path/to/other-linked-worktree
460HEAD 1234abc1234abc1234abc1234abc1234abc1234a
461detached
462
862c723d
RS
463worktree /path/to/linked-worktree-locked-no-reason
464HEAD 5678abc5678abc5678abc5678abc5678abc5678c
465branch refs/heads/locked-no-reason
466locked
467
468worktree /path/to/linked-worktree-locked-with-reason
469HEAD 3456def3456def3456def3456def3456def3456b
470branch refs/heads/locked-with-reason
471locked reason why is locked
472
9b19a58f
RS
473worktree /path/to/linked-worktree-prunable
474HEAD 1233def1234def1234def1234def1234def1234b
475detached
476prunable gitdir file points to non-existent location
477
862c723d
RS
478------------
479
d97eb302 480Unless `-z` is used any "unusual" characters in the lock reason such as newlines
862c723d
RS
481are escaped and the entire reason is quoted as explained for the
482configuration variable `core.quotePath` (see linkgit:git-config[1]).
483For Example:
484
485------------
486$ git worktree list --porcelain
487...
488locked "reason\nwhy is locked"
489...
bb9c03b8
MR
490------------
491
96454597
ES
492EXAMPLES
493--------
494You are in the middle of a refactoring session and your boss comes in and
495demands that you fix something immediately. You might typically use
496linkgit:git-stash[1] to store your changes away temporarily, however, your
bc483285
MH
497working tree is in such a state of disarray (with new, moved, and removed
498files, and other bits and pieces strewn around) that you don't want to risk
07d85380 499disturbing any of it. Instead, you create a temporary linked worktree to
96454597
ES
500make the emergency fix, remove it when done, and then resume your earlier
501refactoring session.
502
503------------
cbdf60fa 504$ git worktree add -b emergency-fix ../temp master
96454597
ES
505$ pushd ../temp
506# ... hack hack hack ...
507$ git commit -a -m 'emergency fix for boss'
508$ popd
3f0b42bd 509$ git worktree remove ../temp
96454597
ES
510------------
511
6d3824cf
ES
512BUGS
513----
18b22dbe
JH
514Multiple checkout in general is still experimental, and the support
515for submodules is incomplete. It is NOT recommended to make multiple
516checkouts of a superproject.
6d3824cf 517
df0b6cfb
NTND
518GIT
519---
520Part of the linkgit:git[1] suite