Tool to manage multiple git repositories

go-many-git

Tool to manage multiple git repositories

Requirements

  • Proper go installation with GOPATH set
  • git >= 1.8.5

Installation

go get -u github.com/abrochard/go-many-git
go install github.com/abrochard/go-many-git
echo 'alias gmg=$GOPATH/bin/go-many-git' >> ~/.bashrc

Usage

Usage: gmg [@tag] <comand> [<args>]

Go-many-git basic usage is to run a particular git command across multiple repos
For example, 'gmg pull' runs 'git pull' across all registered repos
By default 'gmg' alone runs 'git status'

Optionally, a repos can be identified by a shared tag (@example), making it possible to target a subset of repos
ie: `gmg @api pull` runs `git pull` on all repos tagged with `api`

Go-many-git accepts all git commands, but here are a few gmg specific commands:

   [@tag] register <path>    Add the repo in <path> to the list of repos, with an optional tag
   unregister <path>         Remove the repo in <path> from the list
   [@tag] b                  Shorthand to display the repos current branch
   list                      Print all registered repos
   help                      Print this help

Note that gmg writes its repo list to a config file located under ~/.config/gmg-repos.json

Acknowledgements

gmg is very inspired by the amazing mr and gr tools. A big thanks to them.

Similar Resources

Help to release a project which especially has multiple git repositories

This project aims to help to release a project which especially has multiple git repositories. Installation Install it to a Kubernetes cluster. You ca

Dec 15, 2022

A tool to monitor git repositories and automatically pull & push changes

git-o-matic A tool to monitor git repositories and automatically pull & push changes Installation Packages & Binaries Arch Linux: gitomatic Binaries f

Dec 20, 2022

A tool to monitor git repositories and automatically pull & push changes

git-o-matic A tool to monitor git repositories and automatically pull & push changes Installation Packages & Binaries Arch Linux: gitomatic Binaries f

Dec 20, 2022

Mergestat - a command-line tool for running SQL queries on git repositories and related data sources

Mergestat - a command-line tool for running SQL queries on git repositories and related data sources

Query git repositories with SQL. Generate reports, perform status checks, analyze codebases. 🔍 📊

Dec 30, 2022

CLI tool for manipulating GitHub Labels across multiple repositories

takolabel Installation Mac $ brew install tommy6073/tap/takolabel Other platforms Download from Releases page in this repository. Usage Set variables

Nov 3, 2022

pr-bullet is a tool for copying pull request to multiple repositories.

