Repository navigation
Conversation
This was referenced Oct 7, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Description
When you start lazygit in a directory that is not a git repo but contains repos, lazygit now lists those repos in a new Repositories panel. Before this change, lazygit showed the "not a repository" prompt and it still shows if there's no repos in the subdirs.
multiRepo.maxDepthlevels (default 2). It stops at each repo, so it does not list nested repos or submodules. It skips hidden directories and symlinks..gitor a stale worktree.gitfile, lazygit skips it.reposis a new valid tab name forgui.sidePanels. If your config listsreposalready, lazygit uses it as is.*if the working tree has changes. The open repo has a marker, like the current worktree in the Worktrees panel.spaceorenterswitches to the selected repo. Focus stays on the list. The main view showsgit statusfor the selected repo.eandufrom the Status panel work here too, andctrl+rstill opens recent repos.notARepositorybehavior runs.GIT_DIRand-pwork as before.Performance:
HEADfiles. Dirty checks rungit status --porcelainin the background, 8 at a time, withGIT_OPTIONAL_LOCKS=0. So they never takeindex.lockin a repo that you work in, and they do not block a repo switch.R. Other refreshes update only the row of the open repo. The periodic files refresh does not touch the list.Out of scope for this PR: ahead/behind counts, rebase/merge state per repo, and bulk fetch or pull across repos.
Known limitation: a repo switch clears the list filter. All other panels behave the same way on a repo switch.
Open question: I replaced the Status panel in this mode because Status shows only the current repo. If you prefer the list as a separate tab next to Status, I can change it, but I think this is a pretty great UX.
Please check if the PR fulfills these requirements
go generate ./...)I checked these facts against commit e9d5155: