#git-repository #git #commit #tags #repos #optional #remote

bin+lib mrh

遍历文件系统,显示找到的每个 git 仓库的挂起状态

43 个版本

0.13.2 2024年3月25日
0.13.0 2023年10月4日
0.12.1 2023年2月2日
0.11.1 2022年10月11日
0.4.0 2017年11月29日

#2002 in 命令行工具

每月21次下载

MIT/Apache

28KB
478

mrh - 多(git)仓库助手

crates.io build status

此仓库提供了一个库,允许遍历目录及其子目录以查找 Git 仓库。它会报告这些仓库是否有

  • 未提交的更改
  • 未推送到远程的提交
  • 过时的分支
  • 新增文件
  • 删除文件
  • 重命名文件
  • 未跟踪文件(可禁用)
  • 未提交的仓库(可禁用)
  • 未标记的 HEAD(可选)
  • 未推送到远程的标签(可选)
  • 未拉取的标签(可选)
  • 未抓取的提交(可选)

它还提供了一个具有所有这些功能的命令行工具,其中一个功能是显示所有仓库

$ mrh
foo (uncommitted changes, untracked files, unpushed commits)
bar
baz (untracked files)
qux

仅显示待处理的仓库

$ mrh --pending
foo (uncommitted changes, untracked files, unpushed commits)
baz (untracked files)

忽略结果中的未跟踪文件

$ mrh --pending --ignore-untracked
foo (uncommitted changes, unpushed commits)

包括 HEAD 提交未标记的仓库

$ mrh --pending --ignore-untracked --untagged-head
foo (uncommitted changes, unpushed commits, untagged HEAD)
bar (untagged HEAD)

检查哪些仓库有未抓取的提交,当远程在网络上时,这是一个相对较慢的操作

$ mrh --access-remote ssh-key
qux (unfetched commits)

如果需要 JSON 输出,请使用 --output-json 标志。

说明

  • 忽略不可读的文件/目录而不发出警告
  • 忽略裸 Git 仓库

安装

在构建 mrh 之前,您需要安装一些软件包。在 Debian/Ubuntu 上,您可以这样做

apt install cmake libssl-dev pkg-config gcc

这些都是 libssh2-sys crate 所需要的,而 git2 crate 最终也需要它。

继续构建和安装 mrh(假设您已安装 Rust 工具链)

cargo install mrh

JSON 输出格式背后是一个功能标志

cargo install mrh --features json

注意:最小要求的 rustc 是 v1.74,因为 clap

有关库的使用,请查看它们 API 文档

许可

根据您的选择,许可为 Apache 许可证,版本 2.0MIT 许可证
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在本软件包中的任何贡献,将双重许可如上所述,不附加任何额外条款或条件。

依赖项

~13–23MB
~388K SLoC