# gitCommitAnalyzer **Repository Path**: sea_lx/gitCommitAnalyzer ## Basic Information - **Project Name**: gitCommitAnalyzer - **Description**: Git提交记录分析工具,一个跨平台的Git提交记录分析工具,用于提取指定时间范围内的所有文件路径,用于代码安全检查 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-25 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git提交记录分析工具 一个跨平台的Git提交记录分析工具,用于提取指定时间范围内的所有文件路径,用于代码安全检查。支持Python、Node.js和Shell三版本实现。 ## 功能特点 - **跨平台支持**:可在Windows、Mac和Linux上运行 - **灵活的筛选条件**:支持按时间范围、分支和作者筛选 - **多个作者输入**:支持用逗号分割输入多个作者 - **分支选择**:支持通过序号选择分支或直接输入分支名称 - **文件类型过滤**:默认只包含js、vue,可自定义添加其他类型 - **时间范围默认值**:开始时间默认1个月前,结束时间默认今天 - **自动去重**:确保输出的文件路径唯一 - **详细的错误处理**:提供友好的错误提示 - **完整的文件路径**:输出文件的绝对路径,方便直接使用 ## 安装依赖 ### Python版本 ```bash pip3 install -r requirements.txt ``` ### Node.js版本 ```bash npm install ``` ### Shell版本 无需安装依赖,直接运行即可: ```bash chmod +x src/shell/index.sh ./src/shell/index.sh ``` ## 使用方法 ### 通用步骤 1. **运行工具**:根据不同版本选择对应的命令 2. **输入参数**:按照提示输入项目路径、时间范围、分支和作者信息 3. **分析提交**:工具会分析指定时间范围内的Git提交记录 4. **选择压缩**:分析完成后,可选择是否复制文件并压缩为zip包 5. **输入文件名**:如果选择压缩,可输入自定义zip文件名 6. **完成**:工具会创建zip文件并保存在output文件夹中 ### Python版本 运行工具: ```bash python3 src/python/index.py ``` ### Node.js版本 运行工具: ```bash npm start ``` ### Shell版本 运行工具: ```bash chmod +x src/shell/index.sh ./src/shell/index.sh ``` ### 自动检测版本(推荐) 使用启动脚本自动检测并运行合适的版本: ```bash chmod +x run.sh ./run.sh ``` 启动脚本会自动检测当前环境中可用的Python、Node.js或Shell版本,并选择合适的版本运行。 ## 示例输出 ``` Git提交记录分析工具 用于提取指定时间范围内的所有文件路径,用于代码安全检查 ================================================================================ 请输入项目路径: /path/to/your/project 请输入开始时间 (格式: YYYY-MM-DD): 2024-01-01 请输入结束时间 (格式: YYYY-MM-DD): 2024-01-31 请输入分支名称 [dev]: 请输入作者名称 (留空表示全部作者): 正在分析 /path/to/your/project 仓库的提交记录... 时间范围: 2024-01-01 到 2024-01-31 分支: dev 作者: 全部作者 分析完成!找到 15 个唯一文件路径: ================================================================================ /path/to/your/project/src/app.js /path/to/your/project/src/components/Header.js /path/to/your/project/src/components/Footer.js /path/to/your/project/src/utils/helpers.js /path/to/your/project/package.json ================================================================================ 总计: 15 个文件路径 是否需要复制文件并压缩为zip包?(y/n) [y]: 请输入zip文件名 (默认: 需求版本-变更的代码) [需求版本-变更的代码]: 正在复制文件到临时目录... 正在创建zip文件... 成功创建zip文件:/path/to/gitSecureCommitTool/output/需求版本-变更的代码.zip 复制了 15 个文件 ``` ## 技术实现 ### Python版本 - **编程语言**:Python 3.x - **Git操作**:使用GitPython库 - **用户界面**:命令行界面 - **依赖管理**:pip ### Node.js版本 - **编程语言**:Node.js - **Git操作**:直接执行git命令 - **用户界面**:命令行界面(使用inquirer库) - **依赖管理**:npm - **文件操作**:使用fs-extra库 - **压缩功能**:使用adm-zip库 ### Shell版本 - **编程语言**:Bash/Shell - **Git操作**:直接执行git命令 - **用户界面**:命令行界面 - **依赖管理**:无依赖 - **文件操作**:使用标准Shell命令 - **压缩功能**:使用系统zip命令 - **性能优化**:使用管道命令组合进行高效处理 - **跨平台支持**:兼容Linux、macOS和Windows Git Bash ## 项目结构 ``` gitCommitAnalyzer/ ├── src/ │ ├── python/ │ │ └── index.py # Python版本主脚本文件 │ ├── nodejs/ │ │ └── index.js # Node.js版本主脚本文件 │ └── shell/ │ └── index.sh # Shell版本主脚本文件 ├── requirements.txt # Python版本依赖管理文件 ├── package.json # Node.js版本依赖管理文件 ├── package-lock.json # Node.js版本依赖锁定文件 ├── run.sh # 启动脚本 ├── LICENSE # 许可证文件 └── README.md # 项目说明文档 ``` ## 注意事项 1. 确保输入的项目路径是有效的Git仓库 2. 时间格式必须严格按照YYYY-MM-DD格式输入 3. 分支名称必须是仓库中存在的分支 4. 作者名称必须与Git提交记录中的作者名称一致 ## 常见问题 ### 1. 运行时出现"错误:无法初始化git仓库"怎么办? - 检查输入的项目路径是否正确 - 确保该路径是一个有效的Git仓库(包含.git目录) ### 2. 分析完成后没有找到文件路径怎么办? - 检查时间范围是否正确 - 检查分支名称是否存在 - 检查作者名称是否正确 - 确认该时间范围内是否有提交记录 ### 3. 工具在Windows上运行时需要注意什么? - **Python版本**: - 确保已安装Python 3.x - 在命令提示符或PowerShell中运行 - 路径输入格式为Windows格式(如:C:\path\to\project) - **Node.js版本**: - 确保已安装Node.js - 在命令提示符或PowerShell中运行 - 路径输入格式为Windows格式(如:C:\path\to\project) ### 4. Node.js版本运行时出现"错误:分析提交记录失败"怎么办? - 检查git命令是否正确安装 - 确保输入的项目路径是有效的Git仓库 - 检查分支名称是否存在 - 检查作者名称是否正确 - 确认该时间范围内是否有提交记录 ### 5. Shell版本运行时需要注意什么? - **Linux/macOS**: - 确保脚本有执行权限:`chmod +x src/shell/index.sh` - 直接运行:`./src/shell/index.sh` - **Windows**: - 在Git Bash或WSL中运行 - 确保git命令可用 - 路径输入格式为Unix格式(如:/c/path/to/project) ### 6. Shell版本运行时出现"Permission denied"错误怎么办? - 确保脚本有执行权限:`chmod +x src/shell/index.sh` - 以管理员权限运行终端(Windows) ## 三版本工具对比 | 功能 | Python版本 | Node.js版本 | Shell版本 | |------|------------|-------------|-----------| | 跨平台支持 | ✅ | ✅ | ✅ | | 分支选择(序号/名称) | ✅ | ✅ | ✅ | | 作者选择(序号/名称) | ✅ | ✅ | ✅ | | 多个作者输入(用逗号分割) | ✅ | ✅ | ✅ | | 文件类型过滤 | ✅ | ✅ | ✅ | | 时间范围默认值(1个月前到今天) | ✅ | ✅ | ✅ | | 文件复制和压缩(保留文件夹结构) | ✅ | ✅ | ✅ | | 友好的错误处理 | ✅ | ✅ | ✅ | | 完整的文件路径输出 | ✅ | ✅ | ✅ | | 无依赖运行 | ❌ | ❌ | ✅ | | 性能优化 | ✅ | ✅ | ✅ | ## 许可证 本工具为开源项目,可自由使用和修改。