Skip to content

gycog/GitRunSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitRunSync

项目简介

GitRunSync 是一个通用工具,用于启动指定的外部程序,等待其退出后自动执行 Git 操作(add/commit/pull/push)。

功能特点

  • 自动 Git 操作:程序退出后自动执行 add/commit/pull/push
  • 单实例运行:确保同一时间只有一个实例运行
  • 灵活的配置方式:支持命令行参数和配置文件
  • 智能仓库检测:自动从当前目录向上查找 Git 仓库根目录
  • 专业模式支持:提供交互式 Git 操作选项
  • 自动查找程序:可自动查找默认程序(如 ping.exe)

工作流程

  1. 单实例检查:确保只有一个程序实例运行
  2. 参数解析:解析命令行参数和配置文件
  3. Git Pull:先拉取最新代码
  4. Git Status 检查:检查仓库状态
    • 普通模式:如有改动或异常,等待用户确认
    • 专业模式:允许用户执行 clean/diff 等操作
  5. 启动外部程序:启动指定的外部程序并等待其退出
  6. Git 提交推送:自动执行 add/commit/pull/push

安装方法

  1. 克隆或下载项目源码
  2. 使用 C 编译器编译 src/gitrunsync.c 文件
  3. 将编译生成的可执行文件 gitrunsync.exe 放在合适的目录

使用方法

基本用法

gitrunsync.exe [RunExePath] [RunExeArg] [--pro] [--run <exe>] [--arg <arg>]

示例

  1. 基本使用(自动查找默认程序):

gitrunsync.exe


2. 指定要运行的程序:
```bash
gitrunsync.exe "D:\path\to\myprogram.exe" "--param1 value1"
  1. 使用专业模式:

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:查看改动内容
  • 其他输入:继续执行后续操作

自动查找程序逻辑

如果未指定要启动的程序,程序会自动查找以下位置:

  1. <repoDir>\ping.exe
  2. <repoDir>\ping_project\build\ping.exe
  3. <exeDir>\ping.exe
  4. C:\Windows\System32\ping.exe

注意事项

  1. 程序会自动最小化控制台窗口,外部程序退出后恢复
  2. 支持 UTF-8 编码输出
  3. 仅支持 Windows 操作系统
  4. 确保 Git 已正确安装并配置环境变量
  5. 首次运行会自动生成配置文件

退出码说明

退出码 说明
0 成功执行
1 初始化失败
2 参数解析失败
3 配置文件处理失败
4 未找到 Git 仓库
5 未找到要启动的程序
6 Git 同步前操作失败

开发说明

编译依赖

  • Windows SDK
  • C 编译器(如 MSVC、MinGW 等)
  • 需要链接 shlwapi.lib

编译命令示例(MSVC)

cl /Fe:gitrunsync.exe src\gitrunsync.c /link shlwapi.lib

许可证

本项目采用 MIT 许可证。

作者

bootloader

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published