Skip to content

v1.3.0

Choose a tag to compare

@asatamax asatamax released this 15 Oct 10:06
· 2 commits to main since this release

What's Changed

New worktrees command

A read-only inventory of linked worktrees across the fleet, to find repositories where stale worktrees have piled up.

git-fleet worktrees              # per-repository summary
git-fleet worktrees PATH --detail   # one row per worktree
git-fleet worktrees --fetch      # fetch with --prune first, so "gone" is current
git-fleet worktrees --json       # unfiltered inventory for scripts and agents

Each linked worktree is classified by its branch's upstream state:

State Meaning
gone Upstream configured but deleted on the remote (typically a merged PR)
alive Upstream exists
none No upstream configured
detached Detached HEAD
missing Worktree directory no longer exists (prunable)

Lock state, uncommitted changes, last commit date, and whether the worktree lives outside the repository are also reported.

  • The summary table lists only repositories that have linked worktrees, and marks a repository with ⚠ when any of its worktrees is on a gone branch.
  • --detail lists worktrees newest first and points out clean gone worktrees as cleanup candidates.
  • The command never modifies repositories: status checks run with --no-optional-locks, so worktree indexes are not rewritten. A worktree whose status cannot be read is shown as error, never as clean.
  • Deleting worktrees is intentionally out of scope.

Requires Git 2.36 or later (git worktree list --porcelain -z).