对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具

对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具

2022-09-05 0 877
资源编号 38079 最近更新 2022-09-05
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的是对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具。

介绍

git repo-clean 是一个用Golang开发的具备Git仓库大文件扫描,清理,并重写commit提交记录功能的Git拓展工具。

Git仓库数据过滤的大概流程

git 本身提供了两个命令: git-fast-export, git-fast-import, 他们分别作用将Git仓库数据(.git/objects)导出为特定格式的元数据,流式读取这种特定格式的元数据,并生成一个完成的Git仓库。任何符合这种格式的文件,输入给git-fast-import都能创建一个Git仓库。

所以git-clean-repo的大致流程如下:

fast-export
    |
    | output stream
    |
    ---> parser(blob, commit, reset, tag...)
            |
            |
            |
            ---> filter(blob size, blob oid)
                    |
                    | input stream
                    |
                    ---> fast-import

依赖环境:

  • Git >= 2.24.0 (必须)
  • Golang >= 1.15 (可选)

安装

1 二进制包安装

下载链接:https://gitee.com/oschina/git-repo-clean/releases/

解压,即可进入加压后的目录,有如下文件:

-rwxrwxr-x 1 git git 6.3M Dec  1 17:31 git-repo-clean.exe   # 程序包(此为Windows下的程序包,其它平台类似)
-rw-rw-r-- 1 git git 5.1K Dec  1 17:31 README.md            # 使用文档(即本文档)
drwxrwxr-x 3 git git 4.0K Dec  1 17:31 docs                 # 附录文档
-rw-rw-r-- 1 git git 9.6K Dec  1 17:31 LICENSE              # 许可证

解压后,并不是直接点击 git-repo-clean.exe 就能用,而是需要经过下面的安装步骤才能使用。

2 源码编译安装包

该方式需要你的电脑有基本的make编译环境,以及Golang环境

$ git clone https://gitee.com/oschina/git-repo-clean
# 进入源码目录,编译
$ cd git-repo-clean
$ make
# 在bin/目录下即是编译后的程序包
  • Linux环境
sudo cp git-repo-clean $(git --exec-path)
  • Windows环境

方法一:将可执行文件git-repo-clean.exe的路径放到系统$PATH路径中,大致操作步骤为: 点击Windows的[开始] –> 输入path –> 选择编辑系统环境变量–> 选择环境变量<N> –> 在系统变量(S)中选择Path –> 选择新建(N) –> 将刚才解压的包含git-repo-clean.exe文件的路径复制到新建的环境变量中。

方法二:也是将git-repo-clean.exe复制到 Git 的执行目录下:cp git-repo-clean.exe $(git –exec-path)。(Git可能安装在C盘某个目录中,需要特别权限才能复制)

方法三:也可以直接复制该可执行文件git-repo-clean.exe到C:\Windows\system32目录下。(不推荐使用该方法,因为可能会误操作,导致系统文件被破坏)

  • Mac OS环境

与Linux上的操作类似。 但是注意:在Mac OS上进行配置之后可能无法执行,需要授权,具体方式为: System Preferences -> Security & Privacy 点击 Allow Anyway 始终允许即可:

对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具

通过方法安装完成后,执行如下命令检测是否安装成功:

git repo-clean --version

使用

  • 交互式用法

输入git repo-clean可以直接进入交互模式 该方式进入交互模式,因为没有加任何参数,只能使用默认选项。此模式下默认打开的选项有–scan, –delete, –verbose,如果想使用其它选项,如–branch,则可以使用如下方式:

git repo-clean -i[--interactive]

使用-i 选项进入交互式模式,该方法可以追加其它选项,如git repo-clean -i –branch=topic

对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具

  • 命令行式用法
git repo-clean --scan --limit=1G --type=tar.gz --number=1

在仓库中使用命令行,扫描仓库当前分支的文件,文件最小为1G,类型为tar.gz,显示前1个结果

git repo-clean --scan --limit=1G --type=tar.gz --number=1 --delete

加上–delete选项,则会批量删除当前分支扫描出的文件,并重写相关提交历史(包括HEAD)

如果想要清理其他分支的数据或者所有分支的数据,可以使用–branch选项,如–branch=all则可以进行全扫描,会把所有分支上筛选出的数据清理掉。

git repo-clean --scan --limit=1G --type=tar.gz --number=1 --delete --branch=all

加上–branch选项,则会扫描所有分支的文件再执行删除,并重写相关提交历史。

对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具
资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 对Git仓库大文件进行扫描、清理,并重写提交历史的Git拓展工具 https://www.7claw.com/38079.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务