9 个版本 (5 个重大更改)
0.6.0 | 2021年12月12日 |
---|---|
0.5.0 | 2021年2月22日 |
0.4.0 | 2020年10月19日 |
0.3.0 | 2020年10月15日 |
0.1.1 | 2019年3月9日 |
在 开发工具 中排名 #1196
每月下载量 38
58KB
388 行
gitall
gitall 递归查找目录下所有仓库,并在每个仓库中并行运行给定的 Git 命令。
用法
最简单的方式是 cd
到包含所有要操作的仓库的目录,然后编写你的 Git 命令,将 git
改为 gitall
。要传递选项给 Git 命令,必须在命令前添加 --
,以告诉 gitall 停止解析其自己的选项并将它们传递给 Git。例如,要列出所有远程和本地仓库分支,需要运行 gitall -- branch -va
。
提示:如果您在 PATH
中添加一个名为 git-foo
的文件(无论是通过复制还是符号链接),您可以通过 git
来调用该程序,使用 git foo
;无需额外的别名或设置。因此,在运行 ln -s /usr/bin/gitall /usr/bin/git-all
之后,您可以通过 git all
使用 gitall,就像使用 gitall
一样。
示例
打印最新提交的 SHA
获取 ~/code
下所有仓库的最新更改
$ cd ~/code
$ gitall fetch origin
/home/matt/code/gitall.rs
From github.com:mattmahn/gitall.rs
17acab9..8994d3c master -> origin/master
* [new branch] windows-build -> origin/windows-build
/home/matt/code/jsonapi-server
From github.com:holidayextras/jsonapi-server
* [new branch] greenkeeper/debug-4.1.1 -> origin/greenkeeper/debug-4.1.1
* [new branch] greenkeeper/eslint-plugin-node-8.0.0 -> origin/greenkeeper/eslint-plugin-node-8.0.0
* [new branch] greenkeeper/jscpd-0.6.25 -> origin/greenkeeper/jscpd-0.6.25
* [new branch] greenkeeper/jscpd-1.0.0 -> origin/greenkeeper/jscpd-1.0.0
* [new branch] greenkeeper/jscpd-1.0.1 -> origin/greenkeeper/jscpd-1.0.1
* [new branch] greenkeeper/jscpd-1.0.2 -> origin/greenkeeper/jscpd-1.0.2
* [new branch] greenkeeper/jscpd-1.0.3 -> origin/greenkeeper/jscpd-1.0.3
* [new branch] greenkeeper/jscpd-1.1.0 -> origin/greenkeeper/jscpd-1.1.0
* [new branch] greenkeeper/jscpd-1.2.0 -> origin/greenkeeper/jscpd-1.2.0
* [new branch] greenkeeper/jscpd-1.2.1 -> origin/greenkeeper/jscpd-1.2.1
* [new branch] greenkeeper/jscpd-1.2.2 -> origin/greenkeeper/jscpd-1.2.2
* [new branch] greenkeeper/jscpd-1.2.3 -> origin/greenkeeper/jscpd-1.2.3
* [new branch] greenkeeper/jscpd-2.0.0 -> origin/greenkeeper/jscpd-2.0.0
* [new branch] greenkeeper/jscpd-2.0.1 -> origin/greenkeeper/jscpd-2.0.1
* [new branch] greenkeeper/jscpd-2.0.2 -> origin/greenkeeper/jscpd-2.0.2
* [new branch] greenkeeper/jscpd-2.0.3 -> origin/greenkeeper/jscpd-2.0.3
* [new branch] greenkeeper/jscpd-2.0.4 -> origin/greenkeeper/jscpd-2.0.4
* [new branch] greenkeeper/qs-6.6.0 -> origin/greenkeeper/qs-6.6.0
* [new branch] mast -> origin/mast
或者,您可以从任何目录运行 gitall -D ~/code fetch origin
。
选项
Executes git(1) commands in repos below a parent directory
USAGE:
gitall [FLAGS] [OPTIONS] <COMMAND>...
FLAGS:
-L, --follow
When specified, symbolic links will be followed when navigating the directory tree.
--full-path
By default, REGEX matches against only the directory name. Using this flag, REGEX matches against the full
canonical path.
-h, --help
Prints help information
-V, --version
Prints version information
OPTIONS:
--color <WHEN>
Controls when to use color [default: auto] [possible values: always, true, auto, never, false]
-D, --directory <DIR>
The directory to start searching under [default: .]
-X, --executable <PROGRAM>
The program to run in each repo [default: git]
-d, --max-depth <LEVELS>
Descend at most LEVELS of directories below DIR
-r, --regex <REGEX>
Filters command to repo(s) matching provided regular expression [default: .*]
-j, --threads <NUM>
The maximum number of commands to run in parallel
ARGS:
<COMMAND>...
A single git command to run in each repo
安装
依赖
- Git
- Rust & Cargo(仅用于构建)
您可以通过 crates.io 安装 gitall
$ cargo install gitall
或者从 releases 页面上下载某些平台的预构建二进制文件。解压发布工件后,将 gitall
可执行文件移动到您的 PATH
中的某个目录。有关安装位于 complete/
的完成脚本,请参阅您的 shell 文档。
从源代码
克隆此存储库,构建 gitall,然后将可执行文件复制到您的 PATH
中的某个目录
$ git clone https://github.com/mattmahn/gitall.rs && cd gitall.rs
$ cargo build --release
# install target/release/gitall /usr/bin/
Bash、Zsh、fish、Elvish 和 PowerShell 的 shell 完成脚本也在构建期间生成;您可以在 target/release/build/gitall<hash>/out/
找到它们。有关安装,请参阅您的 shell 文档。
依赖
~4–13MB
~135K SLoC