BFG Repo-Cleaner

GIt 저장소에서 불필요하거나 민감한 데이터를 빠르게 제거하는데 사용하기 좋은 도구.

BFG Repo-Cleaner이란.

Git 저장소에서 불필요하거나 민감한 데이터를 빠르게 제거하는 데 사용되는 도구입니다.

대형 파일, 암호, 토큰, API 키와 같은 민감한 데이터가 과거의 커밋에 포함되어 있을 때, 이를 제거하기 위해 BFG Repo-Cleaner를 사용할 수 있습니다.

BFG는 git filter-branch와 유사한 작업을 수행하지만, 특히 대형 저장소에서는 훨씬 빠르게 동작합니다.

주요 특징은 다음과 같습니다:

  • 속도: BFG는 git-filter-branch보다 10~720배 빠릅니다.

  • 간단함: 특정 작업에 중점을 둬서 사용하기 쉽습니다.

BFG Repo-Cleaner 설치하기

$ sudo apt-get update 또는 apu ( zsh alias )
$ sudo apt-get install -y bfg 또는 api bfg 

BFG Repo-Cleaner 사용법

저장소 클론:

# bfg 명령어로 깃허브 리포지토리 복사합니다. 
$ bfg --clone https://github.com/example/repo.git

# 클론이 완료되면 해당 리포지토리 명으로 폴더가 생성됩니다. 
# ex) rego.git

큰 파일 찾기 (예: 10MB 이상):

# 리포지토리에서 큰 파일을 찾습니다. 
# ex) bfg --find-big-files 10M rego.git
$ bfg --find-big-filess 10M <PREPO_ATH>

큰 파일 삭제 (예: 100MB 이상):

# 리포지토리에서 큰 파일을 삭제합니다.
# ex) bfg --remove-big-files 10M rego.git

bfg --remove-big-files 100M <PREPO_ATH>

변경 내용 원격 저장소에 푸시:

# 정리한 리포지토리를 원격 저장소에 푸시합니다. 
# ex) bfg --push rego.git

bfg --push <PREPO_ATH>

모든 작업을 한 번에 수행:

./bfg --clone https://github.com/example/repo.git --remove-big-files 100 --push