I’m sure git worktrees have their place, perhaps in large compiled projects, but in Ruby and TS I find them to be more a foot gun than not. Not being able to run specs or the server always becomes a hindrance. I’m often tempted to git worktree add when reviewing a PR or doing a quick bugfix on one of my branches but inevitably I’ll get to a point where I want to make sure it works and more often or not at that point I’ll have forgotten I’m even on a worktree. Just last week I spent about 15 minutes trying to debug a TS error before realizing that I was on a worktree and, therefore, the paths were confusing the TS compiler.
I’d love to take full advantage of worktrees but based on the above experiences I can’t see the benefit over something like gwip && gs some_other_branch. Which is pretty snappy. (If your not familiar gwip and gs are just aliases for git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]" and git switch from the OhMyZsh git plugin).