Skip to content

illegalstudio/ggg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GGG (Go Git Get)

License: MIT Follow @nahime0

For updates and news, follow me on X @nahime0.

Clone and manage git repositories from a YAML configuration file.

GGG has a brother, GGW, that helps you manage your git worktrees.

Installation

go install github.com/illegalstudio/ggg/cmd/ggg@latest

Or build from source:

git clone https://github.com/illegalstudio/ggg.git
cd ggg
make && make install

Quick Start

# Generate a default configuration file
ggg init

# Edit the config to add your repositories
# vim ~/.config/ggg/repositories.yaml

# Clone all configured repositories
ggg clone

# Clone a specific repository
ggg clone github.com/user/repo

# List repositories and their status
ggg list

# Optional: enable gcd and shell completions
eval "$(ggg shell-init zsh)"

Commands

Command Description
ggg init Generate a default configuration file
ggg config Open the configuration file in your editor
ggg list List configured repositories and their clone status
ggg clone [name] Clone repositories (all or a specific one)
ggg pull [name] Pull latest changes (only if repo is clean)
ggg push [name] Push commits to remote for repos that are ahead
ggg status Show branch, dirty/clean, ahead/behind for all repos
ggg add <url> Add a repository to the configuration
ggg remove [name] Remove a repository from the configuration
ggg open <name> Open a repository in your editor
ggg browse <name> Open a repository's remote URL in the browser
ggg cd <name> Print a repository path for shell navigation
ggg import [org] [repo] Import repositories from GitHub via gh CLI
ggg export [path] Export the configuration file to a given path
ggg stash [name] Stash changes in dirty repositories
ggg checkout <branch> Checkout a branch across repositories
ggg diff [name] Show changed files in dirty repositories
ggg doctor Run health checks on config and repositories
ggg outdated Show repositories that are behind their remote
ggg validate Validate config for duplicates and conflicts
ggg shell-init Print shell integration script (gcd alias and completions)

Most commands support --group/-g to filter by group. Data-producing commands support --json for machine-readable output; commands that launch an editor or browser report that JSON is unsupported.

Documentation

Full documentation is available in the docs/ directory:

License

MIT

About

Clone and manage multiple Git repositories from a YAML config with a fast Go CLI.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors