AI가 쓴 코드를 한 줄 단위로 어떤 에이전트·모델·세션이 만들었는지 Git에 기록하는 오픈소스 Git 확장이다. 리뷰나 감사 때 "이 줄은 누가 썼나"를 확인하거나, 팀의 AI 코드 비중을 재고 싶을 때 쓴다.
| 방식 | 기록 단위 | AI 코드 판별 |
|---|---|---|
커밋 트레일러 (Co-Authored-By) | 커밋 전체 | 사람·에이전트가 직접 적음 |
| 탐지형 도구 (해시·유사도 비교) | 스니펫 | 휴리스틱으로 추정 |
| Git AI | 한 줄 | 에이전트가 직접 보고 |
Rust로 만든 단일 바이너리이고, Git을 감싸거나 대체하지 않고 확장하는 방식이다. 기록은 Git의 기본 객체인 Git Notes에 저장돼 외부 DB나 서비스 없이 저장소와 함께 움직인다.
코딩 에이전트는 파일을 고치거나 bash 스크립트로 코드를 바꿀 때마다 git ai checkpoint를 호출한다. 커밋 시점에 Git AI가 이 체크포인트를 모아 각 줄을 에이전트·모델·세션과 연결해 저장한다. AI나 파일 감시로 "AI 코드 같다"고 추정하지 않으므로, 결과가 에이전트가 실제로 쓴 줄과 일치한다.
줄 단위 기록의 어려운 점은 히스토리를 고쳐 쓰면 흔적이 사라진다는 것이다. Git AI는 rebase, squash, merge, reset, stash/pop, cherry-pick 때 기록을 옮기고 합쳐 준다. Git 훅을 쓰지 않아 저장소마다 설정할 필요가 없고 Git 속도도 그대로다. 오프라인에서 로그인 없이 동작한다.
설치 스크립트로 확장을 깔고 지원되는 에이전트로 평소처럼 작업하면 된다. 확인할 때는 아래 명령을 쓴다.
| 명령 | 보이는 것 |
|---|---|
git ai blame | 줄마다 AI가 썼는지, 어떤 에이전트·모델인지 |
git ai stats | 저장소의 AI 코드 통계 |
git log --show-notes="ai" | 커밋에 붙은 원본 기록 |
지원 에이전트가 체크포인트를 호출해야 기록되므로, 쓰는 도구가 지원 목록에 있는지 먼저 확인해야 한다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 코드 리뷰 | PR에서 AI가 쓴 줄만 골라 더 꼼꼼히 본다 |
| 감사·책임 추적 | 문제가 된 줄이 어느 모델·세션에서 나왔는지 거슬러 올라간다 |
| 팀 단위 도입 | 모든 개발자 PC에 배포해 AI 코드 비중과 사람 개입 횟수·토큰 사용량을 비교하고 하네스를 손본다 |
| 오픈소스 공개 전 점검 | blame으로 검토 안 한 AI 줄을 찾아 다시 본다 |