There are a bunch of posts on the internet about using git worktree command. As far as I can tell,
most of them are primarily about using worktrees as a replacement of, or a supplement to git
branches. Instead of switching branches, you just change directories. This is also how I originally
had usee...
And cherry-pick commits done on different work trees without syncing them first. Or rebase or mergeworkk done on one work tree with others. Or check commit logs or diff them.
The different worktrees share the same .git state. The article has an example where the author uses one tree for writing code and one for fuzzing it. If they used multiple clones they'd have to push from the writing directory and pull from the fuzzing directory to get new commits to fuzz but with worktrees this state synchronization between different git directories happens automatically.
The benefit is that you have everything collected in one place. You can jump between any of your local branches, and there’s no confusion about which state the branches are in.
If you have multiple clones, then there’s the risk that you’ve forgotten to sync main in all your different clones.
Then there’s also the problem that all the generated binaries will be out of sync. You still have 5 copies of each binary.