More information in https://www.tomups.com/worktrees
The commands work from either the parent directory or from inside a worktree.
They can only be used with a repo cloned with git wtclone
.
Run the following command in your terminal to install the scripts and add them as alias to gitconfig:
bash <(curl -s https://raw.githubusercontent.com/tomups/worktrees-scripts/main/install.sh)
git wtclone <remote-url> [destination]
Clone a repository into a bare worktree layout.
This will:
- create a directory named destination (defaults to the repo name)
- clone the repo as a bare repo into
.bare
- fetch all branches
- add a worktree for the default branch
git wtadd <worktree-name> [branch]
Create a git worktree named worktree-name
based on branch
. If no branch is provided, it defaults to the current branch.
Also copies over untracked convenience files to the new worktree: .env
, .envrc
, .tool-versions
, mise.toml
, and the root node_modules
directory. On macOS or *BSD, Copy-on-Write is used when available to save space.
git wtremove <worktree-name>
Remove a worktree, prune it, and delete its associated branch.
git wtlist
List all git worktrees in the current repository with their respective branch information.