diff-preview

安装量: 40
排名: #17868

安装

npx skills add https://github.com/johnlindquist/claude --skill diff-preview

Diff Preview & Analysis

Preview, explain, and analyze git changes with AI assistance.

Prerequisites

Git

git --version

Gemini for AI explanations

pip install google-generativeai export GEMINI_API_KEY=your_api_key

CLI Reference Basic Diff Commands

Working directory changes

git diff

Staged changes

git diff --staged git diff --cached

Specific file

git diff path/to/file.ts

Between commits

git diff abc123 def456

Between branches

git diff main feature-branch git diff main...feature-branch # Since branch diverged

Show stat summary

git diff --stat git diff --shortstat

Name only

git diff --name-only git diff --name-status # With status (M/A/D)

Diff Output Options

Word diff (better for prose)

git diff --word-diff

Color words

git diff --color-words

Ignore whitespace

git diff -w git diff --ignore-all-space

Context lines

git diff -U10 # 10 lines of context (default 3)

Show function names

git diff --function-context

Commit Comparison

Last commit

git diff HEAD~1

Last N commits

git diff HEAD~5

Specific commit range

git diff abc123..def456

What changed in a specific commit

git show abc123

AI-Powered Analysis Explain Changes

Get diff and explain

DIFF=$(git diff --staged) gemini -m pro -o text -e "" "Explain these code changes in plain English:

$DIFF

Summarize: 1. What was changed 2. Why it might have been changed 3. Any potential issues"

Impact Analysis DIFF=$(git diff main...feature-branch) gemini -m pro -o text -e "" "Analyze the impact of these changes:

$DIFF

Consider: 1. Breaking changes 2. Performance implications 3. Security considerations 4. Files/systems affected 5. Testing recommendations"

Pre-Commit Review

Review staged changes before commit

git diff --staged | gemini -m pro -o text -e "" "Review this code diff for: 1. Bugs or issues 2. Code style problems 3. Missing error handling 4. Security concerns

Provide specific line references if issues found."

Generate Commit Message DIFF=$(git diff --staged) gemini -m pro -o text -e "" "Based on this diff, suggest a commit message:

$DIFF

Use conventional commit format (feat/fix/chore/etc). First line under 50 chars, then details."

Comparison Patterns Compare Branches

Summary

git diff main feature-branch --stat

Full diff

git diff main feature-branch

Since branch point

git diff main...feature-branch

Commits unique to feature branch

git log main..feature-branch --oneline

Find What Changed

What files changed between commits

git diff --name-only abc123 def456

What changed in a file

git log -p -- path/to/file.ts

When was a line added

git blame path/to/file.ts

Merge Preview

Preview merge conflicts

git merge --no-commit --no-ff feature-branch git diff --staged git merge --abort # Clean up

Workflow Patterns Pre-Commit Check

!/bin/bash

Check staged changes before commit

echo "=== Changes to commit ===" git diff --staged --stat

echo "" echo "=== Detailed diff ===" git diff --staged

echo "" read -p "Proceed with commit? (y/n) " -n 1 -r if [[ $REPLY =~ ^[Yy]$ ]]; then git commit fi

PR Review Prep

Get full PR diff for review

BASE=${1:-main} BRANCH=$(git branch --show-current)

echo "=== Files changed ===" git diff $BASE...$BRANCH --name-status

echo "" echo "=== Stats ===" git diff $BASE...$BRANCH --shortstat

echo "" echo "=== AI Summary ===" git diff $BASE...$BRANCH | gemini -m pro -o text -e "" "Summarize this PR's changes for a code reviewer. Focus on the intent and key changes."

Track Specific Changes

Find all changes to a function

git log -p -S "functionName" -- "*.ts"

Find changes mentioning something

git log -p --grep="JIRA-123"

Best Practices Review before commit - Always check git diff --staged Use stat first - Get overview before full diff Compare with base - Use main...branch for PR context Ignore whitespace - Use -w for meaningful changes Request AI review - For complex changes Save important diffs - Redirect to file for reference

返回排行榜