I keep my agent workflows distinct; we have (for historic reasons) a lot of non-git controlled context that differs between branches, and moving all that around on checkouts is untenable. I use this tool:
https://github.com/tdhopper/wt
with some custom shell aliases to make it easier.