AI Briefing

Git 2.56 공개, 안전한 충돌 스테이징과 병합 기준점 계산 속도 대폭 향상

·2026.09.29 02:23

핵심 내용

Git 2.56이 안전한 충돌 스테이징과 병합 기준점 계산 최적화를 통해 대규모 저장소 성능을 개선했다.

자세히 보기

Git 프로젝트가 Git 2.56.0을 공개했다. 이번 릴리스에는 39명의 신규 기여자를 포함해 104명 이상의 개발자가 참여했으며, 병합 충돌 해결 시 안전성 강화, 공통 조상 계산 속도 향상, 저장소 유지보수 도구 개선에 초점을 맞췄다.

안전한 충돌 해결

Git 2.56은 인덱스에서 현재 병합되지 않은(unmerged) 경로만 스테이징하는 새로운 모드 git add --resolved를 도입했다. 모든 수정된 추적 파일을 스테이징하는 git add -u와 달리, 이 명령어는 병합되지 않은 일반 파일에 남아 있는 충돌 마커를 먼저 스캔한다. 마커가 발견되면 Git은 해당 경로를 보고하고 인덱스를 변경하지 않아, 미해결 충돌이나 관련 없는 로컬 편집이 실수로 스테이징되는 것을 방지한다. 이 모드는 -u 또는 -A와 함께 사용할 수 없으며, 충돌한 적 없는 파일은 무시한다.

병합 기준점 계산 속도 향상

이번 릴리스는 병합과 풀 리퀘스트 diff에 중요한 공통 조상 찾기 알고리즘을 최적화했다. Git은 이제 각 쪽이 독점적으로 칠한(painted) 대기 중인 커밋 수를 추적하여, 한 쪽이 소진되면 탐색을 중단한다. 이 변경은 대형 저장소에서 상당한 성능 향상을 가져온다:

  • 실제 모노레포 사례에서 탐색 시간이 0.68초에서 0.01초로 단축됐다.
  • 두 개의 대형 모노레포에 대한 프로덕션 평가에서 하나는 약 70배, 다른 하나는 평균 20배 빨라졌다.
  • Linux 커널의 경우 git merge-base --all v4.8 v4.9 연산이 167,441단계와 0.29초에서 3,887단계와 0.01초로 개선됐다.

경로 탐색 재패킹 개선

Git 2.56은 **경로 탐색 재패킹(path-walk repacking)**에 대한 기존 제한을 제거해 대형 저장소 호스트에서 더 유용하게 쓸 수 있게 했다. 경로 탐색 재패킹은 객체를 트리 위치에 따라 그룹화하여 더 나은 델타 관계를 찾아 팩 파일 크기를 약 71% 줄일 수 있다(예: Fluent UI 벤치마크에서 558.5 MB에서 164.4 MB로 감소). 이번 업데이트로 경로 탐색 재패킹은 다음을 수행할 수 있다:

  • 빠른 객체 열거를 위해 새로운 **도달성 비트맵(reachability bitmaps)**을 위한 커밋 선택.
  • ref 그룹 간 격리 규칙을 보존하는 델타 섬(delta islands) 장부 관리.

이러한 변경은 경로 탐색을 기본값으로 활성화하지는 않지만, 서비스 성능을 희생하지 않고 저장 공간 절약을 원하는 호스트의 주요 도입 장벽을 제거한다.

추가 기능 및 수정 사항

  • git history drop: 선택한 커밋을 제거하고 후손들을 재생하는 실험적 명령어로, 충돌이나 로컬 변경 사항이 덮어써질 경우 중단한다.
  • git refs toolbox: create, update, delete, rename 등 저수준 참조 관리 명령을 단일 인터페이스로 통합했다.
  • 대량 브랜치 정리: git branch --delete-merged가 이제 glob 패턴(예: origin/*)과 --dry-run을 지원하여 병합된 로컬 토픽 브랜치를 안전하게 식별하고 삭제한다.
  • git bisect --reset-when-found: 이분법 탐색 완료 후 작업 트리를 원래 상태나 찾은 커밋으로 자동으로 리셋한다.
  • 부분 클론 정리: git repack이 --drop-filtered를 사용해 로컬에서 크고 복원 가능한 blob을 폐기할 수 있으며, 필요 시 promisor 원격 저장소에서 다시 가져온다.
  • 성능 수정: reftable 쓰기 및 경로 제한 diff에서 2차 스캔을 제거해 대형 저장소(예: Chromium 체크아웃)에서 연산 시간을 몇 분에서 몇 초로 단축했다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.