글 작성자: 만렙개발자

 

Git 2.24가 2019년 11월 4일(한국 시간으로 3일?) 릴리즈 되었습니다! 주요 feature에 대해서 소개하도록 하겠습니다~

1. 그래프 커밋을 기본값으로!

  • 그래프 커밋은 2.19 버전에 소개된 것으로 꾸준한 관심을 받고 있습니다. 그래프 커밋은 커밋을 로딩하는 성능을 크게 향상시킬 수 있습니다. 이제 이 그래프커밋을 기본값으로 설정합니다! git gc를 실행할 때, 향상됨을 느낄 수 있습니다 :)

2. pre-merge-commit 후크

  • merge를 하기 전에 어떠한 작업을 수행할 수 있는 방법입니다.
  • git-merge는 자동 merge 커밋을 수행할 때, pre-commit 후크를 따르지 않으며, 호환성을 위해 유지됩니다. 비자동 merge 커밋(혹은 자동이 아닌 다른 커밋)에 대해서는 pre-commit이 호출되었는데, 이것들 처럼 자동 merge 커밋이 필요한 pre-merge-commit 후크가 소개되었습니다.
  • 이 후크는 git-merge에 의해 호출됩니다. 매개변수를 취하지 않으며, 커밋 로그 메세지를 얻기 전에 성공적으로 수행된 병합 다음에 수행됩니다.

3. 새로운! 기록(history) 재작성(rewriting) 툴

  • 리포지토리의 기록에서 파일을 정리(공개되어선 안되는 파일을 지우는 경우가 많죠)할 때 많이 쓰입니다. git filter-branch를 살펴보시면 됩니다 :) 그런데, git filter-branch는 사용하기가 느리고, 가끔 리포지토리에 의도하지 않은 변화(데이터 손실 등)가 일어날 수 있습니다.
  • 그래서 이번에 독립적인 새로운 툴을 공개하였습니다. git filter-repo는 모든 커밋을 순서대로 다시 처리하는 대신에 효율적으로 실행 기록을 스트림으로 표시하여 훨씬 빠르게 실행됩니다.
  • 주요기능
    • git filter-repo --analyze
      • 리포지토리의 크기를 프로파일링하는 메트릭
      • 객체 수, 가장 큰 파일 및 디렉토리, 가장 많은 공간을 차지하는 확장명 등
      • 유사한 툴: git sizer
    • 확장가능성
      • python에서 콜백을 지정하는 유연한 인터페이스를 제공

4. --set-upstream for git fetch

- `--set-upstream` 옵션이 추가되었습니다! 이 기능은 푸시하려는 private 포크에서 처음으로 클론한 사람들을 위한 것입니다. `git remote add`를 통해 true 업스트림을 추가하고, `git fetch`를 통해 이를 지원합니다.

ref: [ANNOUNCE] Git v2.24.0
ref: 2