Git 저장소를 직접 탐색하는 새로운 방식: GQL 소개 GQL(Git Query Language)는 .git 폴더 내부의 이력 데이터를 직접 분석할 수 있도록 해주는 도구로, 전통적인 SQL과 유사한 구문을 사용해 커밋 기록, 브랜치 정보, 코드 변경 사항 등을 직관적으로 조회할 수 있습니다. 이는 별도의 변환 과정 없이도 깔끔한 데이터 분석이 가능하게 하며, 개발자들이 프로젝트의 진척 상황이나 팀원 활동을 실시간으로 파악하는 데 큰 도움이 됩니다.
설치 방법: 다양한 환경에 맞춘 설치 옵션
- Cargo (모든 플랫폼):
cargo install gitql명령어로 간편 설치 가능. 다만 0.10.0 이상 버전에서는 컴파일 의존성인 CMake가 필요합니다. - Windows: Winget 또는 Scoop을 통해 설치 가능. 예:
winget install gitql - macOS/Linux: Homebrew로 쉽게 설치:
brew install gql
소스코드에서 직접 빌드하기 최신 기능을 사용하고 싶다면 공식 저장소에서 소스를 다운로드하여 직접 컴파일할 수 있습니다:
git clone https://gitcode.com/gh_mirrors/gq/GQL
cd GQL
cargo run /path/to/repository # 단일 저장소 분석
# 또는 여러 저장소 동시 처리
cargo run -- --repo /path/repo1 /path/repo2
주요 쿼리 예제와 활용법
- 각 작성자의 커밋 횟수 집계
SELECT author_name, COUNT(*) AS total_commits
FROM commits
GROUP BY author_name
ORDER BY total_commits DESC
LIMIT 5;
- 활성화된 브랜치 목록 확인
SELECT name, commit_count
FROM branches
WHERE commit_count > 5
ORDER BY commit_count DESC;
- 파일별 코드 변경량 통계
SELECT path,
SUM(insertions) AS added_lines,
SUM(removals) AS removed_lines
FROM diff_changes
GROUP BY path
ORDER BY added_lines DESC;
실행 환경 및 출력 설정 GQL은 명령줄 인터페이스를 통해 다양한 옵션을 제공하며, 결과를 원하는 형식으로 출력할 수 있습니다.
Usage: gitql [OPTIONS]
Options:
-r, --repos <PATHS> 대상 저장소 경로 지정 (복수 가능)
-q, --query <SQL> 바로 쿼리 실행
-s, --script <FILE> 외부 스크립트 파일 로드
-o, --output <format> 출력 형식 (json, csv, render 중 선택)
-p, --paginate 결과 페이지 나누기 기능 활성화
왜 GQL을 선택해야 할까?
- 직접 접근: .git 디렉터리 구조를 그대로 해석, 중간 변환 없이 데이터 추출
- SQL 유사 문법: 데이터 분석 경험자가 빠르게 익힐 수 있음
- 함수 지원 확장성: 문자열 조작, 날짜 연산, 집계 함수 등 풍부한 기능 제공
- 다중 저장소 분석: 한 번에 여러 프로젝트의 이력 데이터를 비교·분석 가능
개발팀의 커밋 패턴 분석, 리뷰 주기 평가, 코드 퀄리티 모니터링 등 다양한 현장에서 활용 가능한 강력한 도구입니다. 이제부터 당신의 Git 저장소를 더 똑똑하게 관리하세요.
명령줄에서 실행되는 쿼리 결과 예시 (예: 커밋 통계 시각화)