# git-repo-clean **Repository Path**: tenngoxars/git-repo-clean ## Basic Information - **Project Name**: git-repo-clean - **Description**: 对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具。 - **Primary Language**: Go - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 34 - **Created**: 2021-12-06 - **Last Updated**: 2025-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git 仓库清理工具 一个用于清理和优化 Git 仓库的工具,支持多种操作包括备份、重置、推送及垃圾回收。 ## 📌 特性 - 支持 Git LFS 清理 - 支持本地与远程仓库同步 - 支持多语言输出(中文/英文) - 提供交互式命令行界面 - 支持 Git 仓库大小分析与优化 ## 🛠️ 安装 确保你已安装 Go 环境,然后执行: ```bash go mod download make ``` ## 📦 用法 ### 命令行模式 ```bash git-repo-clean ``` ### 交互模式 进入交互界面后,你可以选择以下操作: - 查看仓库状态 - 扫描并清理大文件 - 执行垃圾回收(GC) - 推送清理后的仓库到远程 - 选择性重置或覆盖提交 ## 🧪 主要组件 - `Repository`: 管理 Git 仓库信息 - `RepoFilter`: 提供过滤和清理仓库内容的功能 - `GitElements`: 用于解析 Git 提交、Blob、重置、Tag 等元素 - `FastExportIter`: 实现 fast-export 数据流的迭代处理 - `FastImportOut`: 实现 fast-import 数据流的输出 - `Parser`: 解析 Git fast-export 输出内容 - `Utils`: 提供通用工具函数,如颜色输出、数据格式转换等 - `I18n`: 支持多语言输出(中文/英文) ## 📚 文档 详见 `docs/` 文件夹: - `repo-update.md`: 仓库更新流程说明 - `technical.md`: 技术实现细节 ## 🌍 多语言支持 使用 `-lang` 参数切换语言: ```bash git-repo-clean -lang=zh git-repo-clean -lang=en ``` ## 📝 License 本项目基于 MIT License。详见 `LICENSE` 文件。 ## 📂 目录结构 - `cmd.go`: 主命令逻辑 - `filter.go`: 清理过滤器 - `git.go`: Git 操作封装 - `parser.go`: 解析 Git fast-export 输出 - `repository.go`: 仓库主控逻辑 - `utils.go`: 工具函数 - `i18n.go`: 国际化支持 ## 🧑‍💻 开发者支持 欢迎提交 PR 或 Issue,参与项目改进。更多细节请参考 `CONTRIBUTING.md`。