콘텐츠로 이동

Delta 치트시트

Delta 치트시트

설치

플랫폼명령어
Ubuntu/Debianwget https://github.com/dandavison/delta/releases/download/0.16.5/git-delta_0.16.5_amd64.deb && sudo dpkg -i git-delta_0.16.5_amd64.deb
Arch Linuxsudo pacman -S git-delta
Fedora/RHELsudo dnf install git-delta
Alpine Linuxapk add git-delta
macOS (Homebrew)brew install git-delta
macOS (MacPorts)sudo port install git-delta
Windows (Scoop)scoop install delta
Windows (Chocolatey)choco install delta
Windows (Winget)winget install dandavison.delta
Any (Cargo)cargo install git-delta
Verify Installationdelta --version

기본 명령어

명령어설명
git config --global core.pager deltadelta를 기본 Git 페이저로 설정
git diffdelta로 스테이징되지 않은 변경 사항 보기
git diff --cacheddelta로 스테이징된 변경 사항 보기
git diff path/to/file.py특정 파일의 변경 사항 보기
git diff main현재 브랜치를 main과 비교하기
git diff branch1..branch2두 브랜치 비교하기
git show HEAD마지막 커밋과 차이점 표시
git show abc123특정 커밋과 차이점 표시하기
git log -p커밋 기록을 차이점과 함께 보기
git diff commit1 commit2두 특정 커밋 비교하기
`diff file1.txt file2.txt \delta`
delta file1.txt file2.txt델타를 사용하여 파일을 직접 비교하기
delta --show-syntax-themes사용 가능한 모든 구문 테마 표시
delta --list-languages지원되는 프로그래밍 언어 목록
delta --show-config현재 델타 구성 표시
git blame file.pydelta 형식으로 git blame 보기
`git grep “function” \delta`
git diff --statdelta로 차이 통계 표시하기
`git diff -w \delta`
delta changes.diffdelta로 저장된 diff 파일 보기

고급 사용법

명령어설명
`git diff \delta —side-by-side`
`git diff \delta —side-by-side —width 200`
`git diff \delta —line-numbers`
`git diff \delta —syntax-theme Monokai`
`git diff \delta —language python`
git config --global delta.side-by-side true전역으로 나란히 보기 모드 활성화
git config --global delta.line-numbers true전역으로 줄 번호 활성화
git config --global delta.navigate true파일 간 이동을 위한 탐색 모드 활성화
git config --global delta.hyperlinks true클릭 가능한 파일 경로 하이퍼링크 활성화
git config --global diff.colorMoved default이동된 코드 블록 강조하기
git config --global pager.blame deltadelta를 사용하여 git blame 출력
git config --global pager.grep deltadelta를 사용하여 git grep 출력
git config --global interactive.diffFilter "delta --color-only"delta를 대화형 Git 명령어에서 사용하기
git blame -L 10,20 file.pydelta로 특정 라인 범위의 blame 보기
git diff --word-diff델타로 단어 수준의 차이 표시하기
git config --global delta.pager "less -RFX"페이저 동작 사용자 지정
git config --global delta.features "line-numbers decorations"한 번에 여러 기능 활성화하기
`git diff —ignore-space-at-eol \delta`
git config --global delta.max-line-length 512디스플레이를 위한 최대 줄 길이 설정
git config --global delta.tabs 4디스플레이를 위한 탭 너비 설정

구성

Delta는 Git의 구성 시스템을 통해 구성됩니다. 구성은 전역적으로 (~/.gitconfig) 또는 저장소별로 (.git/config) 설정할 수 있습니다.

기본 구성

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    navigate = true
    line-numbers = true
    side-by-side = true

완전한 구성 예시

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    # General settings
    navigate = true
    light = false
    side-by-side = true
    line-numbers = true
    hyperlinks = true
    
    # Syntax highlighting
    syntax-theme = Monokai Extended
    
    # Layout
    width = 200
    tabs = 4
    wrap-max-lines = unlimited
    
    # Line numbers
    line-numbers-left-format = "{nm:>4}│"
    line-numbers-right-format = "{np:>4}│"
    line-numbers-minus-style = "red"
    line-numbers-plus-style = "green"
    line-numbers-zero-style = "white dim"
    
    # Colors and styles
    minus-style = syntax "#3f0001"
    minus-non-emph-style = syntax "#3f0001"
    minus-emph-style = syntax "#901011"
    minus-empty-line-marker-style = normal "#3f0001"
    
    plus-style = syntax "#002800"
    plus-non-emph-style = syntax "#002800"
    plus-emph-style = syntax "#007800"
    plus-empty-line-marker-style = normal "#002800"
    
    # Commit and file decoration
    commit-decoration-style = bold yellow box ul
    file-decoration-style = blue ul
    file-style = bold yellow ul
    hunk-header-decoration-style = blue box
    hunk-header-style = file line-number syntax
    
    # Whitespace
    whitespace-error-style = reverse red
    
    # Moved code detection
    color-moved-style = syntax

[diff]
    colorMoved = default

사용자 정의 기능 세트

재사용 가능한 구성 프로필 생성:

[delta "my-dark-theme"]
    syntax-theme = Dracula
    line-numbers = true
    side-by-side = true
    navigate = true
    minus-style = syntax "#450a15"
    plus-style = syntax "#0a4514"

[delta "my-light-theme"]
    syntax-theme = GitHub
    light = true
    line-numbers = true
    side-by-side = false

[delta]
    features = my-dark-theme

인기 있는 구문 테마

  • Monokai Extended
  • Nord
  • Dracula
  • gruvbox-dark
  • gruvbox-light
  • Solarized (dark)
  • Solarized (light)
  • GitHub
  • OneHalfDark
  • OneHalfLight

