NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Parallel development without the headaches using Git worktree (barrd.dev)
irskep 10 minutes ago [-]
I use git worktrees daily. I'm surprised by how hard it can be to explain them to people who have never used them. Lately I've settled on "like clones, but sharing a .git directory." The article tries to get this across by comparing them to branches, but I think clones are a more intuitive concept to compare against.

To solve some of the ergonomics issues (command verbosity, manual commands to copy over .env files and install dependencies), I wrote autowt, which is a lightweight but powerful worktree manager: https://steveasleep.com/autowt/

Once I dialed in the cli experience, I basically stopped typing 'git checkout <branch>' to change tasks, because it's easier to ignore working directory state when flipping between tasks.

thunderbong 54 minutes ago [-]
Fossil SCM, conventionally, has been thus way by default.

https://fossil-scm.org/home/doc/trunk/www/gitusers.md

jemmyw 39 minutes ago [-]
wt is a useful little tool for helping with git worktrees: https://github.com/timvw/wt

I use it's config to copy in some non-repo config and then hooks to start an agent doing analysis.

Vanit 1 hours ago [-]
The one real caveat to this is that if your application has particularly heavy cold starts it can be hard to actually run your worktrees. I usually end up swapping to a regular checkout as each worktree is due for hands-on attention.
lacunary 47 minutes ago [-]
I'm curious what the constraint preventing you from optimizing the cold start time - can you share more?
kajika91 1 hours ago [-]
This is very interesting and could be very helpful for A/B testing or comparing outputs/speed between 2 branches.

I already know a place I want to use this.

pydry 24 minutes ago [-]
I do the same thing just checking out the repo multiple times in different directories.

I'm not really sure what worktrees adds on top of that.

recursivecaveat 12 minutes ago [-]
It makes coordination easier. For eg if you want to fetch and pull master, you only have to do that once. If you want to rebase checkout A's branch on top of B's, you can just do that, you don't have to push between the two.
esafak 23 minutes ago [-]
Less space.
kimseungyong 28 minutes ago [-]
[flagged]
jmpeax 2 hours ago [-]
What a peculiar title. The title suggest parallel dev without using worktrees, but the article is about using worktrees.
michaelsmanley 2 hours ago [-]
I thought that as well and then realized I had inserted the word "of" before "using" where there's an implied "by."
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 01:39:25 GMT+0000 (Coordinated Universal Time) with Vercel.