首页 > 其他分享 >.git/objects/pack下pack文件很大,但是目前仓库并没有大文件

.git/objects/pack下pack文件很大,但是目前仓库并没有大文件

时间:2025-01-12 17:55:18浏览次数:1  
标签:文件 git -- lines echo objects pack

git秉承“代码安全为主”,每一次commit都会硬性做备份。

之前我使用自己的脚本
#!/bin/bash
#set -x 

usage() {
echo "Usage: $0 [path] [lines]"
echo "  path: local git repository"
echo "  lines: how much files to show&remove, default 100"
echo
echo "eg1: $0 ~/local_repo 200"
echo "eg2: $0 ."
}
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
    usage
    exit 0
fi

# 原教程: https://www.jianshu.com/p/fe3023bdc825
cd $1
head_lines=${2:-100}

list(){
# Shows you the largest objects in your repo's pack file. Written for osx.
# @see http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/
# @author Antony Stubbs

# set the internal field spereator to line break, so that we can iterate easily over the verify-pack output
IFS=$'\n';

# list all objects including their size, sort by size, take top 10
objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head -n $head_lines`

output="NO.,raw,pack,SHA,path"
i=0
for y in $objects
do
    i=$((i+1))
    # extract the size in bytes
    size=$((`echo $y | cut -f 5 -d ' '`/1024))
    # extract the compressed size in bytes
    compressedSize=$((`echo $y | cut -f 6 -d ' '`/1024))
    # extract the SHA
    sha=`echo $y | cut -f 1 -d ' '`
    # find the objects location in the repository tree
    fileLoc=`git rev-list --all --objects | grep $sha`
    #lineBreak=`echo -e "\n"`
    output="${output}\n${i},${size},${compressedSize},${fileLoc}"
done

echo -e $output | column -t -s ', '
}
list_hint() {
echo "Remember the first number of files to be deleted, then press q to exit.
请记住要删除前多少个文件,然后按q退出。

All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file.
所有大小均以kB为单位。“pack”列:pack内,raw文件压缩后的大小。"
}

rm_local() {
git filter-branch --force --index-filter "git rm -rf --cached --ignore-unmatch $*" --prune-empty --tag-name-filter cat -- --all
}

rm_all() {
rm_local "${files[*]}"
set -x
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
set +x

cmd_danger="pushd ${1} && \
git push origin $(git rev-parse --abbrev-ref HEAD) --force && \
git remote prune origin && \
popd"

echo "$cmd_danger" | xclip -selection clipboard && copied_en="

标签:文件,git,--,lines,echo,objects,pack
From: https://www.cnblogs.com/nolca/p/18667113

相关文章

  • 【自用】UEL-inp文件构成
    1.文件头部(HeaderSection):包含有关仿真的一般信息,例如作业名称(JobName)、模型名称(ModelName)以及生成该文件的Abaqus版本。示例: *Heading**Jobname:Job-1Modelname:Model-1**Generatedby:Abaqus/CAE6.14-1 2.预打印选项(PreprintOptions):指定在前......
  • VS Code+Gitee+Picgo实现图床
    在VSCode中结合Gitee图床和PicGo插件,解决Markdown文档插入图片的问题。步骤一、在VSCode中安装Picgo插件步骤二、在系统中安装Picgo软件进入PicGo官网:https://molunerfinn.com/PicGo/。下载最新版本.exe文件。安装完成后,打开PicGo,点击插件设置,搜索gitee,安装gitee-uploader......
  • wpf 打包成单文件
     FolderProfile.pubxml<Project><PropertyGroup><TargetFramework>net6.0-windows7.0</TargetFramework><PublishSingleFile>true</PublishSingleFile> <Configuration>Release</Configuration> <I......
  • git worktree同一个仓库多个分支并行开发和管理
    介绍GitWorktree是Git提供的一个功能,允许你在同一个仓库中同时工作在多个工作目录中,每个目录都有自己的工作树和索引。这对于同时处理多个分支或版本非常有用。常用命令命令解释gitworktree--help查看命令帮助gitworktreelist[-v|--porcelain[-z]]列......
  • C语言文件操作
    本文重点:什么是文件文件名文件类型文件缓冲区文件指针文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件包括源程序文件(后缀为.c),目标文件(w......
  • 【DMSQL系列】 达梦数据库写文件的方式探索
    前沿这篇文章整体算是......
  • 了解Webpack:现代前端开发的静态模块打包器
            在现代前端开发中,Webpack已成为不可或缺的工具之一。作为一个静态模块打包器(modulebundler),Webpack通过分析和处理项目中的资源依赖关系,将它们打包成一个或多个bundle(捆绑包),这些bundle可以在浏览器中加载和执行。本文将详细介绍Webpack的概念、核心功能、安装......
  • 通过宝塔面板删除的文件或数据库还能恢复吗?
    在使用宝塔面板管理服务器时,难免会遇到误删文件或数据库的情况。幸运的是,宝塔面板提供了类似于Windows系统回收站的功能,可以帮助用户恢复误删的数据。以下是详细的恢复步骤和注意事项:文件恢复操作步骤说明确认回收站状态宝塔面板默认开启了回收站功能。如果之前关闭了......
  • FTP 畸形文件无法删除的解决办法
    在使用FTP工具进行文件管理时,有时会遇到无法删除某些文件或文件夹的情况。这些文件可能是由于权限问题、文件锁定或文件名包含特殊字符等原因导致的。特别是当网站被入侵或文件名包含点号(.)等特殊字符时,FTP客户端可能无法正常删除这些文件。本文将详细介绍如何解决这些问题。常......
  • 如何定期清理IIS的错误记录日志文件以防止磁盘空间不足?
    随着IIS组件的长期使用,错误日志文件会逐渐增大,可能导致磁盘空间被占满,进而影响服务器性能和网站正常运行。因此,定期清理IIS的错误记录日志文件非常重要。以下是详细的清理步骤和注意事项,帮助您有效管理日志文件,确保系统稳定运行:了解日志文件位置:IIS的错误日志文件通常存储在以......