| Crates.io | gwtr |
| lib.rs | gwtr |
| version | 0.3.1 |
| created_at | 2025-07-21 04:17:22.026689+00 |
| updated_at | 2025-07-21 12:06:43.438073+00 |
| description | A simple Git worktree manager |
| homepage | |
| repository | https://github.com/katsuhirohonda/gwtr |
| max_upload_size | |
| id | 1761672 |
| size | 106,691 |
A simple Git worktree manager that creates worktrees in a consistent location alongside your main repository.
{repository_name}_{worktree_name}When you run gwtr add feature-x in a repository named myproject, it creates a new worktree at ../myproject_feature-x. This keeps all related worktrees organized at the same directory level as your main repository.
cargo install gwtr
npm install -g gwtr
git clone https://github.com/katsuhirohonda/gwtr.git
cd gwtr
cargo install --path .
# Create a new worktree
gwtr add feature-x
# List all worktrees
gwtr list
# Show status of all worktrees
gwtr status
# Pull latest changes from origin/main
gwtr pull --all # All worktrees
gwtr pull feature-x # Specific worktree
gwtr pull # Current worktree
# Remove merged worktrees
gwtr prune # Interactive mode
gwtr prune --dry-run # Preview what would be removed
gwtr prune --force # Skip confirmation
# Remove a specific worktree
gwtr remove feature-x
# In a repository called "myapp"
$ gwtr add new-feature
Created worktree 'new-feature' at "../myapp_new-feature"
cd '/Users/you/dev/myapp_new-feature'
$ gwtr list
Worktrees:
/Users/you/dev/myapp (main) [main]
/Users/you/dev/myapp_new-feature [new-feature]
$ gwtr status
Worktrees:
/Users/you/dev/myapp (main) [main] - clean
/Users/you/dev/myapp_new-feature [new-feature] - 2 uncommitted changes
$ gwtr pull --all
Pulling all worktrees from origin/main...
main [main]: Already up to date
myapp_new-feature [new-feature]: Updated
$ gwtr prune
Found 1 merged worktree to prune:
old-feature [old-feature] at /Users/you/dev/myapp_old-feature
Prune these worktrees? [y/N] y
Pruning old-feature... done
Pruned 1 worktree
$ gwtr remove new-feature
Removed worktree 'new-feature' at "../myapp_new-feature"
This project follows Test-Driven Development (TDD) practices.
# Run tests
cargo test
# Build
cargo build
# Run with debug output
cargo run -- --help
# Format code
cargo fmt
# Run clippy
cargo clippy
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to:
cargo fmt and cargo clippy before submittingThis project uses GitHub Actions for automated releases:
See docs/CRATES_PUBLISHING.md for details.
This project is licensed under the MIT License - see the LICENSE file for details.