thecasualcoder / Gg

Licence: mit
A tool to manage multiple git repositories

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Gg

Archisteamfarm
C# application with primary purpose of idling Steam cards from multiple accounts simultaneously.
Stars: ✭ 7,219 (+13268.52%)
Mutual labels:  cli, hacktoberfest
Laminas Cli
Console command runner, exposing commands written in Laminas MVC and Mezzio components and applications
Stars: ✭ 25 (-53.7%)
Mutual labels:  cli, hacktoberfest
Schemathesis
A modern API testing tool for web applications built with Open API and GraphQL specifications.
Stars: ✭ 768 (+1322.22%)
Mutual labels:  cli, hacktoberfest
Terjira
Terjira is a very interactive and easy to use CLI tool for Jira.
Stars: ✭ 713 (+1220.37%)
Mutual labels:  cli, hacktoberfest
Mod Pbxproj
A python module to manipulate XCode projects
Stars: ✭ 959 (+1675.93%)
Mutual labels:  cli, hacktoberfest
Jenkinsfile Runner
A command line tool to run Jenkinsfile as a function
Stars: ✭ 727 (+1246.3%)
Mutual labels:  cli, hacktoberfest
Mrm
Codemods for your project config files
Stars: ✭ 900 (+1566.67%)
Mutual labels:  cli, hacktoberfest
Wbot
A simple Web based BOT for WhatsApp™ in NodeJS 😜. Working as of 📅 Feb 14th, 2020
Stars: ✭ 638 (+1081.48%)
Mutual labels:  cli, hacktoberfest
Lab
Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab
Stars: ✭ 911 (+1587.04%)
Mutual labels:  cli, hacktoberfest
Swiftinfo
📊 Extract and analyze the evolution of an iOS app's code.
Stars: ✭ 880 (+1529.63%)
Mutual labels:  cli, hacktoberfest
Bat
A cat(1) clone with wings.
Stars: ✭ 30,833 (+56998.15%)
Mutual labels:  cli, hacktoberfest
Git Req
Check out merge requests from your GitLab/GitHub hosted repositories from the command line with just the request number.
Stars: ✭ 50 (-7.41%)
Mutual labels:  cli, hacktoberfest
Mevn Cli
Light speed setup for MEVN(Mongo Express Vue Node) Apps
Stars: ✭ 696 (+1188.89%)
Mutual labels:  cli, hacktoberfest
Glow
Render markdown on the CLI, with pizzazz! 💅🏻
Stars: ✭ 7,596 (+13966.67%)
Mutual labels:  cli, hacktoberfest
Backslide
💦 CLI tool for making HTML presentations with Remark.js using Markdown
Stars: ✭ 679 (+1157.41%)
Mutual labels:  cli, hacktoberfest
Clifx
Declarative framework for building command line interfaces
Stars: ✭ 900 (+1566.67%)
Mutual labels:  cli, hacktoberfest
Rustfix
Automatically apply the suggestions made by rustc
Stars: ✭ 586 (+985.19%)
Mutual labels:  cli, hacktoberfest
Faas Cli
Official CLI for OpenFaaS
Stars: ✭ 633 (+1072.22%)
Mutual labels:  cli, hacktoberfest
Executor
Watch for file changes and then execute command. Very nice for test driven development.
Stars: ✭ 14 (-74.07%)
Mutual labels:  cli, hacktoberfest
Rocket.chat.apps Cli
The CLI for interacting with Rocket.Chat Apps
Stars: ✭ 37 (-31.48%)
Mutual labels:  cli, hacktoberfest

Git Governance

Build Status

A tool to manage multiple git repositories. This does not aim to replace git in any way but tries to reduce the work in managing multiple git repositories at once. To know about the story behind this tool, take a look at this blog -> https://medium.com/@jpninanjohn/we-built-a-tool-in-rust-9c1bcb9b655e

Installation

Using Brew:

brew tap thecasualcoder/stable
brew install gg

Installing from source:

git clone https://github.com/thecasualcoder/gg.git
cd gg
cargo install --path .

Note: Recommaded rustc/cargo version: 1.36.0 and above or 1.37.0-nightly and above

Usage:

Help:
$ gg --help

Help

Status:

Shows status of all git repos from current directory. Traverses inside directories also. To traverse through hidden directories use the -i flag. By default hidden directories will not be traversed.

$ gg status

Status

Create:

Creates a remote repository and clones it to the local path specified. Remote repository is created based on the GITHUB_TOKEN provided. GITHUB_TOKEN can be passed as an env variable or can be given as an argument through the -t flag

$ gg create -r <repo_name> -l <local_path>

Create

Fetch:

Fetches from all git repositories starting from current directory. Traverses inside directories also. Currently Fetch only uses the private key id_rsa to authenticate and will fail to fetch if it is not enough. Failure to fetch one repo will not fail others To traverse through hidden directories use the -i flag. By default hidden directories will not be traversed.

$ gg fetch 

Fetch

Clone:

Clones repositories based on the flags passed and the configuration given in the .ggConf.yaml file.

$ gg clone -r <remote_url_1> -r <remote_url_2> -l <local_path>  

Clone

Config file:

The config file can be specified via the -c flag. By default it tries to find .ggConf.yaml. Example config file:

skipDirectories:
  - ignore
cloneRepos:
  - remoteURL: https://github.com/golang/net.git
    localPath: here/net
  - remoteURL: https://github.com/golang/net.git
    localPath: there/net
ssh:
    privateKey: '/home/ninan/.ssh/gg'
    username: 'git'
    ssh_agent: false

See .ggConf.example.yaml for more details

Contributing:

Please refer the github projects board If you want some feature, please create an issue and if possible feel free to raise PR too.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].