#git-repository #git #gg #multi #goverance

app git-governance

管理多个 git 仓库的工具

6 个版本

0.3.2 2020 年 5 月 3 日
0.3.1 2020 年 1 月 25 日
0.2.1 2020 年 1 月 7 日
0.1.1 2019 年 8 月 20 日

命令行工具 中排名第 2949

MIT 许可证

9.5MB
896 行(不包括注释)

Git Governance

Build Status

一个用于管理多个 git 仓库的工具。该工具的目的不是替代 git,而是尝试减少同时管理多个 git 仓库的工作量。关于这个工具背后的故事,请参阅这篇博客 -> https://medium.com/@jpninanjohn/we-built-a-tool-in-rust-9c1bcb9b655e

安装

使用 Brew

brew tap thecasualcoder/stable
brew install gg

从源代码安装

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

注意:建议的 rustc/cargo 版本:1.36.0 及以上或 1.37.0-nightly 及以上

用法

帮助
$ gg --help

Help

状态

显示当前目录中所有 git 仓库的状态。也会遍历目录内部。要遍历隐藏目录,请使用 -i 标志。默认情况下,不会遍历隐藏目录。

$ gg status

Status

创建

根据指定的本地路径创建远程仓库并将其克隆到本地。远程仓库基于提供的 GITHUB_TOKEN 创建。GITHUB_TOKEN 可以作为环境变量传递,也可以通过 -t 标志传递

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

Create

抓取

从当前目录开始的所有 git 仓库中抓取。也会遍历目录内部。目前抓取只使用私钥 id_rsa 进行身份验证,如果没有足够的私钥将无法抓取。抓取一个仓库失败不会影响其他仓库。要遍历隐藏目录,请使用 - 标志。默认情况下,不会遍历隐藏目录。

$ gg fetch 

Fetch

克隆

根据传递的标志和 .ggConf.yaml 文件中给出的配置克隆仓库。

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

Clone

配置文件

可以通过 - 标志指定配置文件。默认情况下,它尝试找到 .ggConf.yaml。示例配置文件

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

请参阅 .ggConf.example.yaml 了解更多详情

贡献

请参考 GitHub 项目板 如果您想要一些功能,请创建一个 issue,如果可能的话,也请自由地提交 PR。

依赖项

~29–41MB
~765K SLoC