GIT-WORKTREE(1) Git Manual GIT-WORKTREE(1)
git-worktree - Manage multiple working trees
git worktree add [-f] [--detach] [-b ] 
git worktree prune [-n] [-v] [--expire ]
git worktree list [--porcelain]
Manage multiple working trees attached to the same repository.
A git repository can support multiple working trees, allowing you to check out more than
one branch at a time. With git worktree add a new working tree is associated with the
repository. This new working tree is called a "linked working tree" as opposed to the
"main working tree" prepared by "git init" or "git clone". A repository has one main
working tree (if it’s not a bare repository) and zero or more linked working trees.
When you are done with a linked working tree you can simply delete it. The working tree’s
administrative files in the repository (see "DETAILS" below) will eventually be removed
automatically (see gc.worktreePruneExpire in git-config(1)), or you can run git worktree
prune in the main or any linked working tree to clean up any stale administrative files.
If you move a linked working tree, you need to manually update the administrative files so
that they do not get pruned automatically. See section "DETAILS" for more information.
If a linked working tree is stored on a portable device or network share which is not
always mounted, you can prevent its administrative files from being pruned by creating a
file named locked alongside the other administrative files, optionally containing a plain
text reason that pruning should be suppressed. See section "DETAILS" for more information.
Create and checkout into it. The new working directory is linked to
the current repository, sharing everything except working directory specific files
such as HEAD, index, etc.
If is omitted and neither -b nor -B nor --detached used, then, as a
convenience, a new branch based at HEAD is created automatically, as if -b $(basename
) was specified.
Prune working tree information in $GIT_DIR/worktrees.
List details of each worktree. The main worktree is listed first, followed by each of
the linked worktrees. The output details include if the worktree is bare, the revision
currently checked out, and the branch currently checked out (or detached HEAD if
By default, add refuses to create a new working tree when is already checked
out by another working tree. This option overrides that safeguard.
-b , -B
With add, create a new branch named starting at , and check out
into the new working tree. If is omitted, it defaults to HEAD.
By default, -b refuses to create a new branch if it already exists. -B overrides this
safeguard, resetting to .
With add, detach HEAD in the new working tree. See "DETACHED HEAD" in git-checkout(1).
With prune, do not remove anything; just report what it would remove.
With list, output in an easy-to-parse format for scripts. This format will remain
stable across Git versions and regardless of user configuration. See below for
With prune, report all removals.