- git에 저장되는 객체를 수정하지 않고 노트를 추가하는 기능
- 보통 커밋에 별도의 메타데이터를 추가하는 용도로 사용
- 커밋 이후에도 나중에 추가/수정/삭제가 가능하기 때문
- 기본으로 refs/notes/commits 에 별도로 저장됨
- git log로 보면 Notes: 항목에 같이 보여짐
- 실제 사용 사례
- 'git 프로젝트'에서는 커밋을 관련 메일링 쓰레드와 연결하는데 사용됨
- 커밋/브랜치에 시간 트래킹
- 코드리뷰 및 테스팅 관련 정보를 기록
- Gerrit용 reviewnotes 플러그인을 이용하면 코드 리뷰를 git note에 기록 가능
- 구글의 한 개발자는 git-appraise 라는 git note 기반 풀 코드 리뷰 시스템을 만들기도 했음
- "완전 분산 코드 리뷰" 라고 이름 붙임
- 로컬 머신에서 "리뷰 요청/커멘트/리뷰 및 머지" 가능함
- 웹 인터페이스도 가지고 있음
- 하지만 아무도 git notes를 사용하지 않음
- 현재로서는 git notes는 사용하기 어려움
- GitHub은 2014년 이후로 Notes를 표시하는 것을 중단
- 커밋에 대해서는 gitconfig를 이용해서 note를 좀 더 쉽게 보고 추가 가능하지만, blob/tree에 대해서는 쉽지 않음
Forge independence (위조된 독립)
- git은 분산 코드 리뷰 시스템임. 하지만, git repo의 많은 가치 들이 GitHub같은 금고에 잠겨져 있음
- git notes는 대안으로 가는 길임
- git은 코드 조각의 히스토리를 배포함. git notes는 전체 프로젝트의 히스토리를 배포 가능하게 할 수 있음