Claude Code Plugins

Community-maintained marketplace

Feedback

Git expertise for commit messages, merge conflicts, branching strategies, and repository management. Use when writing commits, resolving conflicts, managing branches, rebasing, cherry-picking, or troubleshooting Git issues.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name git-expert
description Git expertise for commit messages, merge conflicts, branching strategies, and repository management. Use when writing commits, resolving conflicts, managing branches, rebasing, cherry-picking, or troubleshooting Git issues.

🔀 Git Expert

Expert guidance for Git operations including commit crafting, conflict resolution, and branch management.

📝 Commit Messages

Format

<type>(<scope>): <subject>

<body>

<footer>

Types

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation only
  • style: Formatting, no code change
  • refactor: Code restructuring without behavior change
  • perf: Performance improvement
  • test: Adding/updating tests
  • chore: Build process, dependencies, tooling

Rules

  1. Subject line: max 50 characters, imperative mood ("Add feature" not "Added feature")
  2. Body: wrap at 72 characters, explain what and why, not how
  3. Separate subject from body with blank line
  4. Reference issues in footer: Fixes #123 or Closes #456

Examples

Good:

feat(auth): add OAuth2 login support

Implement Google and GitHub OAuth providers to give users
alternative login methods beyond email/password.

- Add OAuth callback handlers
- Store provider tokens securely
- Link accounts to existing users by email

Closes #234

Bad:

fixed stuff and updated some things

⚔️ Merge Conflicts

Understanding Conflict Markers

<<<<<<< HEAD
Your current branch changes
=======
Incoming changes from merged branch
>>>>>>> feature-branch

Resolution Steps

  1. git status - identify conflicted files
  2. Open each file, locate <<<<<<< markers
  3. Decide what to keep: yours, theirs, or combination
  4. Remove all conflict markers
  5. git add <resolved-files>
  6. git commit (or git merge --continue / git rebase --continue)

Resolution Strategies

  • Accept ours: git checkout --ours <file>
  • Accept theirs: git checkout --theirs <file>
  • Manual merge: Edit file to combine changes
  • Use mergetool: git mergetool

Abort if Needed

  • git merge --abort - cancel merge
  • git rebase --abort - cancel rebase
  • git cherry-pick --abort - cancel cherry-pick

🌳 Branching

Naming Conventions

feature/short-description
bugfix/issue-number-description
hotfix/critical-fix-name
release/v1.2.0

Common Workflows

Feature Branch:

git checkout -b feature/new-feature main
# ... work ...
git checkout main
git merge feature/new-feature
git branch -d feature/new-feature

Rebase onto main:

git checkout feature/my-feature
git fetch origin
git rebase origin/main
# resolve conflicts if any
git push --force-with-lease

Interactive Rebase (squash commits):

git rebase -i HEAD~3  # last 3 commits
# Change 'pick' to 'squash' or 's' for commits to combine

Branch Commands

Command Purpose
git branch List local branches
git branch -a List all branches (including remote)
git branch -d <name> Delete merged branch
git branch -D <name> Force delete branch
git branch -m <new> Rename current branch
git switch <branch> Switch branches (modern)
git switch -c <new> Create and switch

🔧 Useful Commands

Inspection

git log --oneline --graph --all    # visual history
git log -p <file>                  # file history with diffs
git blame <file>                   # line-by-line authorship
git show <commit>                  # commit details
git diff <branch1>..<branch2>      # compare branches

Undo Operations

git reset --soft HEAD~1   # undo commit, keep staged
git reset --mixed HEAD~1  # undo commit, unstage (default)
git reset --hard HEAD~1   # undo commit, discard changes ⚠️
git revert <commit>       # create inverse commit (safe)
git restore <file>        # discard working changes
git restore --staged <file>  # unstage file

Stashing

git stash                 # stash changes
git stash pop             # apply and remove stash
git stash list            # show stashes
git stash show -p         # show stash diff
git stash drop            # remove top stash

Cherry-picking

git cherry-pick <commit>           # apply single commit
git cherry-pick <c1>..<c2>         # apply range (exclusive)
git cherry-pick <c1>^..<c2>        # apply range (inclusive)
git cherry-pick --no-commit <c>    # apply without committing

🚨 Recovery

Find Lost Commits

git reflog                # show all HEAD movements
git checkout <hash>       # recover to specific point
git branch recover <hash> # create branch at lost commit

Fix Last Commit

git commit --amend              # edit message or add files
git commit --amend --no-edit    # add staged files silently

Clean Untracked Files

git clean -n    # dry run - show what would be deleted
git clean -f    # delete untracked files
git clean -fd   # delete untracked files and directories