목록 보기
Git Internal API를 활용한 .git 탐험
데브옵스

Git Internal API를 활용한 .git 탐험

화해
화해
2023년 3월 14일

두줄요약

Git의 blob·tree·refs·HEAD를 직접 구성하며 내부 객체와 커밋 흐름을 설명했습니다.\n불필요한 객체를 줄이고 clone 옵션을 조합해 빌드 환경의 용량을 최적화했습니다.

구조와 흐름

  • Porcelain 명령어와 내부 Plumbing 시스템의 구분
  • blob·tree 객체, refs 포인터, 현재 브랜치를 가리키는 HEAD 구성
  • index(stage) 등록, working tree 복원, commit 생성, 브랜치 ref 연결 과정

선택 이유

  • Git 객체 저장 규약을 직접 구성하며 명령어 추상화 아래의 동작 원리 확인
  • refs가 커밋을 참조해야 git log와 브랜치 이력 인식 가능

성능/운영 포인트

  • git clone과 sparse checkout에서 working directory와 달리 모든 브랜치·이전 커밋 객체를 내려받는 특성
  • 빌드 머신에서 불필요한 blob·tree·가비지 커밋 제거를 통한 clone 비용 절감
  • --single-branch --depth 1 --no-tag 필터와 필요한 refs·objects 분리 활용

적용해볼 점

  • Git 내부 객체 구조 기반의 모노레포 clone 용량 최적화 도구 설계
  • checkout·reset·rebase 동작 이해를 위한 .git 객체와 참조 관계 점검

다음 읽기

#모노레포 주제를 이어서 읽기

모노레포 적용부터 yarn berry까지

멀티레포의 중복과 표준화 문제를 해결하기 위해 Yarn Berry 기반 모노레포를 설계했습니다.\nPnP 캐싱의 한계를 분석하고, 필요한 코드만 배포하는 yarn release 플러그인을 구현했습니다.

화해
화해
프론트엔드

댓글 0개

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

댓글을 불러오는 중...