A simple CLI tool for finding git repositories.
pip install git-find-repos
You may wish to install using pipx,
which manages a virtual environment for git-find-repos
for you.
git-find-repos
will search recursively in the current directory for git
repositories when invoked with no arguments:
git-find-repos
Alternatively, you can run git-find-repos
as if it were a subcommand of
git
:
git find-repos
You can also pass a directory to search:
git find-repos ~/src
I created this tool to aid navigating between repositories on my computer. I organise respostories in subdirectories corresponding to their HTTPS/SSH URLs on GitHub, Bitbucket and GitLab, e.g.:
- ~/src/github.com/acroz/pylivy
- ~/src/bitbucket.org/acroz/other-repo
- ~/src/gitlab.com/organisation/group/subgroup/repo
To facilitate switching between repos quickly, I define a zsh
function in
my .zshrc
shell configuration file that pipes the output of
git-find-repos
to fzy for fuzzy
matching.
function repo {
initial_query=$1
dest=$(git-find-repos ~/src | fzy -q "$initial_query" -l 20) && cd "$HOME/src/$dest"
}
When I need to switch to a repo, I run repo
in my shell, type enough of the
name to match the repo name, then hit enter to exit fzy
and switch to the
selected repo.
@robgyiv has reimplemented this tool in Rust - check it out on GitHub.