2개월간의 집중적인 작업 끝에 개발 커뮤니티는 Git은 Git 버전 2.51을 소개합니다. 업데이트 여기에는 506명의 개발자가 참여한 91개의 변경 사항이 포함됩니다. 그 중 21명이 처음으로 기여했습니다.
이번 릴리스에서는 git-push와 git-fetch에 대한 성능 최적화를 비롯하여 성능을 개선하고 저장소 관리를 단순화하도록 설계된 개선 사항을 도입했으며, 새로운 3.x 브랜치에 대한 여러 가지 변경 사항도 포함됩니다.
Git 2.51 주요 새로운 기능
Git 2.51의 주요 기능 중 하나는 다음과 같습니다. git push 및 git fetch 명령 최적화 많은 수의 참조가 있는 저장소에서. 이 개선의 핵심은 일괄 업데이트에 있습니다.개별적으로 처리하는 것이 아니라 단일 거래로 여러 링크를 처리하는 방식입니다.
이 최적화 덕분에 이제 reftable 백엔드가 기존 파일 백엔드보다 성능이 뛰어납니다.최대 10개의 참조가 포함된 저장소를 사용한 테스트에서 reftable의 경우 git fetch 성능이 000배, files의 경우 22배 증가했고, git push는 각각 1.25배와 18배 향상되었습니다.
또 다른 중요한 혁신은 i입니다.소위 '크러프트 패키지'의 도입 지점이나 태그에 연결되지 않은 접근 불가능한 객체를 저장하도록 설계되었습니다. 이전에는 분산되어 있던 이러한 객체는 이제 별도의 포장으로 관리할 수 있습니다.이를 통해 다중 패키지 인덱스(MIDX)의 제어가 쉬워지고 크기가 줄어듭니다.
와 새로운 repack.MIDXMustContainCruft 설정을 사용하면 Git에서 이러한 개체를 기본 인덱스에 포함하지 않습니다.GitHub에서 테스트한 결과, 이 구성을 사용하면 인덱스 크기가 38% 줄어들고, 쓰기 속도가 35% 빨라지고, 읽기 속도가 5% 향상되었습니다.
객체 패키징에 대한 새로운 접근 방식
El git pack-objects 명령에는 –path-walk 옵션이 통합되어 있습니다. 혁신적인 방법을 소개합니다 패키징 파일을 재구성합니다. Git은 해시를 기준으로 객체를 처리하는 대신, 이제 파일 경로를 기준으로 객체를 반복하여 같은 위치를 공유하는 객체들을 함께 묶을 수 있습니다. 이 방식을 사용하면 객체를 미리 정렬할 필요가 없어지고 더 작고 효율적인 패킹 파일을 만들 수 있습니다.
이 버전도 Git Stash로 생성된 작업 트리 상태와 인덱스를 교환하기 위한 새로운 형식이 표준화되었습니다.이제 브랜치나 태그처럼 스태시를 내보내고 가져올 수 있어 상태를 한 시스템에서 다른 시스템으로 쉽게 옮길 수 있습니다.
예를 들면 다음과 같습니다
git stash export --to-ref refs/stashes/mi-stash git push origin refs/stashes/mi-stash git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/mi-stash
클래식 명령 개선
몇몇의 Git 명령어가 관련 업데이트를 받았습니다.:
- git cat-file은 이제 누락된 객체와 하위 모듈을 보고하고 단순히 "누락됨"이라고 표시하는 대신 식별자를 표시합니다.
- git log는 Bloom 필터 최적화의 혜택을 받아 여러 파일 경로가 있는 경우 검색 속도가 빨라집니다.
- 2019년부터 실험적 단계로 간주되었던 git switch와 git restore 명령이 마침내 git checkout의 현대적 대안으로 안정화되었습니다.
- git log –raw와 동일한 git whatchanged 명령은 더 이상 사용되지 않으며 Git 3.0에서 제거될 예정입니다.
- git for-each-ref는 –start-after 옵션을 받으며, 이 옵션은 –count와 함께 사용하면 출력의 페이지 구분이 가능합니다.
- git merge와 git pull에 이제 --compact-summary 옵션이 포함되어 더 간결한 요약 형식을 제공합니다.
C99 지원 및 새로운 기여 규칙
Git은 C9 표준의 특성에 맞춰 코드를 계속 조정하고 있습니다.9. 2021년부터 호환 가능한 컴파일러가 요구되지만, 개발자들은 이를 부분적으로만 구현하는 컴파일러와의 호환성을 유지하기 위해 신중하게 움직이고 있습니다.
또한, 기여 정책에 중요한 변경 사항이 도입되었습니다. 이제 패치를 가명으로 제출할 수 있습니다., Linux 커널의 규칙에 맞춰 결정되었으며 기여자에게 더 큰 유연성을 제공하도록 설계되었습니다.
Git 3.0을 기대하며
El 개발팀은 또한 Git 3.0 로드맵을 업데이트했습니다.두 가지 주요 변경 사항이 눈에 띕니다. 객체 식별자로 SHA-256을 기본 사용하고, 브랜치 및 태그 참조 저장을 위해 참조 가능한 형식을 채택한 것입니다. 이러한 개선 사항은 점점 더 크고 복잡해지는 저장소의 보안과 효율성을 향상시키는 것을 목표로 합니다.