일반적인 사용 사례

사용 사례 1: 일일 코드 리뷰 워크플로우

# Configure delta for optimal code review
git config --global core.pager delta
git config --global delta.side-by-side true
git config --global delta.line-numbers true
git config --global delta.navigate true

# Review changes before committing
git diff

# Review staged changes
git diff --cached

# Review specific file changes
git diff path/to/modified/file.js

사용 사례 2: 병합을 위한 브랜치 비교

# Compare feature branch with main
git diff main..feature-branch

# View side-by-side comparison with context
git diff main..feature-branch | delta --side-by-side --width 180

# Check for moved code blocks
git diff --color-moved main..feature-branch

# Review specific file differences between branches
git diff main..feature-branch -- src/app.py

사용 사례 3: 코드 히스토리 조사

# View commit history with diffs
git log -p --follow path/to/file.py

# Compare specific commits
git diff abc123..def456

# Show changes in a specific commit
git show abc123

# View blame with delta formatting
git blame -L 50,100 src/main.rs

# Search for changes in history
git log -p -S "function_name" | delta

사용 사례 4: 병합 충돌 해결

# Enable side-by-side view for conflicts
git config --global delta.side-by-side true
git config --global delta.line-numbers true

# View conflicted files
git diff --name-only --diff-filter=U

# Examine conflicts in detail
git diff path/to/conflicted/file.py

# Compare with both parents during merge
git diff HEAD
git diff MERGE_HEAD

사용 사례 5: 읽기 쉬운 차이 보고서 생성

# Generate formatted diff for documentation
git diff main..feature > changes.diff
delta changes.diff > formatted-changes.txt

# Create side-by-side comparison
git diff --stat main..feature
git diff main..feature | delta --side-by-side --width 200

# Export with specific theme for presentations
git diff | delta --syntax-theme "Monokai Extended" --line-numbers

모범 사례

  • delta를 전역적으로 설정: 모든 저장소에서 delta를 사용하도록 git config --global core.pager delta을(를) 한 번 구성하여 일관된 차이 보기 경험을 보장하세요.

  • 탐색 모드 활성화: 대규모 차이에서 git config --global delta.navigate true을(를) 사용하여 n(다음) 및 N(이전) 키로 파일 간 빠르게 이동하세요.

  • 적절한 테마 선택: 터미널 배경(어둡게/밝게)과 일치하고 좋은 대비를 제공하는 구문 테마를 선택하세요. 테스트해보세요.delta --show-syntax-themes모든 옵션을 미리 보려면.

  • 나란히 보기를 사용: 활성화side-by-side = true코드 리뷰 및 병합 비교를 위해, 하지만 좁은 터미널에서 빠른 확인 시 줄 바꿈 문제를 피하기 위해 비활성화하세요.

  • 줄 번호를 전략적으로 구성: 디버깅 및 코드 리뷰를 위해 줄 번호 활성화 (line-numbers = true), 하지만 시각적 혼란을 줄이기 위해 간단한 차이에서는 비활성화를 고려하세요.

  • 이동된 코드 감지 활용: diff.colorMoved = default를 설정하여 변경된 것이 아니라 이동된 코드를 강조하여 리팩토링 리뷰를 훨씬 더 명확하게 만듭니다.

  • 맞춤형 기능 세트 생성: 다양한 워크플로우를 위한 여러 델타 구성 정의 (예: “review”, “quick-check”, “presentation”) 및 features옵션을 사용하여 필요에 따라 전환.

  • 워크플로우에 최적화: width, tabs, 그리고 wrap-max-lines설정을 일반적인 터미널 크기 및 코딩 표준에 맞게 조정하여 어색한 줄 바꿈을 방지하세요.

  • 대화형 명령과 함께 사용: interactive.diffFilter = delta --color-only를 구성하여 git add -p및 기타 대화형 Git 명령에서 델타의 강조 표시를 얻으세요.

  • Git 별칭과 결합: git config --global alias.review 'diff --color-moved'와 같은 표준화된 리뷰 워크플로우를 위한 델타별 옵션을 포함하는 Git 별칭 생성.

문제 해결

문제솔루션
Delta not being used for diffsVerify configuration with git config --global core.pager - should return delta. If not, run git config --global core.pager delta
Colors not displaying correctlyCheck terminal supports 24-bit color. Set COLORTERM=truecolor environment variable. Try different syntax themes with delta --show-syntax-themes
Side-by-side view is garbledTerminal width may be too narrow. Disable with git config --global delta.side-by-side false or increase terminal width. Adjust with --width option
Line numbers not showingEnable explicitly: git config --global delta.line-numbers true. Check that feature isn’t disabled in a custom feature set
Syntax highlighting not workingVerify file extension is recognized with delta --list-languages. Force language with --language option or check syntax-theme setting
Delta not working in git add -pSet interactive diff filter: git config --global interactive.diffFilter "delta --color-only". The --color-only flag is essential for interactive mode
Pager quits immediatelyAdjust pager settings: git config --global delta.pager "less -RFX". The -F flag causes less to quit if output fits on one screen
Performance issues with large diffsDisable side-by-side mode, reduce max-line-length, or use --syntax-theme none to disable syntax highlighting for faster rendering
Hyperlinks not clickableEnsure terminal supports hyperlinks (iTerm2, kitty, Alacritty). Enable with git config --global delta.hyperlinks true
Configuration not taking effectCheck for conflicting configs: `git config —list
Unicode characters displaying incorrectlyEnsure terminal uses UTF-8 encoding. Set LC_ALL=en_US.UTF-8 or similar locale. Check font supports Unicode characters used in decorations