首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git清理commit中历史提交的大文件

文章时间:2019年11月10日 14:02:59 解决问题:清理Git中比较大的文件,主要针对历史记录进行清理 ps:因为Git可以恢复版本,所有历史提交过的较大的文件,也会被保存下来,所以我们需要...这里方法有两种,下面方法主要介绍了其中一种 查看目录下的文件的大小 git count-objects -v # 查看 git 相关文件占用的空间 du -sh .git # 查看 .git 文件夹占用磁盘空间...因为git的历史文件都是存在一个文件里的,我们使用下面命令可以找出排名前五的文件 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3...删除文件和删除文件夹的命令 java -jar bfg.jar --delete-files 我是单个文件名字 hcses-warehouse.git --no-blob-protection java...-jar bfg.jar --delete-folders 我是文件夹的名字 hcses-warehouse.git --no-blob-protection 第四步 清理不需要的数据 在完成上面的指令后

5.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git 大文件存储 lfs

    Git LFS(Large File Storage, 大文件存储)是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。...简介 Git LFS(Large File Storage, 大文件存储)是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。...Git LFS可以把音乐、图片、视频等指定的任意文件存在 Git 仓库之外,而在 Git 仓库中用一个占用空间 1KB 不到的文本指针来代替文件的存在。...通过把大文件存储在 Git 仓库之外,可以减小 Git 仓库本身的体积,使克隆 Git 仓库的速度加快,也使得 Git 不会因为仓库中充满大文件而损失性能。...文本文件(但通过du -sh查看目前的大小此目录依旧很大,那是因为.git/objects 目录存的git log文件占用)。

    2.1K10

    使用 Git 存储大文件

    git push 文件太大报警告 当在 Git 仓库中存储大的二进制文件时(>50MB),比如 R 里面的 RData 或 RDS 文件,默认的 git 提交方式无法获取二进制文件的修改,会让仓库越来越大...Git 大文件存储(Large File Storage,简称LFS)目的是更好地把大型二进制文件,比如音频文件、数据集、图像和视频等集成到 Git 的工作流中。...我们知道,Git 存储二进制效率不高,因为它会压缩并存储二进制文件的所有完整版本,随着版本的不断增长以及二进制文件越来越多,这种存储方案并不是最优方案。...而 LFS 处理大型二进制文件的方式是用文本指针替换它们,这些文本指针实际上是包含二进制文件信息的文本文件。文本指针存储在 Git 中,而大文件本身通过HTTPS托管在Git LFS服务器上。...了,例如 $ git add xx.rds $ git commit -m "add xx.rds" $ git push 迁移 如果你想将仓库里已经存储的文件修改存储方式为 LFS,那么使用下面的命令进行迁移

    2.9K30

    如何存储 Git 大文件?

    当你推送新的提交到服务器时,新推送的提交引用的所有 Git LFS 文件都会从本地 Git LFS 缓存传输到绑定到 Git 仓库的远程 Git LFS 存储(即 LFS 文件内容会直接从本地 Git...当你 checkout 一个包含 Git LFS 指针的提交时,指针文件将替换为本地 Git LFS 缓存中的文件,或者从远端 Git LFS 存储区下载。...关于 LFS 的指针文件: LFS 的指针文件是一个文本文件,存储在 Git 仓库中,对应大文件的内容存储在 LFS 服务器里,而不是 Git 仓库中,下面为一个图片 LFS 文件的指针文件内容: version...其格式为 key-value 格式,第一行为指针文件规范 URL,第二行为文件的对象 id,也即 LFS 文件的存储对象文件名,可以在.git/lfs/objects 目录中找到该文件的存储对象,第三行为文件的实际大小...与 Git 一样,Git LFS 存储也是内容寻址 的(而不是按文件名寻址):内容是根据密钥存储的,该密钥是内容本身的 SHA-256 哈希。

    3.6K52

    安装启动 Git LFS 大型文件处理模块

    Git LFS(Large File Storage)是一个 Git 扩展,用于更有效地处理大型文件。 在基于 git 托管大模型的平台拉取 AI 模型时常常需要开启这一功能。...要在不同的操作系统上安装 Git LFS,请按照以下步骤操作: ## 第一步、安装 Git LFS ### 对于 macOS 如果你已经安装了 Homebrew,你可以使用以下命令安装 Git LFS...### 对于 Windows 访问 Git LFS 的 GitHub 仓库的 Releases 页面。 下载适用于 Windows 的最新版本的安装程序(.exe 文件)。...双击下载的 .exe 文件并按照提示进行安装。...-S git-lfs ## 第二步、集成 安装完成后,需要运行以下命令以将 Git LFS 集成到 Git 中: git lfs install 现在,Git LFS 已经成功安装,并且可以在你的 Git

    52330

    深入了解Git LFS:高效管理大型文件的利器

    Git LFS是Git的一个扩展,旨在更有效地处理大型文件。它通过将大文件存储在单独的位置,而在Git仓库中只保留引用和元数据,来减小仓库的体积。...跟踪 你可以取消继续跟踪某类文件,并将其从cache中清理: git lfs untrack "*.zip" git rm --cached "*.zip" 如果你想将这些文件添加回常规 Git 跟踪...Git LFS工作原理 其工作原理如下: Git 场景 git.png 普通场景不论是针对小型的代码文本文件、还是比较大型的图片文件,在相关变更从本地提交到远端仓库时,所有的相关文件资源都会完整的存储在...Git LFS场景 gitlfs.png 如图片所示,我们可以针对jpg图片使用Git LFS的存储能力,在push过程中将其上传至大文件存储服务。...有效管理大型文件 对于大型媒体文件、二进制文件等,Git LFS提供了一种高效的版本控制方式,减小了仓库的体积。 团队协作 锁定文件的功能使得团队能够更好地协同工作,防止冲突。

    1.1K20

    GitLab 之 Git LFS 大文件存储的配置

    目录 Git LFS 介绍 环境、软件准备 Git LFS 安装 GitLab LFS 的配置 1、Git LFS 介绍 Git 大文件存储(Large File Storage,简称LFS)目的是更好地把大型二进制文件...我们知道,Git 存储二进制效率不高,因为它会压缩并存储二进制文件的所有完整版本,随着版本的不断增长以及二进制文件越来越多,这种存储方案并不是最优方案。...而 LFS 处理大型二进制文件的方式是用文本指针替换它们,这些文本指针实际上是包含二进制文件信息的文本文件。文本指针存储在 Git 中,而大文件本身通过HTTPS托管在Git LFS服务器上。...4、GitLab LFS 的配置 为了更好的服务社区,满足版本大型文件的需求,GitLab 宣布支持 Git LFS,现在已经包括在 GitLab.com,GitLab 社区版本和 GitLab 企业版本...-8.0.36.zip ./ $ git lfs track "*.zip" #设置存储到 LFS 的文件扩展名,这里我设置 .zip 后缀格式的文件 $ cat .gitattributes #自动生成的文件

    11.6K100

    Rails存储库从SVN转向Git

    在Ruby on Rails 2.1版本发布的前夕,Rails开发团队也准备将代码的存储库从Subversion迁移到Git之上。...在版本存储库迁移的同时,我们也会将问题跟踪系统转移到基于Rails开发的Lighthouse应用之上,于是到目前为止,我们的存储库和问题跟踪系统都是使用的Rails应用,这对我们是一个很好的鼓励。...这意味着我们的Subversion存储库依然可以访问,但是如果你想获得最新的代码,需要在新的Git存储库 上更新。...Git帮助开发者保留历史版本在本地的全部记录,同时大型项目管理方面,效率比一般的版本控制工具都要高。...同时,基于Rails开发的Git存储库托管工具GitHub,也为开发者带来了更为方便的协作模式,关于GitHub的细节报 道,请阅读InfoQ中文站GitHub:基于Rails的Git库托管一文。

    1.4K90

    【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )

    文章目录 一、添加暂存文件 git add 二、提交文件至版本库 git commit 三、查看版本库状态 git status 四、查询文件修改 git diff 一、添加暂存文件 git add -...如添加了哪些文件 , 修改了哪些文件内容 , 新增加了功能 , 修复 BUG 等 ; 执行 git commit -m "add 3 files" 命令 , 可以将上述添加到 " 暂存区 " 的文件 ,...提交到版本库中 ; 执行过程 : git commit 命令如果执行成功 , 会打印出本次提交版本库有哪些变动 , 此处提交的版本库增加了 3 个文件 ; D:\Git\git-learning-course..." ; 三、查看版本库状态 git status ---- 执行 git status 命令 , 可以查看版本库状态 ; 当前有没有需要提交的内容 , 版本库是否干净 ; 执行过程 : D:\Git\...git add 和 git commit 命令 , 或者之前忘记了修改哪些文件的哪些内容 , 可以执行 git diff 命令 , 查看哪些文件进行了什么修改 ; 此时执行 git status 命令

    1.6K20

    如何快速清理已经上传到Git仓库的.DS_Store文件

    很久以前,发过这样一篇文章《Git全局忽略MacOS系统下的.DS_Store文件》,主要是针对MacOS用户,如何方便的在自己机器中免疫所有.DS_Store文件的误提交。...今天想要分享的是来自一个读者的私信:配置忽略.DS_Store文件是在没有提交过的前提下做的防范措施,那么如果已经把大量的.DS_Store文件提交了的话,要如何快速清理呢?...这位读者还给我发了个他用的命令: git rm --cached .DS_Store 问题是这个命令只能处理当前目录,对于已经跑了一段时间的仓库,每个文件夹下面已经到处都是了。一个个去执行太麻烦了。...所以需要一个能遍历文件夹,并依次清除的实现。 这里就给大家分享一个快速清理的命令: find ....-name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch 只需要在要清理的Git项目目录下直接运行,就能处理所有的.DS_Store了

    53330

    Git 仓库瘦身与 LFS 大文件存储

    熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久,追踪的文件越来越多,git 存储的 objects 数量会极其庞大,每次从远程仓库 git clone 的时候都会墨迹很久。...这里微微记录下 Git 仓库瘦身和使用 Git LFS 进行大文件存储管理的几个常规操作。...origin/main' is unchanged WARNING: Ref 'refs/remotes/origin/master' is unchanged 接下来我们使用 reflog 和 gc 压缩(清理和回收大文件占用的...clone –mirror and git clone –bare Git LFS 大文件存储 如果我们之前生成的大文件 bigfile 大小超过 100 MB,那么 push 到 Github...master -> master 开启了 LFS 之后,对应大文件的内容存储在 LFS 服务器中,不再是存储在 Git 仓库中,Git 仓库中存储的是大文件的指针文件,LFS 的指针文件是一个文本文件

    83540

    Git的存储原理

    值 ├── heads/ 分支引用 ├── remotes/ 远程地址 └── tags/ 标签引用这个目录下包含了 Git 所有信息,且都是用文件的形式存储,所以说 Git 是一个文件系统...simplegit.rb git hash-object 命令可以用于计算文件的哈希值-w 表示把将对象写入到 git 数据库中--stdin 表示从标准输入读取内容git...cat-file 命令可以根据传入哈希值取出 git 存储的对象-p 自动判断内容的类型一次提交的数据结构可以用下图来概括:Git 包文件可能有的小伙伴通过上述方式在自己项目中尝试时...但是,Git 会时不时(或者当你手动执行git gc命令后)地将这些对象打包成一个称为“包文件(packfile)”的二进制文件(存储在.git/objects/pack),以节省空间和提高效率。...Git 引用引用类似于指针,除了 HEAD 存储在.git/HEAD 以外,其他指针存储在.git/refs 目录下分支HEAD:一种特殊的指针,用于指向目前所在的 commit,.git/HEAD 文件里存储的就是引用的

    6810

    使用作业自动清理数据库日志文件

    在上一篇文章中介绍了如何删除数据库日志文件,但是想想还是不是不方便需要手工操作,于是想结合作业实现自动清理日志文件,在清理日志文件时我加上了条件,当磁盘控空间不足多少M才会清理,下面介绍如何实现该功能...没有阅读上一篇文章的,可以通过传送门阅读(删除数据库日志文件的方法)!...阅读目录 SQL查询磁盘空间大小 存储过程添加作业 示例下载 回到顶部 SQL查询磁盘空间大小    采用内置的存储过程,即可查看各个磁盘可用空间 exec master..xp_fixeddrives...= 'day', -- varchar(6) @fsinterval = 2, -- int @time = 235959, -- int @description = '自动清理当前数据库日志文件...' -- varchar(1000) 回到顶部 示例下载 示例sql    相关阅读:附加没有日志文件的数据库方法 删除数据库日志文件的方法

    95760

    Git连接远程仓库显示找不到存储库

    今天在公司上传部分代码到GitHub远程库,结果无法push,Git报错信息显示找不到存储库 $ git push origin master ERROR: Repository not found....报错信息显示无法从远程库读取 需要保证我有正确的访问权限 非常无语……………这个问题折腾了差不多半个小时,最后决定还是直接clone仓库吧,然后发现我前几天很闲的时候改了GitHub用户名…….这样我本地的用户名和...GitHub上的用户名是对不上的,所以我必须要修改本地的用户名 忠告:建议大家在GitHub起名的时候好好取名,不然修改名称以后真的是搞死人 在clone的时候输入账户密码即可(公共库不需要,私有库需要...**************** ******忽略部分内容******* ************************* core.autocrlf=false 修改用户名和GitHub一样 $ git...config --global user.name 'mobaijun' 查看是否修改成功 $ git config --global user.name mobaijun 重新push $ git

    3.8K10

    如何使用RepoReaper扫描指定域暴露的.git存储库

    RepoReaper是一款功能强大的自动化工具,该工具旨在帮助广大研究人员以自动化的形式识别目标域或子域中暴露的.git存储库,以防止数据泄露的发生。...通过用户提供的带有目标域名的文本文件,RepoReaper能够系统地检查每个域是否包含了可公开访问的.git文件。...功能介绍 当前版本的RepoReaper可以提供下列功能: 1、自动化扫描目标域或子域以识别暴露的.git存储库; 2、简化了敏感数据泄露的检测任务; 3、提供了用户友好的操作界面; 4、适用于安全审计和漏洞奖励任务...接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地: git clone https://github.com/YourUsername/RepoReaper.git 然后切换到项目目录中.../RepoReaper.py 或 python3 RepoReaper.py 执行后,RepoReaper便会要求输入待扫描文件路径的地址,下面给出的是样例文件格式: example.com subdomain.example.com

    11510

    【Git】Git 版本管理 ( 补充提交版本 git commit --amend | 版本库提取文件 git checkout -- filename | 删除文件 git rm )

    文章目录 一、补充提交版本 git commit --amend 二、版本库提取文件 git checkout -- filename 三、删除文件 git rm 一、补充提交版本 git commit...add file2.txt 提交文件到暂存区 , 然后执行 git commit --amend 命令 , 补充提交到版本库 , 期间会弹出 vim 编辑器 , 编辑要提交的说明 , 再次使用...git status 查询 , 发现提交成功 ; 二、版本库提取文件 git checkout – filename ---- git checkout -- filename 命令的作用是 , 从版本库中取出...filename 对应的文件 , 然后使用该文件覆盖当前的 filename 文件 ; 将 file1.txt 文件进行修改 , 第二行添加一排感叹号 , 但是不添加暂存区 , 也不提交到版本库 ;...执行 git checkout -- file1.txt 命令 , 会从版本库中取出最近一次提交的 file1.txt 文件 , 并使用该文件覆盖当前目录的 file1.txt 文件 ; 注意

    57030

    存储的瓶颈--大型网站技术演进思考

    二,什么网站是大型网站 首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标,懂点行的人也许会认为是网站在单位时间里的并发量的大小来作为指标...,如果按这些标准那么像hao123这样的网站就是大型网站了,如下图所示: ?...我觉得大型网站是技术和业务的结合,一个满足某些用户需求的网站只要技术和业务二者有一方难度很大,必然会让企业投入更多的、更优秀的人力成本实现它,那么这样的网站就是所谓的大型网站了。...排除一些不可控的因素,网站在高并发下挂掉的原因90%都是因为数据库不堪重负所致,而应用的瓶颈往往只有在解决了存储瓶颈后才会暴露,那么我们要升级网站能力的第一步工作就是提升数据库的承载能力,对于读远大于写的网站我们采取的方式就是将数据库从读写这个角度拆分...解决方案就是我们经常使用的百度,谷歌哪里得来,对于海量数据的读我们可以采用搜索技术,我们可以将数据库的数据导出到文件里,对文件建立索引,使用倒排索引技术来检索信息,我们看到了百度,谷歌有整个互联网的信息我们任然能很快的检索到数据

    94980
    领券