Поиск самых больших файлов в истории
Далее найденные файлы нужно удалить из истории навсегда командой
git filter-repo --path "<file_path>" --invert-paths --force
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 /path/to/git/repo [top_n]"
exit 1
fi
REPO_PATH="$1"
TOP=${2:-20}
if [ ! -d "$REPO_PATH" ]; then
echo "Error: Directory does not exist"
exit 1
fi
cd "$REPO_PATH" || exit 1
if [ ! -d ".git" ]; then
echo "Error: Not a git repository"
exit 1
fi
echo "Searching largest files in: $REPO_PATH"
echo
git rev-list --objects --all |
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
grep '^blob' |
sort -k3 -n |
tail -n "$TOP" |
awk '{
size_mb = $3 / 1024 / 1024;
printf "%6.2f MB %s\n", size_mb, $4
}'