Skip to content

About

Git 仓库脚本: 检查目录是否需要进一步操作

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

Git 仓库检查脚本

开发目的:

通过此脚本可以遍历指定目录下的所有 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+

否则会有中文信息输出乱码的情况

参考学习地址

About

Git 仓库脚本: 检查目录是否需要进一步操作

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages