Installing the command-line executable
Assuming you have Rust/Cargo installed , run this command in a terminal:
cargo install githome
It will make the githome command available in your PATH if you've allowed the PATH to be modified when installing Rust . cargo uninstall githome uninstalls.
Back to the crate overview .
Readme
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"