upload 命令自动完成 大文件检测 → LFS 跟踪 → add → commit → push 全流程
自动扫描超过阈值的文件,添加 Git LFS 跟踪规则并迁移,支持 >200MB 文件上传
克隆项目后自动识别 LFS 文件并拉取,大文件无需额外操作
大文件阈值、跟踪扩展名、默认分支等均可自定义,配置持久化存储
lfs scan 命令快速定位仓库中的大文件,直观展示文件大小和路径
纯 Python 标准库实现,无需 pip install 任何第三方包
Git Tool 依赖 Git 和 Git LFS(用于大文件传输)
从上方下载专区获取 git-tool.zip,解压到任意目录后进入该目录
首次使用会自动创建默认配置,也可手动初始化
在当前目录初始化一个新的 Git 仓库,自动配置用户信息和 Git LFS
| 参数 | 说明 |
|---|---|
--bare | 创建裸仓库(无工作区,适用于服务端) |
--no-lfs | 不自动初始化 Git LFS |
-C <dir> | 指定工作目录(全局参数,所有命令通用) |
添加远程仓库地址,若同名远程已存在则更新 URL
| 参数 | 说明 |
|---|---|
name | 远程仓库名(如 origin、upstream) |
url | 仓库地址(HTTPS 或 SSH) |
核心命令,一条命令完成:大文件检测 → LFS 跟踪 → git add → git commit → git push
| 参数 | 说明 | 默认 |
|---|---|---|
-m / --message | 提交信息 | 自动生成时间戳 |
-r / --remote | 远程仓库名 | origin |
-b / --branch | 推送分支 | 当前分支 |
--no-add | 不自动执行 git add | - |
--no-push | 只提交不推送 | - |
克隆远程仓库,自动识别 LFS 文件并拉取
| 参数 | 说明 |
|---|---|
url | 仓库地址(必填) |
dest | 目标目录(默认当前目录) |
-b / --branch | 指定克隆分支 |
--depth | 浅克隆深度 |
拉取远程仓库的最新更新,同时拉取 LFS 大文件
| 参数 | 说明 | 默认 |
|---|---|---|
-r / --remote | 远程仓库名 | origin |
-b / --branch | 分支名 | 当前分支 |
显示当前分支、文件变更状态和大文件扫描结果
| 参数 | 说明 | 默认 |
|---|---|---|
-n / --count | 显示条数 | 10 |
扫描仓库中超过阈值的大文件,显示文件路径和大小
自动检测大文件并按扩展名生成 .gitattributes 跟踪规则
为指定扩展名或常见大文件类型批量添加 LFS 跟踪规则
显示当前 LFS 跟踪规则和已管理的 LFS 文件列表
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
lfs_threshold_mb |
int | 200 | 大文件阈值(MB),超过此大小自动使用 Git LFS |
lfs_extensions |
list | *.zip, *.mp4 ... | LFS 跟踪的文件扩展名列表 |
default_branch |
str | main | init 时创建的默认分支名 |
commit_prefix |
str | "" | 提交信息前缀,如 "[项目名]" |
auto_config_user |
bool | true | 初始化时是否自动配置 user.name / user.email |
user_name |
str | Git Tool User | 自动配置的用户名 |
user_email |
str | gittool@example.com | 自动配置的邮箱 |
auto_push |
bool | true | upload 时是否自动 push |
timeout |
int | 0 | 命令执行超时时间(秒),0 = 不限制 |
递归扫描仓库目录,找出所有超过 lfs_threshold_mb(默认 200MB)的文件,跳过 .git 目录
若仓库未初始化 LFS,自动执行 git lfs install,创建 .gitattributes 文件
按大文件扩展名自动生成 git lfs track 规则并写入 .gitattributes,避免重复添加
如果大文件已被 git 普通跟踪,自动执行 git rm --cached + git add 将其转为 LFS 管理
提交 .gitattributes 和所有变更文件,推送时 LFS 对象会自动上传到 LFS 存储
git lfs migrate 清理历史
python3 main.py config set lfs_threshold_mb 100pip3 install -e .git-tool 命令替代 python3 main.py。
python3 main.py add-remote origin https://github.com/user/repo.git