🤖

본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.

⚠️

본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.

이미지 로딩 중...

Git 성능 최적화 완벽 가이드 - 슬라이드 1/11
A

AI Generated

2025. 11. 3. · 24 Views

Git 성능 최적화 완벽 가이드

Git 저장소의 성능을 극대적으로 향상시키는 실전 기법을 다룹니다. 대용량 프로젝트에서 Git 속도를 개선하고, 효율적인 저장소 관리 방법을 학습합니다.


카테고리:JavaScript
언어:JavaScript
메인 태그:#Git
서브 태그:
#Performance#Repository#Optimization#Commands

들어가며

이 글에서는 Git 성능 최적화 완벽 가이드에 대해 상세히 알아보겠습니다. 총 10가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.

목차

  1. Git_Shallow_Clone
  2. Git_Sparse_Checkout
  3. Git_GC_최적화
  4. Git_FSMonitor
  5. Git_Fetch_병렬화
  6. Git_Commit_Graph
  7. Git_Index_버전_업그레이드
  8. Git_Pack_최적화
  9. Git_Filter_Repo_대용량_파일_제거
  10. Git_Partial_Clone

1. Git Shallow Clone

개요

저장소의 전체 히스토리 대신 최근 커밋만 가져와 클론 속도를 대폭 향상시킵니다.

코드 예제

# 최근 1개 커밋만 가져오기
git clone --depth 1 https://github.com/user/repo.git

# 특정 깊이만큼 가져오기
git clone --depth 10 https://github.com/user/repo.git

설명

--depth 옵션으로 히스토리 깊이를 제한하여 클론 시간과 디스크 공간을 크게 절약할 수 있습니다.


2. Git Sparse Checkout

개요

대용량 저장소에서 필요한 폴더만 선택적으로 체크아웃하여 작업 속도를 높입니다.

코드 예제

git clone --filter=blob:none --sparse https://github.com/user/repo.git
cd repo
git sparse-checkout init --cone
git sparse-checkout set src/components tests

설명

sparse-checkout으로 필요한 디렉토리만 다운로드하여 대용량 모노레포에서도 빠르게 작업할 수 있습니다.


3. Git GC 최적화

개요

Git의 가비지 컬렉션을 실행하여 불필요한 객체를 제거하고 저장소를 압축합니다.

코드 예제

# 공격적인 가비지 컬렉션
git gc --aggressive --prune=now

# 자동 최적화
git config --global gc.auto 256

설명

gc 명령어로 저장소 크기를 줄이고 Git 명령어 실행 속도를 개선할 수 있습니다.


4. Git FSMonitor

개요

파일 시스템 모니터를 활성화하여 대규모 저장소에서 git status 속도를 획기적으로 개선합니다.

코드 예제

# FSMonitor 활성화 (Watchman 필요)
git config core.fsmonitor true
git config core.untrackedCache true

# 성능 확인
git status

설명

FSMonitor가 파일 변경을 추적하여 대용량 저장소에서 git status가 수십 배 빨라집니다.


5. Git Fetch 병렬화

개요

여러 리모트에서 동시에 fetch하여 네트워크 작업 시간을 단축합니다.

코드 예제

# 병렬 fetch 설정
git config --global fetch.parallel 8

# 모든 리모트에서 동시 fetch
git fetch --all --jobs=8

설명

--jobs 옵션으로 여러 리모트를 병렬로 fetch하여 시간을 크게 절약할 수 있습니다.


6. Git Commit Graph

개요

커밋 그래프 파일을 생성하여 git log, git merge-base 등의 명령어 속도를 향상시킵니다.

코드 예제

# 커밋 그래프 생성
git commit-graph write --reachable --changed-paths

# 자동 업데이트 설정
git config core.commitGraph true
git config gc.writeCommitGraph true

설명

커밋 그래프는 Git 히스토리 탐색 속도를 10배 이상 빠르게 만들어줍니다.


7. Git Index 버전 업그레이드

개요

Git 인덱스를 최신 버전으로 업그레이드하여 파일 추적 성능을 개선합니다.

코드 예제

# 인덱스 버전 4로 업그레이드
git update-index --index-version 4

# 설정으로 적용
git config --global index.version 4

설명

인덱스 v4는 경로 압축을 사용하여 대규모 저장소에서 성능이 크게 향상됩니다.


8. Git Pack 최적화

개요

객체 팩 파일을 재구성하여 저장 공간을 최소화하고 접근 속도를 높입니다.

코드 예제

# 팩 파일 최적화
git repack -a -d -f --depth=250 --window=250

# 비트맵 인덱스 생성
git repack -A -d -b

설명

repack으로 객체를 효율적으로 재배치하여 저장소 크기와 속도를 모두 최적화합니다.


9. Git Filter Repo 대용량 파일 제거

개요

실수로 커밋된 대용량 파일을 히스토리에서 완전히 제거하여 저장소를 경량화합니다.

코드 예제

# git-filter-repo 설치 후
git filter-repo --strip-blobs-bigger-than 10M

# 특정 파일 제거
git filter-repo --path large-file.zip --invert-paths

설명

filter-repo는 BFG보다 빠르고 안전하게 히스토리에서 불필요한 파일을 제거합니다.


10. Git Partial Clone

개요

필요한 객체만 on-demand로 다운로드하는 부분 클론으로 초기 클론 시간을 단축합니다.

코드 예제

# blob 객체 없이 클론
git clone --filter=blob:none https://github.com/user/repo.git

# 대용량 blob만 제외
git clone --filter=blob:limit=1m https://github.com/user/repo.git

설명

partial clone은 필요한 파일만 lazy-load하여 대규모 저장소를 즉시 사용할 수 있게 합니다.


마치며

이번 글에서는 Git 성능 최적화 완벽 가이드에 대해 알아보았습니다. 총 10가지 개념을 다루었으며, 각각의 사용법과 예제를 살펴보았습니다.

관련 태그

#Git #Performance #Repository #Optimization #Commands

#Git#Performance#Repository#Optimization#Commands#JavaScript

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.