コンテンツにスキップ

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 deltaデフォルトのGitページャーとしてdeltaを設定
git diffデルタを使って未ステージの変更を表示
git diff --cachedデルタを使用してステージングされた変更を表示
git diff path/to/file.py特定のファイルの変更を表示
git diff mainカレントブランチをmainブランチと比較
git diff branch1..branch22つのブランチを比較する
git show HEAD最後のコミットを diff と共に表示
git show abc123特定のコミットとdiffを表示
git log -pコミット履歴を差分と共に表示
git diff commit1 commit22つの特定のコミットを比較する
`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 --statデルタを使用して差分統計を表示
`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 deltaデルタを使用して git blame の出力を表示する
git config --global pager.grep deltaデルタを使用して git grep の出力を表示する
git config --global interactive.diffFilter "delta --color-only"デルタを対話型のGitコマンドで使用する
git blame -L 10,20 file.pyデルタを使用して特定の行範囲のブレーム表示
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:読みやすいDiffレポートの作成

# 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を設定し、一貫したdiff表示エクスペリエンスを確保します。

  • ナビゲーションモードを有効化: 大きなdiffでgit config --global delta.navigate trueを使用して、n(次)とN(前)キーで簡単にファイル間を移動します。

  • 適切なテーマを選択: ターミナルの背景(ダーク/ライト)に合う構文テーマを選び、適切なコントラストを提供するものを選択します。テストするにはdelta --show-syntax-themesすべてのオプションをプレビューするために。 side-by-side = trueコードレビューとマージ比較のために有効にしますが、狭い端末での簡単なチェックでは、行の折り返しの問題を避けるために無効にします。 line-numbers = trueデバッグとコードレビューのために行番号を有効にしますが、視覚的な煩雑さを減らすために、シンプルな差分では無効にすることを検討します。 diff.colorMoved = default変更ではなく移動したコードを強調表示するように設定し、リファクタリングレビューをより明確にします。 features異なるワークフロー(例:「review」、「quick-check」、「presentation」)のために複数のデルタ設定を定義し、必要に応じて「オプション」を使用して切り替えます。 widthtabswrap-max-lines設定を、一般的な端末のサイズとコーディング標準に基づいて調整し、不自然な改行を防ぎます。 interactive.diffFilter = delta --color-onlyを設定して、git add -pやその他の対話型Gitコマンドでdeltaのハイライト表示を取得します。 git config --global alias.review 'diff --color-moved'標準化されたレビューワークフローのために、delta固有のオプションを含む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