#git #git-repository #local-git #groups

app githome

CLI for mass local git repository management

2 releases

Uses new Rust 2024

0.1.1 Mar 14, 2026
0.1.0 Mar 14, 2026

#253 in Configuration

FSL-1.1-MIT

38KB
687 lines

GitHome

GitHome is a CLI utility that allows you to set up and manage multiple git repositories in your local "git home".

This is especially useful when jumping between machines and repositories - e.g. I have a new machine and I want the last 15 projects I've committed to on this machine. How do I do that without manually cloning each and every one?

Commands

  • Help
  • Init - initializes a githome in the current working directory
  • Sync - syncs your githome with all configured remotes
  • Add - adds a group or project to your githome
  • Remove - removes a project from your githome
  • Status - prints out githome configuration info (for now)

Example Config

# for now, will only clone via this protocol unless explicitly set in groups or projects
# type: str (enum[Ssh|Https])
default_protocol = "Https"
# submodules are cloned recursively by default
# TODO: expand groups, projects configs to allow specification of submodule cloning
submodules = false
# which servers to search in
[[servers]]
forge_type = "GitLab"
url = "gitlab.com"
groups = []
projects = []
[[servers]]
forge_type = "GitHub"
url = "github.com"
groups = []

# groups to mirror
# type: list[str (url, optional proto)]
# NOT CURRENTLY FUNCTIONAL FOR GITHUB
# [[servers.groups]]
# forge_type = "None"
# name = "/astral-sh"

# projects to mirror
# type: list[str (url, optional proto)]
[[servers.projects]]
forge_type = "None"
name = "/astral-sh/uv"

Dependencies

~44–69MB
~1M SLoC