I don't use worktrees very often, but when I do, I just use them simply: I make a worktrees
subdirectory in the repo root, then use Magit to check out worktrees into subdirectories of that.
Emacs
A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!
Get Emacs
Rules
- Posts should be emacs related
- Be kind please
- Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.
Emacs Resources
Emacs Tutorials
- Beginner’s Guide to Emacs
- Absolute Beginner's Guide to Emacs
- How to Learn Emacs: A Hand-drawn One-pager for Beginners
Useful Emacs configuration files and distributions
Quick pain-saver tip
I stopped using worktree completely. It's basically fancy git clone and it'll leave unnecessary path histories and I have to index the project from scratch as well.
I think git checkout is enough unless you work in a repo where git checkout causes huge recompilation. It's also a good moment to make a commit to the working branch for reflog when I checkout some PR.
I never use stash either unless i intend to pop the stash within a minute.
Worktrees is a tool. Tools don't provide answers or teach you how to live your life. If a tool doesn't work for you, that's fine.
I don't use worktrees in every project. However, for the main project where I'm collaborating with numerous other people and constantly having to shift focus from one problem to another, worktrees are indispensable. When my teammate asks me a question about one of the three PRs I or someone else has made, I need to quickly inspect the code in my REPL. With worktrees, I can have multiple REPLs running, each connected to a separate worktree. I can run tests in one, while inspecting some code in another. I can even jump from one to another without having to save files.
Also, excuse my pedantics, but worktrees technically aren't just fancy git clones. Git worktrees don't recreate the entire clone for each branch, thus they are faster.
Worktrees is a tool. .
It's a git command option actually.
excuse my pedantics.
No i won't. It's a fancy git clone by not fully cloning the repo from the existing clone. It's just space efficient with some extra command options.
With worktrees, I can have multiple REPLs running, each connected to a separate worktree.
I've been wanting this workflow of never having to wait as well.
Deep seamless integration of work trees with project.el, history, etc would be valuable.
I think git checkout is enough unless you work in a repo where git checkout causes huge recompilation.
I'd wager this is a very common case.