通过此脚本可以遍历指定目录下的所有 Git 仓库, 检查他们是否有新的更改, 或者没有同步到远程仓库的更改
因为在工作中生活中有很多可能同时在修改的项目/仓库/笔记的"项目", 所以需要一个这样的脚本在一天的工作结束后, 批量检查它们的状态
- 程序语言:
C# - 运行平台:
.Net 9+ - 与之前版本相比基于可以跨平台安装执行
dotnet publish .\src\GitCheckCommand\GitCheckCommand.csproj -o "_release/GitCheckCommand/" -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true重命名为 Git 子命令, 确保全局使用
git config --global alias.gits '!E:/XXX/GitCheckCommand/GitCheckCommand.exe'执行完成, 无错误即可使用命令程序
git gits第一次运行时就根据程序内置的配置内容自动生成运行时配置文件
如 Window 系统下路径: C:\Users\Administrator\.command_gitcheck_config.json
也可以手动指定配置路径, 使用别名调用即可, 具体参数请使用 -h 查看
内容参数注解如下:
{
// 版本号标识
"Version": "x.x.x",
// 全局配置项: 如果仓库不干净是否, 自动打开对应的 Git Bash 程序
// 目前还没有完成, 正在寻找实现思路
"IsOpenShell": false,
// 全局配置项: 对应的 Git Bash 程序路径地址
"OpenShellGitBashExePath": "C:\\Program Files\\Git\\git-bash.exe",
// 全局配置项, 循环递归查找指定目录下所有仓库的路径隐藏项
// 在查找过程中会将每一项与路径进行正则表达式的匹配, 如果匹配成功则跳过不计算在程序运行范围内
"IgnoresRegexs": [],
// 全局必备项, 执行需要查找那些路径
"Roots": [
{
// 如: 查找 C盘 Work文件夹下所有的Git仓库
"Path": "C:\\Work",
// 没有明确指明其他配置则继承上面的全局配置项
"IsOpenShell": null,
// 指定了需要单独屏蔽某些路径的正则表达式
"IgnoresRegexs": [
"YTS.Test$",
"YTS.Learn$"
]
}
]
}开发使用的是 Window 系统, 使用的 Git 自带的 Git Bash (mintty)
建议安装使用最新版本的 Git version 2.30+ mintty 3.6+
否则会有中文信息输出乱码的情况