Home › Developer Tools › Changelog Generator

Changelog Generator

Paste your commit messages, for example the output of git log --oneline --decorate, and get a tidy CHANGELOG.md. Conventional Commit types are sorted into Added, Changed, Fixed and the other Keep a Changelog sections, tags become versions, and the next semantic version is suggested for unreleased work.

Last updated:

Tip: paste the output of git log --oneline --decorate (tags become versions) or git log --format="%h %ad %d %s" --date=short to include dates.

Advertisement
Advertisement

How to use the Changelog Generator

  1. Get your commits: run git log --oneline --decorate (or with --format="%h %ad %d %s" --date=short for dates) and copy the lines since the last release.
  2. Paste them into the left box, newest first, as git prints them. A sample loads to start.
  3. Pick the format: Keep a Changelog or Conventional, and decide whether maintenance and non-conventional commits are included.
  4. Check the version: accept the suggested semver bump, type your own, or keep new commits under Unreleased.
  5. Add your repository URL for clickable commit and compare links, then copy or download CHANGELOG.md.

Conventional Commit types and where they go

CommitKeep a Changelog sectionConventional sectionVersion bump
feat: add CSV exportAddedFeaturesMinor
fix: handle empty inputFixedBug FixesPatch
fix(deps): patch CVE-2024-1234SecurityBug FixesPatch
perf: cache parsed queriesChangedPerformance ImprovementsPatch
refactor: split schedulerChangedCode RefactoringPatch
feat: deprecate /v1/reportsDeprecatedFeaturesMinor
feat!: remove v1 endpointsRemoved (marked BREAKING)Features + ⚠ Breaking ChangesMajor
docs, chore, ci, test, build, styleChanged (only if included)Their own sections (only if included)Patch
Update README (not conventional)Changed (if included)Other Changes (if included)Patch

Getting the right commits out of git

  • git log --oneline --decorate prints one line per commit with tags such as (tag: v1.4.0), which become version headings.
  • git log --format="%h %ad %d %s" --date=short adds the commit date, used as the release date of each tagged version.
  • git log v1.4.0..HEAD --oneline lists only the commits since the last release, ideal for writing the next section.
  • git log --no-merges leaves out merge commits up front (the generator skips them anyway).

Writing a changelog people actually read

  • Write commit subjects in the imperative mood ("add", "fix", "remove") and describe the effect for users, not the code change.
  • Edit the generated text before publishing: merge related entries, drop internal details and add migration steps for breaking changes.
  • Keep the newest release at the top and date every version in ISO format (YYYY-MM-DD) so the order is unambiguous worldwide.
  • Collect upcoming work under Unreleased and rename it to the version number when you tag the release.

Frequently asked questions

What input does the changelog generator expect?

One commit subject per line, newest first, exactly as git log prints it. A short or full hash at the start of the line is detected, as are dates in YYYY-MM-DD format and tag decorations such as (tag: v1.4.0). Indented lines after a commit are treated as its body, so a BREAKING CHANGE: footer is picked up. A line that is only a version, such as v1.4.0 or ## 1.4.0, starts a new version too.

How are Conventional Commit types mapped to Keep a Changelog sections?

feat goes to Added, fix to Fixed, and perf, refactor, revert and other types to Changed. Commits whose description starts with deprecate go to Deprecated, ones that start with remove or drop go to Removed, and fixes that mention security, a CVE or a vulnerability go to Security. Breaking changes are marked BREAKING in their section.

How is the next version number chosen?

It follows Semantic Versioning from the newest tag in your list: any breaking change bumps the major version, otherwise any feat bumps the minor version, otherwise the patch version goes up. Before 1.0.0, a breaking change bumps the minor version instead, which is a common convention for initial development. You can always type your own version.

Why are some commits missing from the changelog?

Merge commits are always skipped because they repeat the work of other commits. Commits typed docs, chore, ci, test, build or style are hidden by default because users rarely care about them; tick the option to include them. Breaking changes are always shown, whatever their type.

What is Keep a Changelog?

Keep a Changelog is a widely used convention for human-readable changelogs: the newest version first, one heading per release with its date, changes grouped under Added, Changed, Deprecated, Removed, Fixed and Security, and an Unreleased section for upcoming work. It pairs naturally with Semantic Versioning.

