13 个版本
0.6.3 | 2024 年 8 月 10 日 |
---|---|
0.6.2 | 2024 年 6 月 8 日 |
0.6.1 | 2023 年 8 月 11 日 |
0.6.0 | 2023 年 5 月 10 日 |
0.1.0 | 2017 年 2 月 1 日 |
#116 在 文件系统
142 每月下载次数
49KB
860 代码行
git-global
使用 git-global
跟踪您机器上所有的 git 仓库。
这是一个可以用 cargo install git-global
安装的 Rust 程序。(获取 cargo
和 Rust,请参阅 https://rustup.rs。)安装后,您可以可选地使用 git global install-manpage
安装手册页。
安装后,您将获得一个额外的 git 子命令,您可以从任何位置运行它来检查所有 git 仓库: git global
。使用 git global <subcommand>
来
git global ahead
:显示包含不在任何远程上的提交的分支的仓库git global info
:显示关于 git-global 自身的元信息(配置、已知仓库数量等)git global install-manpage
:尝试安装 git-global 的手册页(非功能性)git global list
:显示所有已知仓库的列表git global scan
:通过搜索文件系统更新已知仓库的缓存git global staged
:显示具有此类更改的仓库的git索引状态git global stashed
:显示所有有存储的仓库的存储git global status
:显示所有有更改的仓库的git status -s
git global unstaged
:显示具有此类更改的工作目录状态
命令行标志
除了基于配置文件选项外,还有一些全局命令行标志具有优先级
--json
:以JSON格式打印子命令结果--untracked
:在子命令结果中显示未跟踪的文件,例如,对于status
、staged
和unstaged
子命令--nountracked
:不在子命令结果中显示未跟踪的文件,例如,对于status
、staged
和unstaged
子命令
配置
要更改 git-global
的默认行为,您可以使用 —— 等等 —— git的全局配置!
要将仓库发现根目录设置为除主目录以外的其他目录
git config --global global.basedir /some/path
要添加在遍历目录时排除的模式
git config --global global.ignore .cargo,.vim,Library
在 global
部分的配置选项支持完整的列表
basedir
:仓库发现的根目录(默认:$HOME
)follow-symlinks
:在仓库发现期间是否跟随符号链接(默认:true
)same-filesystem
:在仓库发现期间是否保持与basedir
相同的文件系统(默认:在Windows或Unix上为true
,在其他情况下为false
)ignore
:在遍历目录时排除的模式列表(默认:无)default-cmd
:未指定时运行的默认子命令,例如,运行git global
时(默认:status
)show-untracked
:是否在输出中包含未跟踪的文件(默认:true
)
手册页生成
最新版本的手册页存储在doc/git-global.1 仓库中。要从本地克隆的仓库生成它,请运行
cargo run --bin generate-manpage --features=manpage > doc/git-global.1
想法
以下是一些关于未来子命令和功能的想法
-
git global dirty
:显示所有有任何类型更改的仓库 -
git global branched
:显示不在master
上的所有仓库(待办:或在不同默认分支的 .gitconfig 中) -
git global duplicates
:显示被检出到多个位置的仓库 -
git global remotes
:显示所有远程仓库(待办:为什么?或许应该按主机名过滤?) -
git global add <path>
:将 git 仓库添加到缓存,这些仓库在扫描中找不到 -
git global ignore <path>
:忽略一个 git 仓库并将其从缓存中删除 -
git global ignored
:显示当前被忽略的 git 仓库 -
git global monitor
:启动守护进程以使用 inotify 监视 git 目录 -
git global pull
:从默认跟踪分支拉取更改到干净的仓库 -
git global cd <fuzzy repo>
:更改到匹配的仓库的目录(编号6) -
将结果流式传输到
STDOUT
,随着它们的到来(来自git global status
,例如,这样我们就不必等待它们全部收集完毕) -
如果数据库已填充,则使用
locate .git
,而不是遍历文件系统 -
创建一个
Subcommand
特质 -
以通用方式执行并发,而不仅仅是针对
status
子命令
发布说明
- 0.6.3 (2024-08-10)
- 使
ahead
子命令能够与损坏的引用一起工作(编号105)。谢谢,koalp! - 各种依赖项更新。
- 使
- 0.6.2 (2024-06-08)
- 各种依赖项更新,包括
json
-->serde_json
。
- 各种依赖项更新,包括
- 0.6.1 (2023-08-10)
- 各种依赖项更新。
- 0.6.0 (2023-05-10)
- 更新到 Rust 2021 版本。
- 更新、替换或删除多个依赖项。
- 0.5.1 (2022-03-17)
- 添加
generate-manpage
二进制文件和(非功能性的)install-manpage
子命令。
- 添加
- 0.5.0 (2021-07-12)
- 添加
ahead
子命令 - 谢谢,koalp!。
- 添加
- 0.4.1 (2021-06-03)
- 修复缓存仓库被删除时的崩溃。
- 0.4.0 (2021-04-19)
- 更新到 Rust 2018 版本(感谢,koalp!)。
- 用
directories
替换dirs
和app_dirs
包。- 在升级到此版本之前创建的缓存文件可能在升级后不再被考虑,因此可能在升级到此版本后的第一次命令运行期间需要重新生成缓存。但是,如果无法创建缓存文件,我们不再会恐慌。
- 0.3.2 (2020-11-13)
- 更新依赖项。
- 0.3.1 (2020-04-25)
- 更新依赖项。
- 0.3.0 (2019-08-04)
- 添加子命令
staged
stashed
unstaged
- 添加配置选项
default-cmd
show-untracked
follow-symlinks
same-filesystem
- 添加命令行标志
--untracked
--nountracked
- 添加选项以在扫描目录时跟踪符号链接并保持在同一文件系统上;默认情况下两者都是
true
。(感谢,pka!)
- 添加子命令
- 0.2.0 (2019-03-18)
- 在状态输出中包含未跟踪文件。
- 扩展文档和包元数据。
- 更新和更改几个依赖项。
- 添加一些测试。
- 进行了一些公共API更改,例如
- 将
GitGlobalConfig
重命名为Config
。 - 将
GitGlobalResult
重命名为Report
。 - 将
get_repos
、find_repos
和cache_repos
函数移动到Config
。 - 将
core
模块拆分为config
、repo
和report
。
- 将
- 合并了在未配置忽略任何内容时扫描目录的漏洞修复(#1)。
- 0.1.0 (2017-01-31)
- 这是首次发布,包括以下子命令:help、info、list、scan、status。
依赖项
~10–22MB
~334K SLoC