delta — git diff 문법 하이라이트
Linux / 모던 CLI 도구 / delta.html
💬 "delta 명령어"
delta(패키지명 git-delta)는 git diff·diff 출력에 문법 하이라이트를 넣어주는 도구입니다. 평범한 빨간·초록 글자 대신 코드에 맞는 색으로 변경점을 보여주어 어디가 바뀌었는지 훨씬 빠르게 읽습니다.
Rust로 만들어졌으며, git의 기본 pager로 설정하면 git diff·git show·git log -p가 자동으로 아름다워집니다. 행 단위를 넘어 블록·논리적 변경을 함께 강조합니다.
- 개념: git diff 등에 문법 강조와 읽기 좋은 레이아웃을 적용하는 pager입니다.
- 주요 기능: 문법 색상, 행 단위 하이라이트, 파일 이동/복사 인식, 사이드바, 배경 차이 표시를 지원합니다.
- 장점: 설정 한 번으로 모든 git diff가 읽기 쉬워지고, 리뷰·리베이스 시 변경 파악이 빨라집니다.
- 활용: 코드 리뷰·리베이스·충돌 해결 시 변경 내용을 명확히 볼 때 사용합니다.
기본 사용법
delta는 설치 후 git pager로 한 번 설정하면, 평소 git 명령을 그대로 쓰면서 자동 적용됩니다.
1. git에 통합 (설정 한 번)
delta를 git의 기본 pager와 인터랙티브 필터로 지정합니다.
git config --global core.pager delta
git config --global interactive.diffFilter "delta --color-only"
git config --global delta.navigate true
2. 평소처럼 git 사용
이제 평소 git 명령이 자동으로 하이라이트됩니다.
git diff
git show
git log -p --stat
git add -p # 인터랙티브 add도 밝게 표시
3. git 밖에서도 사용
git이 아닌 diff 파일에도 적용할 수 있습니다.
diff -u old.txt new.txt | delta
cat changes.diff | delta
설치 및 다운로드
delta는 cargo·패키지 매니저·바이너리로 설치합니다.
| 환경 | 명령 |
|---|---|
| cargo | cargo install git-delta |
| Ubuntu/Debian (패키지 있으면) | sudo apt install git-delta |
| macOS (Homebrew) | brew install git-delta |
| 릴리스 바이너리 | github.com/dandavison/delta/releases |
설치 확인은 delta --version. git 통합은 위의 git config 3줄이면 끝납니다. less가 너무 오래되면 git config --global pager.delta 'delta --paging=never'로 paging을 끌 수 있습니다.
자주 쓰는 옵션
| 명령·키 | 설명 |
|---|---|
delta.navigate | diff 안에서 n/N으로 파일 간 이동합니다 |
delta.side-by-side | 좌우 비교 레이아웃을 켭니다 |
delta.line-numbers | 행 번호를 표시합니다 |
--features syntax-theme | 원하는 문법 테마를 지정합니다 |
--paging=never | pager(less) 없이 한 번에 출력합니다 |
필수 명령어 조합 3가지
git diff | delta— diff를 하이라이트해 확인git log -p | delta— 커밋 변경을 문법 색으로 검토git config --global core.pager delta— 모든 git diff에 자동 적용
💬 "실제 서버에서 delta를 사용하는 예시"
리뷰·리베이스 중 변경을 확인하는 상황을 순서대로 정리했습니다.
1단계 · delta 설치
cargo 또는 패키지로 설치합니다.
cargo install git-delta || sudo apt install git-delta
2단계 · git 통합
pager로 설정합니다.
git config --global core.pager delta
3단계 · 변경 검토
이제 diff가 자동으로 하이라이트됩니다.
git show HEAD
git diff --staged
실무에서는 이렇게 씁니다
1. 리뷰용 사이드바 비교
상황 — 한 화면에서 좌우로 변경을 비교합니다.
git diff --staged | delta --side-by-side
결과 — 좌우 레이아웃으로 추가·삭제가 한눈에 들어옵니다.
포인트 — 리뷰 시 어떤 라인이 바뀌었는지 빠르게 판단합니다.
2. 리베이스 중 확인
상황 — 리베이스 충돌을 검토합니다.
git rebase --continue # 충돌 시
git diff | delta
결과 — 충돌 구간이 문법 색으로 강조되어 원인 파악이 빨라집니다.
포인트 — 대형 diff에서도 눈이 편해 실수를 줄입니다.
주의할 점
- 오래된
less는 일부 색을 못 그릴 수 있어less최신 버전을 권장합니다. - bat를 쓰면
bat cache --build로 캐시를 갱신해야 문법이 함께 잘 표시됩니다. - 색이 눈에 부담되면
--features ansi-dark등 테마를 바꿀 수 있습니다.