git-worktree(1) =============== NAME ---- git-worktree - Manage multiple worktrees SYNOPSIS -------- [verse] 'git worktree add' [-f] [--detach] [-b ] [] 'git worktree prune' [-n] [-v] [--expire ] DESCRIPTION ----------- Manage multiple worktrees 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 checkout --to` 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.pruneworktreesexpire` in linkgit::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 directory to another file system, or within a file system that does not support hard links, you need to run at least one git command inside the linked working directory (e.g. `git status`) in order to update its administrative files in the repository so that they do not get automatically pruned. 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 'lock' alongside the other administrative files, optionally containing a plain text reason that pruning should be suppressed. See section "DETAILS" for more information. COMMANDS -------- add []:: 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` is used, then, as a convenience, a new branch based at HEAD is created automatically, as if `-b $(basename )` was specified. prune:: Prune working tree information in $GIT_DIR/worktrees. OPTIONS ------- -f:: --force:: By default, `add` refuses to create a new worktree when `` is already checked out by another worktree. This option overrides that safeguard. -b :: -B :: With `add`, create a new branch named `` starting at ``, and check out `` into the new worktree. 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 ``. --detach:: With `add`, detach HEAD in the new worktree. See "DETACHED HEAD" in linkgit:git-checkout[1]. -n:: --dry-run:: With `prune`, do not remove anything; just report what it would remove. -v:: --verbose:: With `prune`, report all removals. --expire