Ollama Models

A small collection of Ollama Modelfiles centered on Googles Gemma 3 Mini 2B (gemma3n:e2b). It includes two taskfocused models that work well together for Git workflows:

  • git-diff-analyzer: turns a staged unified diff into strict JSON.
  • git-commit-writer: converts that JSON (or a raw diff) into a Conventional Commit message.

The goal is fast, local, reproducible commit assistance with minimal ceremony.

Quick Start

Prerequisites:

  1. Pull the base model once:
ollama pull gemma3n:e2b
  1. Build the specialized models from the included Modelfiles:
# Build analyzer
ollama create git-diff-analyzer-gemma3n-e2b \
  -f gemma3n-e2b/git-diff-analyzer/Modelfile

# Build commit writer
ollama create git-commit-writer-gemma3n-e2b \
  -f gemma3n-e2b/git-commit-writer/Modelfile
  1. Use them together (pipeline):
git diff --staged \
  | ollama run git-diff-analyzer-gemma3n-e2b \
  | ollama run git-commit-writer-gemma3n-e2b

This prints a readytouse Conventional Commit message to stdout.

Usage Details

  • git-diff-analyzer

    • Input: unified diff (e.g., git diff --staged).
    • Output: a single JSON object with summary, perfile highlights, and footers (see gemma3n-e2b/git-diff-analyzer/Modelfile for the exact schema and guidance).
    • Decoding is tuned for determinism (temperature 0.1).
  • git-commit-writer

    • Preferred input: the analyzers JSON. Fallback: a raw diff.
    • Output: ONLY a Conventional Commit message (no backticks or extra prose), wrapped at ~72 chars.
    • Decoding is slightly more open (temperature 0.2) while keeping consistency.

Tip: If you want to inspect or edit the analyzer JSON before generating a message:

git diff --staged \
  | ollama run git-diff-analyzer-gemma3n-e2b \
  | tee /tmp/diff-analysis.json

cat /tmp/diff-analysis.json \
  | ollama run git-commit-writer-gemma3n-e2b

Repository Layout

gemma3n-e2b/
  Modelfile                    # Generated by `ollama show` (pinned to a local blob)
  git-diff-analyzer/Modelfile  # Build with `FROM gemma3n:e2b`
  git-commit-writer/Modelfile  # Build with `FROM gemma3n:e2b`

Note on the toplevel gemma3n-e2b/Modelfile: it was generated via ollama show and references a local blob path in FROM. For portability, prefer the two taskspecific Modelfiles which already use FROM gemma3n:e2b and can be built anywhere after you ollama pull the base.

Git Convenience Alias (optional)

Add a quick alias to print a suggested commit message from your staged changes:

[alias]
  ai-commit = "!f() { \
    git diff --staged | \
    ollama run git-diff-analyzer-gemma3n-e2b | \
    ollama run git-commit-writer-gemma3n-e2b; \
  }; f"

Then run:

git ai-commit

Notes & Troubleshooting

  • Stage changes first: git add -p or git add <files> before running.
  • Very large diffs may lead to longer runtimes; consider committing in smaller chunks.
  • If your environment lacks gemma3n:e2b, run ollama pull gemma3n:e2b before ollama create.
  • You can swap the base in Modelfiles to another small instruct model if you prefer.

Licensing

  • Base model: Gemma Terms of Use apply to the underlying model; a copy of the terms is embedded in gemma3n-e2b/Modelfile.
  • Modelfiles/system prompts in this repository are provided as-is; ensure your usage complies with the Gemma Terms of Use and your local policies.
Description
No description provided
Readme 39 KiB