pr-bullet pr-bullet is a tool for copying pull request to multiple repositories. Usage First, create original pull request ( ex. https://github.com/k1

Oct 5, 2022

A Simple and Comprehensive Vulnerability Scanner for Container Images, Git Repositories and Filesystems. Suitable for CI

A Simple and Comprehensive Vulnerability Scanner for Container Images, Git Repositories and Filesystems. Suitable for CI

A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. Table of Contents Abstract Features Installation

Jan 1, 2023

Query git repositories with SQL. Generate reports, perform status checks, analyze codebases. 🔍 📊

askgit askgit is a command-line tool for running SQL queries on git repositories. It's meant for ad-hoc querying of git repositories on disk through a

Jan 5, 2023

SQL interface to git repositories, written in Go. https://docs.sourced.tech/gitbase

gitbase gitbase, is a SQL database interface to Git repositories. This project is now part of source{d} Community Edition, which provides the simplest

Dec 25, 2022

A Simple and Comprehensive Vulnerability Scanner for Container Images, Git Repositories and Filesystems. Suitable for CI

A Simple and Comprehensive Vulnerability Scanner for Container Images, Git Repositories and Filesystems. Suitable for CI

A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. Abstract Trivy (tri pronounced like trigger, vy

Jan 9, 2023

Quickly clone git repositories into a nested folders like GOPATH.

cl cl clones git repositories into nested folders like GOPATH and outputs the path of the cloned directory. Example: cl https://github.com/foo/bar Is

Nov 30, 2022

Hassle-free minimal CI/CD for git repositories with docker or docker-compose projects.

Hassle-free minimal CI/CD for git repositories with docker or docker-compose projects.

GIT-PIPE Hassle-free minimal CI/CD for git repos for docker-based projects. Features: zero configuration for repos by default automatic encrypted back

Sep 23, 2022

Query git repositories with SQL. Generate reports, perform status checks, analyze codebases. 🔍 📊

Query git repositories with SQL. Generate reports, perform status checks, analyze codebases. 🔍 📊

askgit is a command-line tool for running SQL queries on git repositories. It's meant for ad-hoc querying of git repositories on disk through a common interface (SQL), as an alternative to patching together various shell commands.

Jan 3, 2023

Git-auto-push - Auto commit and push to github repositories

Auto commit and push to github repositories. How to use git clone https://github

Dec 19, 2022

A tool that allows you to manage Kubernetes manifests for your services in a Git repository

kuberpult Readme for users About Kuberpult is a tool that allows you to manage Kubernetes manifests for your services in a Git repository and manage t

Dec 16, 2022

Demonstrate a bounded context distributed over multiple repositories. In `go`

Contextive Demo - Go - Service This repository illustrates the use of Contextive in an environment where multiple repositories are part of the same bo

Feb 12, 2022

A simple cli tool for switching git user easily inspired by Git-User-Switch

A simple cli tool for switching git user easily inspired by Git-User-Switch

gitsu A simple cli tool for switching git user easily inspired by Git-User-Switch Installation Binary releases are here. Homebrew brew install matsuyo

Dec 31, 2022

git-glimpse is a command-line tool that is aimed at generating a git prompt like the one from zsh-vcs-prompt.

Git GoGlimpse git-glimpse is a command-line tool that is aimed at generating a git prompt like the one from zsh-vcs-prompt. The particularity of this

Jan 27, 2022

A dead simple cli utility to help you manage your git stash

A dead simple cli utility to help you manage your git stash

A dead simple cli utility to help you manage your git stash.

Aug 2, 2022
Comments
  • Question: Why lowest git version limitation is 1.8.5 ?

    Question: Why lowest git version limitation is 1.8.5 ?

    I am using CentOS 7.3 and its default git version is 1.8.3.1. I don't know enough git to understand this version restriction. Would you please explain ?

    A few deeper check, I found "-C git-path status" can be replaced by following example illustrated in stackoverflow.

    # Ref: http://stackoverflow.com/questions/1386291/git-git-dir-not-working-as-expected
    [me@ios02t go-many-git]$ git --git-dir=/home/me/ws/go-many-git/.git --work-tree=./  status
    # On branch dev
    # Changes not staged for commit:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #       modified:   gmg.go
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       gmg
    no changes added to commit (use "git add" and/or "git commit -a")
    [me@ios02t go-many-git]$ ./gmg
    documentation
    [-C /home/me/ws/documentation status]
    Failed to execute command
    2017/02/17 23:04:25 exit status 129
    [me@ios02t go-many-git]$
    
    
  • improve targets logic in Makefile

    improve targets logic in Makefile

    Hi There

    I am learning golang. This look like a useful tool for me to manage multiple git repo checkout. I modify Makefile build/install/clean tagets logic, hope you like it.

Package git provides an incomplete pure Go implementation of Git core methods.

git Package git provides an incomplete pure Go implementation of Git core methods. Example Code: store := git.TempStore() defer os.RemoveAll(string(st

Oct 6, 2022
manipulate and inspect VCS repositories in Go

go-vcs - manipulate and inspect VCS repositories go-vcs is a library for manipulating and inspecting VCS repositories in Go. It currently supports Git

Nov 27, 2022
Nut is a tool to manage versioned Go source code packages, called "nuts".

nut Nut is a tool to manage versioned Go source code packages, called "nuts". gonuts.io – central repository (source code) Documents Stable API Mailin

Jul 15, 2021
Installs git repos onto your system and keeps them up-to-date

Gitfile Installs git repos onto your system and keeps them up-to-date. It's a lightweight package manager for things that haven't been published to a

Jan 16, 2021
Git folder digger, I'm sure it's worthwhile stuff.
Git folder digger, I'm sure it's worthwhile stuff.

Gigger Git folder digger, I'm sure it's worthwhile stuff. Installation Download a prebuilt binary from releases page. or If you have recent go compile

Nov 9, 2022
A diff tool especially for Go language.

go-diff A diff tool for Go languange. It shows the semantic differences between two Go source files. Ignored Difference Order of import statements Ord

Feb 1, 2022
A better way to clone, organize and manage multiple git repositories
A better way to clone, organize and manage multiple git repositories

git-get git-get is a better way to clone, organize and manage multiple git repositories. git-get Description Installation macOS Linux Windows Usage gi

Nov 16, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Dec 31, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command

git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command. You give git-xargs:

Feb 5, 2022
Watchtower for Git: automatically keep local Git repositories up to date with their remotes

CrowsNest Watchtower for Git: automatically keep local Git repositories up to date with their remotes. Configuration Flags --run-once or -r: Normally

Oct 30, 2022