git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What is the reason behind not hiding git worktrees from git?

From
Michal Suchánek <msuchanek@suse.de>
Date
Nov 19, 2025, 08:13 UTC
Message-ID
<aR18QQ03-Wg26oNJ@kitsune.suse.cz>
In-Reply-To
<xmqqzfac3pts.fsf@gitster.g>
On Tue, Sep 30, 2025 at 08:47:11AM -0700, Junio C Hamano wrote:
Show 36 quoted lines
> Michal Suchánek <msuchanek@suse.de> writes:
> 
> > On Sat, Sep 27, 2025 at 09:26:54PM +0000, Jason Cho wrote:
> >> I think the best practice is to not add a work tre within the master work tree.
> >
> > And is that best practice documented somewhere?
> 
> I do not think it is documented anywhere.
> 
> In fact, I do not think the inventors of the worktree feature ever
> expected this end-user expectation that checking out multiple
> worktrees of the repository *INSIDE* a repository's checkout would
> be any useful without confusing users.
> 
> IOW, omission of the documentation is by an assumptionk that nobody
> would imagine doing in any other way.  
> 
> We can and should fix it retroactively, if the lack of documentation
> is not guiding our users in the right direction.  Any takers?
> 
> > IIRC there are some VCSs for which it is common practice to keep
> > checkouts of multiple branches side by side in the repository directory.
> 
> I can understand "side-by-side" but not "in".  Next to the primary
> workree (aka "initial clone") would be more common.
> 
> > IIRC the repository directory itself is not a checkout in this case.
> > Anyway, there is no obvious reason for anyone not familiar with git
> > internals to not do this.
> 
> Meaning anybody not familiar with the tool would do any random thing
> outside of the usage pattern that the users of the tool have been
> establishing over the years?  I can certainly understand that.  But
> then, creating a set of worktrees, one per branch, next to the
> primary worktree that checks out the 'main' branch, would also equally
> be a likely layout, I would imagine.
And that's what the existing example shows.
Thanks
Michal
Previous: Junio C HamanoNext: Michal Suchánek
Message 8 of 44 in “What is the reason behind not hiding git worktrees from git?”
  1. Jakub T. JankiewiczSep 27, 2025
  2. Junio C HamanoSep 27, 2025
  3. Michal SuchánekSep 27, 2025
  4. Jason ChoSep 27, 2025
  5. Jason ChoSep 27, 2025
  6. Michal SuchánekSep 30, 2025
  7. Junio C HamanoSep 30, 2025
  8. Michal SuchánekNov 19, 2025
  9. Michal SuchánekSep 30, 2025
  10. Ben KnobleOct 1, 2025
  11. Junio C HamanoOct 1, 2025
  12. Sergey OrganovOct 1, 2025
  13. Junio C HamanoOct 1, 2025
  14. Jakub T. JankiewiczOct 1, 2025
  15. Junio C HamanoOct 1, 2025
  16. Eric SunshineOct 1, 2025
  17. Junio C HamanoOct 1, 2025
  18. Michal SuchánekOct 2, 2025
  19. Junio C HamanoOct 2, 2025
  20. 1/2 doc: git-worktree: Link to examplesMichal Suchanek, Oct 2, 2025
  21. Kristoffer HaugsbakkOct 2, 2025
  22. Junio C HamanoOct 2, 2025
  23. Michal SuchánekOct 2, 2025
  24. Jean-Noël AVILAOct 5, 2025
  25. Michal SuchánekOct 10, 2025
  26. 1/2 doc: git-worktree: Link to examplesMichal Suchanek, Oct 10, 2025
  27. Eric SunshineOct 11, 2025
  28. 2/2 doc: git-worktree: Add side by side branch checkout exampleMichal Suchanek, Oct 10, 2025
  29. Eric SunshineOct 11, 2025
  30. Junio C HamanoOct 23, 2025
  31. Michal SuchánekOct 24, 2025
  32. Eric SunshineOct 24, 2025
  33. Michal SuchánekNov 18, 2025
  34. Eric SunshineNov 19, 2025
  35. Junio C HamanoJan 20, 2026
  36. 2/2 doc: git-worktree: Add side by side branch checkout exampleMichal Suchanek, Oct 2, 2025
  37. Kristoffer HaugsbakkOct 2, 2025
  38. Michal SuchánekOct 2, 2025
  39. Junio C HamanoOct 2, 2025
  40. Junio C HamanoOct 2, 2025
  41. Michal SuchánekOct 2, 2025
  42. Johannes SchindelinNov 17, 2025
  43. Junio C HamanoNov 17, 2025
  44. Ben KnobleOct 2, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.