]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-worktree.txt
Start the 2.46 cycle
[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
49dc1563 102associated with a new unborn branch named `<branch>` (after
128e5496
JA
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
49dc1563 237 the worktree with a new unborn branch named `<new-branch>`.
7ab89189 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,
8b3aa36f
PS
289however: refs inside `refs/bisect`, `refs/worktree` and `refs/rewritten` are
290not shared.
a777d4c7
DS
291
292Refs that are per-worktree can still be accessed from another worktree via
293two special paths, `main-worktree` and `worktrees`. The former gives
294access to per-worktree refs of the main worktree, while the latter to all
295linked worktrees.
3a3b9d8c 296
e79e313c 297For example, `main-worktree/HEAD` or `main-worktree/refs/bisect/good`
a777d4c7 298resolve to the same value as the main worktree's `HEAD` and
e79e313c
ES
299`refs/bisect/good` respectively. Similarly, `worktrees/foo/HEAD` or
300`worktrees/bar/refs/bisect/bad` are the same as
301`$GIT_COMMON_DIR/worktrees/foo/HEAD` and
302`$GIT_COMMON_DIR/worktrees/bar/refs/bisect/bad`.
3a3b9d8c 303
e79e313c 304To access refs, it's best not to look inside `$GIT_DIR` directly. Instead
14f74d59 305use commands such as linkgit:git-rev-parse[1] or linkgit:git-update-ref[1]
8aff1a9c
NTND
306which will handle refs correctly.
307
58b284a2
NTND
308CONFIGURATION FILE
309------------------
7b215826
DS
310By default, the repository `config` file is shared across all worktrees.
311If the config variables `core.bare` or `core.worktree` are present in the
312common config file and `extensions.worktreeConfig` is disabled, then they
313will be applied to the main worktree only.
58b284a2 314
7b215826
DS
315In order to have worktree-specific configuration, you can turn on the
316`worktreeConfig` extension, e.g.:
58b284a2
NTND
317
318------------
319$ git config extensions.worktreeConfig true
320------------
321
322In this mode, specific configuration stays in the path pointed by `git
323rev-parse --git-path config.worktree`. You can add or update
324configuration in this file with `git config --worktree`. Older Git
325versions will refuse to access repositories with this extension.
326
327Note that in this file, the exception for `core.bare` and `core.worktree`
ff1ce500 328is gone. If they exist in `$GIT_DIR/config`, you must move
7b215826
DS
329them to the `config.worktree` of the main worktree. You may also take this
330opportunity to review and move other configuration that you do not want to
331share to all worktrees:
58b284a2 332
5c11c0d5
DS
333 - `core.worktree` should never be shared.
334
335 - `core.bare` should not be shared if the value is `core.bare=true`.
58b284a2 336
7b215826
DS
337 - `core.sparseCheckout` should not be shared, unless you are sure you
338 always use sparse checkout for all worktrees.
58b284a2 339
5c11c0d5
DS
340See the documentation of `extensions.worktreeConfig` in
341linkgit:git-config[1] for more details.
342
af189b4c
ES
343DETAILS
344-------
f13a146c 345Each linked worktree has a private sub-directory in the repository's
e79e313c 346`$GIT_DIR/worktrees` directory. The private sub-directory's name is usually
f13a146c 347the base name of the linked worktree's path, possibly appended with a
af189b4c 348number to make it unique. For example, when `$GIT_DIR=/path/main/.git` the
4d5a3c58 349command `git worktree add /path/other/test-next next` creates the linked
f13a146c 350worktree in `/path/other/test-next` and also creates a
af189b4c
ES
351`$GIT_DIR/worktrees/test-next` directory (or `$GIT_DIR/worktrees/test-next1`
352if `test-next` is already taken).
353
f13a146c 354Within a linked worktree, `$GIT_DIR` is set to point to this private
af189b4c 355directory (e.g. `/path/main/.git/worktrees/test-next` in the example) and
f13a146c 356`$GIT_COMMON_DIR` is set to point back to the main worktree's `$GIT_DIR`
af189b4c 357(e.g. `/path/main/.git`). These settings are made in a `.git` file located at
f13a146c 358the top directory of the linked worktree.
af189b4c
ES
359
360Path resolution via `git rev-parse --git-path` uses either
e79e313c 361`$GIT_DIR` or `$GIT_COMMON_DIR` depending on the path. For example, in the
f13a146c 362linked worktree `git rev-parse --git-path HEAD` returns
af189b4c
ES
363`/path/main/.git/worktrees/test-next/HEAD` (not
364`/path/other/test-next/.git/HEAD` or `/path/main/.git/HEAD`) while `git
365rev-parse --git-path refs/heads/master` uses
e79e313c 366`$GIT_COMMON_DIR` and returns `/path/main/.git/refs/heads/master`,
8b3aa36f
PS
367since refs are shared across all worktrees, except `refs/bisect`,
368`refs/worktree` and `refs/rewritten`.
af189b4c
ES
369
370See linkgit:gitrepository-layout[5] for more information. The rule of
371thumb is do not make any assumption about whether a path belongs to
e79e313c
ES
372`$GIT_DIR` or `$GIT_COMMON_DIR` when you need to directly access something
373inside `$GIT_DIR`. Use `git rev-parse --git-path` to get the final path.
af189b4c 374
f13a146c
DS
375If you manually move a linked worktree, you need to update the `gitdir` file
376in the entry's directory. For example, if a linked worktree is moved
618244e1
NTND
377to `/newpath/test-next` and its `.git` file points to
378`/path/main/.git/worktrees/test-next`, then update
379`/path/main/.git/worktrees/test-next/gitdir` to reference `/newpath/test-next`
b214ab5a
ES
380instead. Better yet, run `git worktree repair` to reestablish the connection
381automatically.
618244e1 382
e79e313c 383To prevent a `$GIT_DIR/worktrees` entry from being pruned (which
a8ba5dd7 384can be useful in some situations, such as when the
f13a146c 385entry's worktree is stored on a portable device), use the
58142c09 386`git worktree lock` command, which adds a file named
e79e313c 387`locked` to the entry's directory. The file contains the reason in
f13a146c 388plain text. For example, if a linked worktree's `.git` file points
a8ba5dd7
ES
389to `/path/main/.git/worktrees/test-next` then a file named
390`/path/main/.git/worktrees/test-next/locked` will prevent the
391`test-next` entry from being pruned. See
392linkgit:gitrepository-layout[5] for details.
393
e79e313c 394When `extensions.worktreeConfig` is enabled, the config file
58b284a2 395`.git/worktrees/<id>/config.worktree` is read after `.git/config` is.
a8ba5dd7 396
bb9c03b8
MR
397LIST OUTPUT FORMAT
398------------------
e79e313c 399The `worktree list` command has two output formats. The default format shows the
bb9c03b8
MR
400details on a single line with columns. For example:
401
402------------
22d11a6e 403$ git worktree list
bb9c03b8
MR
404/path/to/bare-source (bare)
405/path/to/linked-worktree abcd1234 [master]
406/path/to/other-linked-worktree 1234abc (detached HEAD)
407------------
408
07d85380 409The command also shows annotations for each worktree, according to its state.
9b19a58f
RS
410These annotations are:
411
07d85380
DS
412 * `locked`, if the worktree is locked.
413 * `prunable`, if the worktree can be pruned via `git worktree prune`.
9b19a58f
RS
414
415------------
416$ git worktree list
417/path/to/linked-worktree abcd1234 [master]
98c7656a 418/path/to/locked-worktree acbd5678 (brancha) locked
9b19a58f
RS
419/path/to/prunable-worktree 5678abc (detached HEAD) prunable
420------------
421
076b444a
RS
422For these annotations, a reason might also be available and this can be
423seen using the verbose mode. The annotation is then moved to the next line
424indented followed by the additional information.
425
426------------
427$ git worktree list --verbose
428/path/to/linked-worktree abcd1234 [master]
429/path/to/locked-worktree-no-reason abcd5678 (detached HEAD) locked
430/path/to/locked-worktree-with-reason 1234abcd (brancha)
07d85380 431 locked: worktree path is mounted on a portable device
076b444a
RS
432/path/to/prunable-worktree 5678abc1 (detached HEAD)
433 prunable: gitdir file points to non-existent location
434------------
435
436Note that the annotation is moved to the next line if the additional
437information is available, otherwise it stays on the same line as the
07d85380 438worktree itself.
076b444a 439
bb9c03b8
MR
440Porcelain Format
441~~~~~~~~~~~~~~~~
d97eb302
PW
442The porcelain format has a line per attribute. If `-z` is given then the lines
443are terminated with NUL rather than a newline. Attributes are listed with a
e79e313c 444label and value separated by a single space. Boolean attributes (like `bare`
ff1ce500 445and `detached`) are listed as a label only, and are present only
862c723d
RS
446if the value is true. Some attributes (like `locked`) can be listed as a label
447only or with a value depending upon whether a reason is available. The first
07d85380 448attribute of a worktree is always `worktree`, an empty line indicates the
862c723d 449end of the record. For example:
bb9c03b8
MR
450
451------------
22d11a6e 452$ git worktree list --porcelain
bb9c03b8
MR
453worktree /path/to/bare-source
454bare
455
456worktree /path/to/linked-worktree
457HEAD abcd1234abcd1234abcd1234abcd1234abcd1234
458branch refs/heads/master
459
460worktree /path/to/other-linked-worktree
461HEAD 1234abc1234abc1234abc1234abc1234abc1234a
462detached
463
862c723d
RS
464worktree /path/to/linked-worktree-locked-no-reason
465HEAD 5678abc5678abc5678abc5678abc5678abc5678c
466branch refs/heads/locked-no-reason
467locked
468
469worktree /path/to/linked-worktree-locked-with-reason
470HEAD 3456def3456def3456def3456def3456def3456b
471branch refs/heads/locked-with-reason
472locked reason why is locked
473
9b19a58f
RS
474worktree /path/to/linked-worktree-prunable
475HEAD 1233def1234def1234def1234def1234def1234b
476detached
477prunable gitdir file points to non-existent location
478
862c723d
RS
479------------
480
d97eb302 481Unless `-z` is used any "unusual" characters in the lock reason such as newlines
862c723d
RS
482are escaped and the entire reason is quoted as explained for the
483configuration variable `core.quotePath` (see linkgit:git-config[1]).
484For Example:
485
486------------
487$ git worktree list --porcelain
488...
489locked "reason\nwhy is locked"
490...
bb9c03b8
MR
491------------
492
96454597
ES
493EXAMPLES
494--------
495You are in the middle of a refactoring session and your boss comes in and
496demands that you fix something immediately. You might typically use
497linkgit:git-stash[1] to store your changes away temporarily, however, your
bc483285
MH
498working tree is in such a state of disarray (with new, moved, and removed
499files, and other bits and pieces strewn around) that you don't want to risk
07d85380 500disturbing any of it. Instead, you create a temporary linked worktree to
96454597
ES
501make the emergency fix, remove it when done, and then resume your earlier
502refactoring session.
503
504------------
cbdf60fa 505$ git worktree add -b emergency-fix ../temp master
96454597
ES
506$ pushd ../temp
507# ... hack hack hack ...
508$ git commit -a -m 'emergency fix for boss'
509$ popd
3f0b42bd 510$ git worktree remove ../temp
96454597
ES
511------------
512
6d3824cf
ES
513BUGS
514----
18b22dbe
JH
515Multiple checkout in general is still experimental, and the support
516for submodules is incomplete. It is NOT recommended to make multiple
517checkouts of a superproject.
6d3824cf 518
df0b6cfb
NTND
519GIT
520---
521Part of the linkgit:git[1] suite