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.
newnow creates worktrees from within an existing worktree and creates path in root .worktrees path
- Interactive worktree selection:
switchandremovecommands now show interactive selection when no branch is specified- Navigate with arrow keys or vim-style
j/k removesupports multi-select with space to toggleswitchuses single-select with enter to confirm
- Navigate with arrow keys or vim-style
- Smart removal prompts: When removing worktrees with uncommitted changes or unpushed commits, users are prompted with contextual options:
f- Force remove (discard changes)s- Stash changes before removing (when uncommitted changes exist)p- Push to remote first (when unpushed commits exist)b- Stash and push (when both issues exist)a- Stash all (reset branch to base and stash everything including commits)
- Push to new remote branch: When pushing unpushed commits, prompts for remote branch name with current branch as default
- Single keystroke confirmations: Y/n prompts now respond immediately without requiring Enter
- Ctrl+C support: All interactive prompts now properly handle Ctrl+C to cancel
- Config renamed:
setup/teardownactions renamed tonew/removeto match command names - Switch default behavior:
switchnow spawns a shell by default; use-pflag to print path for shell integration - Stash includes untracked: Stash operations now include untracked files with
--include-untracked - Improved terminal UI handling for better compatibility across different terminal emulators
- Branch deletion after stashing changes now works correctly
- Unpushed commit detection works for branches without remote tracking
- Interactive UI redraws properly in neovim terminal and other terminal emulators
- Initial release of git-wt Go CLI
- Port of bash script functionality to Go
- Commands:
init- Initialize git-wt configurationnew/add- Create new worktreeswitch- Switch to a worktreeresume- Resume work with session inforemove- Remove a worktreelist- List all worktreesstatus- Show repository statusclean- Interactive cleanup of merged branchestask- Create worktree with task descriptionroot/main- Return to repository root
- YAML configuration support without external dependencies
- Auto-detection of project types (Node.js, Python, Go, Ruby)
- Session tracking with task descriptions
- Setup and teardown action support
- Cross-platform builds (macOS, Linux, Windows)
- Installation script
- GoReleaser configuration
- GitHub Actions workflows
- Comprehensive documentation
- No longer depends on
yqfor YAML parsing - Improved error handling and validation
- Better cross-platform compatibility
- Prevents removal of worktree while inside it
- Checks for uncommitted changes before removal
- Safe handling of file operations
- Template support for common project types
- Git hooks integration
- Worktree archiving
- Batch operations
- Custom worktree locations
- Plugin system