All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
--forceforgit gtr clean --mergedto remove dirty merged worktrees, including ones with untracked files (#158)
- Bash wrapper completions now preserve delegated completion context correctly (#159)
2.5.0 - 2026-03-11
gtr new --cdshell integration so newly created worktrees can open in the current shell (#151)- Cached
git gtr initoutput for faster shell startup (#142) ctrl-nkeybinding in the interactivegtr cdpicker to create a new worktree inline (#141)
git gtr ainow runspostCdhooks before launching AI tools (#145)- Improved interactive picker discoverability and empty-state guidance (#139)
- AI/editor launches from the fzf picker now run after fzf exits so terminal apps get a full terminal session (#140)
--fromrefs now resolve to SHAs to prevent Git DWIM from choosing the wrong branch (#147)- Default-branch tracking now uses
origin/<branch>when branching from the remote default branch (#149) - Homebrew-installed completion assets now work with
git gtr completion <shell>(#155)
2.4.0 - 2026-02-24
- Interactive fzf worktree picker for
gtr cdwith preview, keybindings, and multi-action support (#136) - Helpful error message when running
git gtr cdexplaining shell integration requirement (#137)
- Limit
finddepth for simple directory copy patterns for better performance (#130)
- Root-level files now matched correctly for
**glob patterns on Bash 3.2 (#133) - Antigravity adapter support (#131)
2.3.1 - 2026-02-17
- Google Antigravity adapter (#121)
- Copy-on-write (CoW) cloning for directory copies on supported filesystems (#122)
gtr/coreutils naming conflict resolved andcdcompletions added (#125)- Main repo root resolved correctly from inside worktrees (#126)
resolve_targetfallback viagit worktree listfor external worktrees (#128)
2.3.0 - 2026-02-12
- Color output with
NO_COLOR/GTR_COLOR/gtr.ui.colorconfig support (#120) - Per-command help system with
_help_<command>()functions (#120) - BATS test suite with 174 automated tests (#119)
- Modularized monolithic
bin/gtrintolib/*.shlibraries andlib/commands/*.sh(#119) - Unified adapter loading for editors and AI tools (#116)
- Unified bidirectional config key mapping (#115)
- Removed ghost completion flag and added missing completions (#111)
2.2.0 - 2026-02-10
mv/renamecommand for worktree renaming (#95)- Shell integration via
git gtr initwithgtr cdnavigation (#104) postCdhook for shell integration (#109)- GitLab support for
clean --merged(#105) --folderflag for custom worktree folder names (#82)--no-hooksflag to skip post-create hooks (#91)- Auggie CLI adapter (#84)
$HOME/.local/binas install path option (#100)
- Base directory excluded from worktree list output (#86)
- Zsh completion timing issue resolved with
git gtr completioncommand (#87) .gtrconfigfile key auto-mapping incfg_default(#88)- Paths with slashes in
includeDirsnow handled correctly (#103)
2.1.0 - 2026-01-14
.code-workspacefile support for VS Code/Cursor editors (#78)--editorand--aiflags tonewcommand for immediate editor/AI tool launch (#72)config listaction with improved scope handling (#68)--mergedflag tocleancommand for squash-merged PR detection (#64)- GitHub Copilot CLI adapter (#56)
preRemovehooks to run commands before worktree removal, with abort on failure unless--force(#48)copycommand for syncing files to existing worktrees with--alland--dry-runoptions (#39).gtrconfigfile support for declarative team configuration using gitconfig syntax (#38).worktreeincludefile support for pattern-based file copying (#28)- Install script with platform detection (#63)
- Fish completion renamed to
git-gtr.fishfor proper git subcommand detection (#71) - Git error messages now surfaced on worktree removal failure (#55)
rmcommand now displays folder name instead of branch name for clarity (#53)- Branch names with
#now sanitized to prevent shebang issues in folder names (#44) - Symlinks preserved when copying directories (#46)
config get/unsetnow handle multi-value keys correctly (#37)- Branch track output silenced in auto mode (#33)
2.0.0 - 2025-11-24
runcommand to execute commands in worktrees without navigation (e.g.,git gtr run <branch> npm test)--from-currentflag forgit gtr newcommand to create worktrees from the current branch instead of the default branch (useful for creating parallel variant worktrees)- Directory copying support via
gtr.copy.includeDirsandgtr.copy.excludeDirsto copy entire directories (e.g.,node_modules,.venv,vendor) when creating worktrees, avoiding dependency reinstallation - OpenCode AI adapter
- Pull request template (
.github/PULL_REQUEST_TEMPLATE.md) - Path canonicalization to properly resolve symlinks and compare paths
- BREAKING: Migrated primary command from
gtrtogit gtrsubcommand to resolve coreutils conflict withgtrcommand git-gtrwrapper now properly resolves symlinks and delegates to maingtrscript- Version output now displays as "git gtr version X.X.X" instead of "gtr version X.X.X"
- Help messages and error output now reference
git gtrinstead ofgtr - Base directory resolution now canonicalizes paths before comparison to handle symlinks correctly
- README extensively reorganized and expanded with clearer examples and better structure
- Claude AI adapter now supports shell function definitions (e.g.,
eval "$(ssh-agent -s)") in shell initialization files - Path comparison logic now canonicalizes paths before checking if worktrees are inside repository
.gitignorewarnings now work correctly with symlinked paths- Zsh completion: Fixed word array normalization to correctly handle
gtrandgit-gtrdirect invocations (not justgit gtr) - Zsh completion: Fixed
newcommand options to complete at any position, not just after the first argument - Zsh completion: Added
--editorcompletion foreditorcommand with list of available editors - Zsh completion: Added
--aicompletion foraicommand with list of available AI tools - Zsh completion: Added
--porcelaincompletion forlist/lscommands - Zsh completion: Added
--globalcompletion forconfigcommand
1.0.0 - 2025-11-14
- Initial release of
gtr(Git Worktree Runner) - Core commands:
new,rm,go,open,ai,list,clean,doctor,config,adapter,help,version - Worktree creation with branch sanitization, remote/local/auto tracking, and
--force --namemulti-worktree support - Base directory resolution with support for
.(repo root) and./path(inside repo) plus legacy sibling behavior - Configuration system via
git config(local→global→system precedence) and multi-value merging (copy.include,hook.postCreate, etc.) - Editor adapter framework (cursor, vscode, zed, idea, pycharm, webstorm, vim, nvim, emacs, sublime, nano, atom)
- AI tool adapter framework (aider, claude, codex, cursor, continue)
- Hooks system:
postCreate,postRemovewith environment variables (REPO_ROOT,WORKTREE_PATH,BRANCH) - Smart file copying (include/exclude glob patterns) with security guidance (
.env.examplevs.env) - Shell completions for Bash, Zsh, and Fish
- Diagnostic commands:
doctor(environment check) andadapter(adapter availability) - Debian packaging assets (
build-deb.sh,Makefile,debian/directory) - Contributor & AI assistant guidance:
.github/instructions/*.instructions.md,.github/copilot-instructions.md,CLAUDE.md - Support for storing worktrees inside the repository via
gtr.worktrees.dir=./<path>
- Improved base directory resolution logic to distinguish
.(repo root),./path(repo-internal) from other relative values (sibling directories)