Does it work with GitLab and GitHub links?

Yes. Enter the repository URL and the generator links commit hashes, #123 issue references and version compare views using GitHub or GitLab URL patterns, detected from the address. Without a URL the changelog stays plain text.

Are my commit messages sent anywhere?

No. Parsing and formatting happen in your browser, so private repository history stays on your device.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Commit Message GeneratorBuild Conventional Commit messages with type, scope, body, breaking change and issue refs.Markdown EditorWrite Markdown with a toolbar, live split preview, autosave and .md or HTML export.Git Cheat SheetSearchable Git command reference by task, with copy buttons and an undo/rename/fix wizard.GitLab CI Config GeneratorGenerate a .gitlab-ci.yml with stages, jobs, images, cache, artifacts and rules from templates.QR Code GeneratorMake QR codes for links, Wi-Fi, email and more.Barcode GeneratorCreate Code 128, EAN-13, UPC-A, EAN-8, Code 39 and ITF-14 barcodes as PNG or SVG.UUID GeneratorGenerate UUID v4 and v7 / GUIDs in bulk and copy or download them.Schema Markup Generator (JSON-LD)Create JSON-LD structured data for FAQ, Product, Article and more.Htaccess & Nginx Redirect GeneratorBuild 301 redirects for .htaccess, Nginx and Netlify or Cloudflare _redirects.Fake Data GeneratorGenerate mock data as JSON, CSV or SQL.Random String GeneratorGenerate secure random strings and tokens in bulk with any length and character set.API Key GeneratorCreate secure API keys and secrets with prefixes, checksums and SHA-256 hashes for storage.MIME Type LookupFind the MIME type for any file extension, or the extensions for a MIME type, in 400+ entries.Cron Expression GeneratorBuild crontab schedules visually, read them in plain English and see the next run times.URL Slug GeneratorTurn titles into clean, SEO-friendly URL slugs: accents, stop words, separators and bulk lines.JSON Schema GeneratorTurn sample JSON into a draft 2020-12 JSON Schema with types, required fields and formats.Gitignore GeneratorBuild a .gitignore from 50+ templates for languages, frameworks, IDEs and OS, merged and deduped.License GeneratorCreate a LICENSE file for MIT, Apache, GPL, BSD, ISC, MPL or Unlicense with your name and year.ULID GeneratorGenerate sortable ULIDs and UUID v7 in bulk, monotonic option, and decode their timestamps.Htpasswd GeneratorCreate .htpasswd entries with bcrypt, APR1-MD5 or SHA-1 for Apache and Nginx basic auth.Placeholder Image GeneratorCreate placeholder images in any size, color and text as PNG, JPG, WebP, SVG or data URI.Ads.txt GeneratorCreate or validate ads.txt and app-ads.txt files: seller lines, cert IDs and variables.Docker Run to Compose ConverterConvert docker run commands to docker-compose.yml, or a compose file back to docker run.Dockerfile GeneratorGenerate a production Dockerfile and .dockerignore for Node, Python, Go or a static nginx site.HTML Boilerplate GeneratorTick the options you need and get a clean HTML5 starter template with meta, OG tags and CSS reset.JSON to Zod SchemaInfer a Zod (or Yup) schema from sample JSON with optional, nullable and z.infer types.Linux Commands Cheat SheetSearchable Linux and bash command reference with flags explained, examples and copy buttons.LLMs.txt GeneratorBuild an llms.txt file for AI crawlers: summary and link sections, import from your sitemap.Nano ID GeneratorGenerate secure Nano IDs with custom alphabet, length and count, plus a collision calculator.Nginx Config GeneratorBuild an nginx server block: static site, SPA, reverse proxy or PHP, with SSL, gzip and redirects.OpenAPI / Swagger ViewerView OpenAPI 2/3 JSON or YAML as interactive API docs with validation and an endpoint list.package.json GeneratorFill a form and get a valid, npm-ready package.json with scripts, dependencies and checks.PKCE Code Challenge GeneratorGenerate an OAuth 2.0 PKCE code_verifier and S256 code_challenge, build auth URLs, verify pairs.README GeneratorFill in a form and get a polished README.md with badges, install, usage and license, live preview.Regex GeneratorBuild regular expressions visually from blocks or presets (email, date, phone) and test them live.Database Schema DesignerDesign tables and relationships visually, then export SQL for MySQL, PostgreSQL or SQLite.Docker Compose GeneratorBuild a docker-compose.yml with a form: services, ports, volumes, env, healthchecks and presets.Dummy File GeneratorCreate test files of an exact size in KB, MB or GB with zeros, random bytes or text.Kubernetes YAML GeneratorGenerate Deployment, Service, Ingress, ConfigMap, Secret and HPA manifests with safe defaults.Markdown TOC GeneratorGenerate a linked table of contents from Markdown headings with GitHub-style anchors.OpenAPI EditorEdit OpenAPI/Swagger YAML or JSON side by side with live API docs, validation and download.OpenAPI ValidatorValidate OpenAPI 3.0/3.1 and Swagger 2.0 specs: schema errors, broken $refs, line numbers.Pivot Table MakerBuild pivot tables from CSV or Excel by drag and drop: sum, count, average, charts, export.SQL Query BuilderBuild SELECT queries visually: joins, filters, GROUP BY, ORDER BY and LIMIT, as clean SQL.Truth Table GeneratorType a logic expression and get its full truth table, minterms and canonical DNF/CNF.TypeScript PlaygroundWrite TypeScript with live type checking, see the compiled JavaScript and run it in your browser.Article Schema GeneratorCreate Article, BlogPosting or NewsArticle JSON-LD with headline, authors, dates and images.Event Schema GeneratorCreate Event JSON-LD with dates, venue or online location, tickets, organizer and performers.Google Search Query BuilderBuild advanced Google searches with site:, filetype:, intitle:, exact phrases and date operators.HowTo Schema GeneratorCreate HowTo JSON-LD with steps, tools, supplies, total time and cost, then copy it.Htaccess GeneratorBuild an Apache .htaccess file: HTTPS, www, gzip, caching, error pages, IP blocks, hotlinks.HTML Email Template BuilderDrag and drop blocks to build a responsive, table-based HTML email with inline styles.Organization Schema GeneratorCreate Organization JSON-LD with logo, URL, contact points, address and social profiles.PIN GeneratorGenerate random 4, 6 or 8-digit PINs that avoid sequences, repeats, dates and common PINs.Product Schema GeneratorBuild Product JSON-LD with price, availability, brand, GTIN, ratings and reviews.Question Keyword GeneratorFind the questions people ask about a topic, grouped by who, what, why, how, can and more.Recipe Schema GeneratorCreate Recipe JSON-LD with ingredients, steps, prep and cook times, nutrition and ratings.Security Headers GeneratorPick HSTS, CSP, frame, referrer and permissions options and get Apache, Nginx, Netlify or Cloudflare config.SKU GeneratorBuild consistent SKUs from brand, category, size and color, then export every variant as CSV.Typography Scale GeneratorBuild a modular type scale from a base size and ratio, then copy CSS variables or a Tailwind config.WordPress Salt GeneratorGenerate fresh WordPress security keys and salts for wp-config.php, .env or Docker in one click.ANSI Color Code GeneratorStyle terminal text with 16, 256 or RGB colors and get escape codes for bash, Python, JS and C.Apache Virtual Host GeneratorCreate an Apache VirtualHost config with SSL, redirects, reverse proxy or PHP-FPM in seconds.Bash Prompt GeneratorDrag and drop a custom PS1 prompt for bash or zsh with colors, git branch and a live preview.cURL Command BuilderBuild curl commands from a form: method, headers, query, JSON or form body, auth and flags.Docker Compose to KubernetesConvert docker-compose.yml into Kubernetes Deployment, Service, ConfigMap and PVC manifests.Docker Compose ValidatorCheck a docker-compose.yml for YAML errors, schema mistakes, broken references and deprecated keys.Dockerfile LinterLint a Dockerfile for best practices: pinned tags, apt cleanup, non-root USER and layer count.
See all 85 Code Generators & Builders →