Git Diff - Compare Commits

VerifiedSafe

Displays file-by-file diffs between two commits or between a commit and the working tree, including additions, deletions, and change hunks. Helps with code review, debugging regressions, and understanding history changes.

Sby Skills Guide Bot
DevelopmentBeginner
406/2/2026
Claude CodeCursorWindsurf
#git#diff#version-control#code-review

Recommended for

Our review

Shows changes between two commits or between a commit and the working tree, providing file-by-file diff information.

Strengths

  • Provides line-by-line detail of additions and deletions
  • Allows filtering by file or directory for targeted diffs
  • Supports all commit references (hash, branch, tag, relative)

Limitations

  • Does not handle diffs between remote branches without prior fetch
  • Can be slow on very large repositories or wide commit ranges
  • Does not show global statistics (total files changed)
When to use it

Use this skill to quickly inspect changes in a recent commit, compare two branches, or examine the evolution of a specific file.

When not to use it

Do not use it for complex history analysis or if you need an interactive diff with hunks rejection or staging (prefer a dedicated tool like `git difftool`).

Security analysis

Safe
Quality score90/100

The skill only runs read-only git diff commands, with no destructive or exfiltrating actions. No risk of executing harmful commands from the skill itself, though user-supplied commit references could be unsafe if not sanitized.

No concerns found

Examples

Last commit changes
Show diff from HEAD~1 to HEAD
Branch comparison
Show diff from main to feature/auth
Specific file diff
Show diff from HEAD~5 to HEAD for path /src/main.go

name: git-diff description: Show changes between two commits or between a commit and the working tree. Returns file-by-file diff information including additions, deletions, and change hunks. allowed-tools: Bash metadata: category: git version: 1.0.0

Git Diff Skill

This skill shows changes between two commits or between a commit and the working tree, providing detailed diff information for each changed file.

Usage

The git-diff skill compares two points in the repository history and returns detailed information about what changed.

Parameters

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | from_commit | string | Yes | - | Starting commit reference (hash, branch, tag, HEAD~n) | | to_commit | string | No | HEAD | Ending commit reference | | path | string | No | - | Filter diff to specific file or directory |

Commit References

You can use various formats for commit references:

  • Full commit hash: abc123def456...
  • Short hash: abc123
  • Branch name: main, feature/auth
  • Tag: v1.0.0
  • Relative: HEAD~1, HEAD~3
  • Range: Compare between any two references

Example Usage

Show changes in the last commit:

Show diff from HEAD~1 to HEAD

Show changes between branches:

Show diff from main to feature/auth

Show changes for a specific file:

Show diff from HEAD~5 to HEAD for path /src/main.go

Result Format

The diff result includes:

  • List of changed files with:
    • File path (and old path if renamed)
    • Status (A=Added, M=Modified, D=Deleted, R=Renamed)
    • Number of additions and deletions
    • Change hunks with line numbers
  • Total additions across all files
  • Total deletions across all files

Status Codes

| Code | Meaning | |------|---------| | A | Added - New file | | M | Modified - Existing file changed | | D | Deleted - File removed | | R | Renamed - File moved/renamed | | C | Copied - File copied |

Best Practices

  1. Use relative references (HEAD~n) for recent changes
  2. Filter by path for large diffs
  3. Compare against main/master to see feature changes
  4. Check both additions and deletions for context
Related skills