-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclean_01.sh
More file actions
executable file
·30 lines (24 loc) · 1.02 KB
/
Copy pathclean_01.sh
File metadata and controls
executable file
·30 lines (24 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
# Git 히스토리에서 대용량 파일 찾기 및 제거
set -euo pipefail
PROJECT_ROOT="/home/wsm/workspace/hit-archlens-project"
cd "$PROJECT_ROOT"
echo "🔍 Git 히스토리에서 큰 파일 찾기..."
echo ""
# 1. 큰 파일 찾기 (상위 20개)
echo "📊 히스토리에서 가장 큰 파일 Top 20:"
git rev-list --objects --all | \
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | \
awk '/^blob/ {print substr($0,6)}' | \
sort --numeric-sort --key=2 --reverse | \
head -20 | \
awk '{printf "%10s %s\n", $1, $2}'
echo ""
echo "📦 큰 파일들의 총 크기 계산 중..."
LARGE_FILES=$(git rev-list --objects --all | \
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | \
awk '/^blob/ {print substr($0,6)}' | \
sort --numeric-sort --key=2 --reverse | \
head -20 | \
awk '{sum += $1} END {print sum}')
echo "상위 20개 파일 총 크기: $(numfmt --to=iec-i --suffix=B $LARGE_FILES 2>/dev/null || echo "${LARGE_FILES} bytes")"