Repolode
k1LoW

k1LoW/git-wt

A Git subcommand that simplifies git worktree: switch, create, delete and rename worktrees by branch or directory name.

Stars
562
Forks
25
Open issues
12
Last commit
23 days ago

What is it?

git-wt is a Git subcommand that wraps `git worktree` with a shorter interface. Running `git wt <branch>` switches to an existing worktree or creates one, including the branch if it does not exist yet. Worktrees can be listed (with optional JSON output), deleted, and renamed, with the directory and branch changed together.

The tool handles common setup work when a new worktree is created. It can copy gitignored, untracked or modified files, or symlink large directories such as node_modules instead of duplicating them. Hooks can run commands like dependency installation after creation, and separate delete hooks run before removal. Configuration is done through git config, and most options can be overridden per invocation.

Shell integration for zsh, bash, fish and PowerShell adds automatic directory switching and tab completion. Safe deletion refuses to remove worktrees with uncommitted changes, and the default branch is protected from accidental removal.

Key features

  • 01Switch to or create a worktree and branch with a single `git wt <branch>` command.
  • 02Safe delete that keeps uncommitted work and unmerged branches, plus a force-delete option.
  • 03Rename a worktree directory and its branch together.
  • 04Copy or symlink ignored, untracked or modified files into new worktrees.
  • 05Run hooks after creation or before deletion.
  • 06Shell integration for zsh, bash, fish and PowerShell with completion.

Use cases

  • Working on several branches at once without stashing or switching branches in one checkout.
  • Reviewing a pull request in a separate directory while keeping your current work untouched.
  • Sharing large dependency folders across worktrees with symlinks to save disk space and setup time.
  • Integrating worktree switching with fzf, peco or tmux for interactive selection.

Quick start

  1. 1

    Install with Go

    go install github.com/k1LoW/git-wt@latest
  2. 2

    Or install with Homebrew

    brew install k1LoW/tap/git-wt
  3. 3

    List worktrees in your repository

    git wt
  4. 4

    Switch to or create a worktree for a branch

    git wt feature-branch

Things to know

  • Shell integration for automatic directory switching is marked experimental for bash, fish and PowerShell.

In collections

Topics

FAQ

What is git-wt?
A Git subcommand that simplifies git worktree: switch, create, delete and rename worktrees by branch or directory name. git-wt is a Git subcommand that wraps `git worktree` with a shorter interface. Running `git wt <branch>` switches to an existing worktree or creates one, including the branch if it does not exist yet. Worktrees can be listed (with optional JSON output), deleted, and renamed, with the directory and branch changed together.
Is git-wt free to use? What license does it have?
git-wt is open source under the MIT license. Check the license terms before using it in commercial products.
Is git-wt still maintained?
Actively maintained. The last commit to git-wt was on Oct 15, 2026.
What can I use git-wt for?
Working on several branches at once without stashing or switching branches in one checkout. Reviewing a pull request in a separate directory while keeping your current work untouched. Sharing large dependency folders across worktrees with symlinks to save disk space and setup time. Integrating worktree switching with fzf, peco or tmux for interactive selection.
How do I install git-wt?
Install with Go: go install github.com/k1LoW/git-wt@latest Or install with Homebrew: brew install k1LoW/tap/git-wt List worktrees in your repository: git wt Switch to or create a worktree for a branch: git wt feature-branch
Where can I get git-wt?
The source code and installation instructions are on GitHub: https://github.com/k1LoW/git-wt

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects