首页 > 其他分享 >git 清理commit中历史提交记录的大文件

git 清理commit中历史提交记录的大文件

时间:2023-05-18 10:02:16浏览次数:45  
标签:文件 git bfg -- 清理 jar commit xxx

git 清理commit中历史提交记录的大文件

起源是公司需要把代码仓库同步到另外一个代码仓库,结果另外一个仓库被限制大文件超过64M提交,所以会同步失败。

刚开始我直接把大文件压缩到64m以内,结果还是同步失败。后来才知道是因为提交记录里面有包含大文件的信息也要删除才行。

具体操作方法:

  1. 通过ssh的方式配置仓库认证
  2. 下载工具bfg
    网盘下载:网盘下载地址
    官网下载:bfg-1.13.0.jar 官网下载地址

将程序包放到一个文件夹里,为了方便,重命名为bfg.jar
3. 克隆仓库

git clone --mirror ssh://[email protected]:34/xxx/xxx.git
  1. 清理大文件,文件夹,隐私文件
    知道大文件的名字是最好的,如果不知道也可以通过命令找到文件。详情看文末的参考2链接,里面有详细介绍。
git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5
java -jar bfg.jar --delete-files 我是单个文件名字 hcses-warehouse.git --no-blob-protection
java -jar bfg.jar --delete-folders 我是文件夹的名字 hcses-warehouse.git --no-blob-protection
java -jar bfg.jar --delete-files ys.mp4 xxx.git --no-blob-protection
java -jar bfg.jar --delete-files ys.zip xxx.git --no-blob-protection
  1. 清理不需要的数据
    在完成上面的指令后,实际上这些数据/文件并没有被直接删除,这时候需要使用git gc指令来清除。
cd xxx.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive
  1. 推送到Git仓库
    普通推送可能也会报错,我们可以使用强制推送。
git push
git push --force

参考1
参考2

标签:文件,git,bfg,--,清理,jar,commit,xxx
From: https://www.cnblogs.com/abspace/p/17410990.html

相关文章

  • IDEA git提交速度慢
    背景:升级了版本2022.1.3后commitpush都很慢原因:Git速度慢解决方法,亲测速度超快.ideagit操作卡慢解决办法,可以试试:将%IntelliJIDEA%\bin目录下的runnerw.exe和runnerw64.exe改成runnerw.exe.bak和runnerw64.exe.bak,重启Idea,commit代码即可生效.......
  • 使用Git中,经常用commit -m推送到版本库?版本库又是什么?
    Hello,我是喜欢探索的索奇(即兴小索奇),在git中你可能会经常gitadd,gitcommit-m,gitpush,gitpull等操作....这是是第一篇给大家拓展git的知识,以后也会经常拓展的,因为它是代码之路,不可缺少的重要组成部分~版本库(Repository)是Git中的一个核心概念,它是用于存储项目代码、记录项目历史......
  • 搭建个人博客-hexo+github详细完整步骤
    自己也算是摸爬滚打搭建成功,然后自己再重新安装部署一遍,把完整步骤分享给大家,同时最后有一些连接,如果我的步骤不行,大家可以参考其他人的(这个有点花费时间,大家提前有个心理准备-_-)一、第一步:下载安装Git1、Git下载地址2、安装步骤个人选择全选选择第二个......
  • 搭建个人博客-hexo+github详细完整步骤
    自己也算是摸爬滚打搭建成功,然后自己再重新安装部署一遍,把完整步骤分享给大家,同时最后有一些连接,如果我的步骤不行,大家可以参考其他人的(这个有点花费时间,大家提前有个心理准备 -_-)一、第一步:下载安装Git1、Git下载地址2、安装步骤个人选择全选选择......
  • 《Typora+PicGo +Github + jsDelivr + TinyPNG打造稳定快速、高效免费图床》的体验
    《Typora+PicGo+Github+jsDelivr+TinyPNG打造稳定快速、高效免费图床》前言我目前已完成Typora+PicGo图床配置以及PicGo上传失败的解决办法。不过看了EvanXu的这个图床后,发现还可以改进。原先我用的typora+PicGo+Gitter打造图床,而EvanXu的方法是用GItHub做仓库,用jsDelivr做C......
  • Github 新手够用指南
    https://zhuanlan.zhihu.com/p/372512096本文略长但详细,一篇解决你的问题。一、必备少量知识二、安装教程三、从github往下扒项目四、你的项目要上传一、必备少量知识——————人工分割线——————小秘密:Git和Github都是些什么?Git-->一个软件(下载安装即可......
  • Git使用
    git使用狂神说Git什么是版本控制版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档......
  • CentOS系统的/tmp目录自动清理规则
    CentOS系统的/tmp目录自动清理规则1、CentOS7CentOS7下,系统使用systemd管理易变与临时文件,与之相关的系统服务有3个:systemd-tmpfiles-setup.service:CreateVolatileFilesandDirectoriessystemd-tmpfiles-setup-dev.service:Createstaticdevicenodesin/devsystemd-tmpf......
  • git
    变基#gitrebasemain当前分支在bugFix*将main分支的工作合并到当前分支。变基main就是将当前分支合并到main下。获取某个分支来过gitcherry-pickc2c4#将c2c4合并到当前分支......
  • gitlab-runner 中的 Docker-in-Docker
    笔者个人理解:gitlab-runner安装后就是一个监听状态的runner,而通过gitlab-runnerregister注册的“实例”其实只是预定义的配置节,当消息抵达后,gitlab-runner根据消息内容选择相应的配置节启动执行线程。为了方便阐述和理解,本文也将每个配置节/执行线程称为runner实例。runn......