GitRunSync 是一个通用工具,用于启动指定的外部程序,等待其退出后自动执行 Git 操作(add/commit/pull/push)。
- 自动 Git 操作:程序退出后自动执行 add/commit/pull/push
- 单实例运行:确保同一时间只有一个实例运行
- 灵活的配置方式:支持命令行参数和配置文件
- 智能仓库检测:自动从当前目录向上查找 Git 仓库根目录
- 专业模式支持:提供交互式 Git 操作选项
- 自动查找程序:可自动查找默认程序(如 ping.exe)
- 单实例检查:确保只有一个程序实例运行
- 参数解析:解析命令行参数和配置文件
- Git Pull:先拉取最新代码
- Git Status 检查:检查仓库状态
- 普通模式:如有改动或异常,等待用户确认
- 专业模式:允许用户执行 clean/diff 等操作
- 启动外部程序:启动指定的外部程序并等待其退出
- Git 提交推送:自动执行 add/commit/pull/push
- 克隆或下载项目源码
- 使用 C 编译器编译
src/gitrunsync.c文件 - 将编译生成的可执行文件
gitrunsync.exe放在合适的目录
gitrunsync.exe [RunExePath] [RunExeArg] [--pro] [--run <exe>] [--arg <arg>]- 基本使用(自动查找默认程序):
gitrunsync.exe
2. 指定要运行的程序:
```bash
gitrunsync.exe "D:\path\to\myprogram.exe" "--param1 value1"
- 使用专业模式:
gitrunsync.exe --pro --run "ping.exe" "127.0.0.1 -t 10"
## 命令行参数
| 参数 | 说明 |
|------|------|
| `RunExePath` | 要启动的程序路径(位置参数) |
| `RunExeArg` | 传递给启动程序的参数(位置参数) |
| `--pro` | 启用专业模式,允许交互式 Git 操作 |
| `--run <exe>` | 指定要启动的程序路径(选项参数) |
| `--arg <arg>` | 指定传递给启动程序的参数(选项参数) |
| `--help` 或 `-h` | 显示帮助信息 |
## 配置文件
程序会在可执行文件所在目录生成配置文件 `gitrunsync.ini`,格式如下:
```ini
[GitSync]
RepoDir=
RunExePath=C:\Windows\System32\ping.exe
RunExeArg=
ProMode=0
| 配置项 | 说明 | 默认值 |
|---|---|---|
RepoDir |
Git 仓库目录(留空则自动查找) | 空 |
RunExePath |
要启动的程序路径 | 自动查找的 ping.exe 路径 |
RunExeArg |
传递给启动程序的参数 | 空 |
ProMode |
是否启用专业模式(0: 否,1: 是) | 0 |
在专业模式下,当 Git 状态异常时,会出现以下交互提示:
Input: cl (clean: stash+reset+pull) / diff (view changes) / others (continue) >
cl:执行清理操作(stash+reset+pull)diff:查看改动内容- 其他输入:继续执行后续操作
如果未指定要启动的程序,程序会自动查找以下位置:
<repoDir>\ping.exe<repoDir>\ping_project\build\ping.exe<exeDir>\ping.exeC:\Windows\System32\ping.exe
- 程序会自动最小化控制台窗口,外部程序退出后恢复
- 支持 UTF-8 编码输出
- 仅支持 Windows 操作系统
- 确保 Git 已正确安装并配置环境变量
- 首次运行会自动生成配置文件
| 退出码 | 说明 |
|---|---|
| 0 | 成功执行 |
| 1 | 初始化失败 |
| 2 | 参数解析失败 |
| 3 | 配置文件处理失败 |
| 4 | 未找到 Git 仓库 |
| 5 | 未找到要启动的程序 |
| 6 | Git 同步前操作失败 |
- Windows SDK
- C 编译器(如 MSVC、MinGW 等)
- 需要链接
shlwapi.lib库
cl /Fe:gitrunsync.exe src\gitrunsync.c /link shlwapi.lib本项目采用 MIT 许可证。
bootloader