Free Tool

Free Changelog Generator from Git Log

Paste your git log and get a human-readable changelog in Keep a Changelog format.

Turn your raw git history into a clean, categorized changelog in seconds. Free, no signup required — paste your git log output and get release notes your users can actually read.

Writing changelogs by hand is tedious and error-prone, especially at release time when you are trying to remember everything that changed. This tool reads your commit history, groups changes into Added, Fixed, Changed, and Removed, and translates implementation details into reader-facing entries — following the widely-adopted Keep a Changelog format. It works best when your commits follow conventional commits, and you can check how changelog-ready your history is with the free commit message analyzer.

For the full approach, see our guides on how to write a changelog, generating a changelog from git commits, and choosing a changelog management tool.

What the output looks like

Sample output for the commits shown in the placeholder above — raw one-liners in, categorized reader-facing entries out:

CHANGELOG.md · sample output

[Unreleased]

Added

  • Dark mode toggle in the app header

Fixed

  • Crash when the auth middleware received a request with no session token

Changed

  • Updated dependencies to their latest minor versions

Note what happened to fix: resolve null pointer in auth middleware — it became a sentence a user can act on, not a restatement of the commit. That translation step is what separates a changelog tool from git log with headings.

Script-based changelog tools vs. this one

Classic changelog tools (conventional-changelog, semantic-release) parse the format of your commit messages: a feat: prefix becomes an Added entry, a fix: becomes Fixed. That works exactly as well as your commit discipline — a stretch of wip and asdf commits produces an empty or misleading changelog, because a parser cannot recover meaning that was never written down.

This tool reads the content of the messages instead. It infers what each commit did, groups related changes, drops pure noise (dependency bumps can stay or go), and phrases entries for the person reading the release notes rather than the person who wrote the diff. Messy, human commit history — which is to say, real commit history — still yields a usable changelog.

The comparison of all the main options — Keep a Changelog by hand, script generators, changesets, GitHub Releases, and AI generation — is in our guide to choosing a changelog management tool.

Frequently asked questions

How do I generate a changelog from my git log?+

Run git log --oneline for the range you want to release, paste the output into the tool above, and it returns a categorized changelog in Keep a Changelog format — changes grouped into Added, Fixed, Changed, and Removed, phrased for readers rather than for git.

Does this changelog tool require conventional commits?+

No. Conventional commits (feat:, fix:) improve the categorization, but the tool reads the content of each message, not just its prefix, so messy or inconsistent commit history still produces a usable changelog. Script-based generators are the ones that depend on strict commit formats.

Is this changelog generator free?+

Yes — paste a git log and generate a changelog with no signup. Pushpen's paid product solves the follow-on problem: it updates your CHANGELOG.md automatically on every push, so the changelog never falls behind between releases.

What format does the generated changelog use?+

Keep a Changelog, the most widely adopted convention: an Unreleased section on top, changes grouped under Added / Changed / Fixed / Removed headings, newest first. The output is plain markdown you can paste straight into CHANGELOG.md.

Automate this for your repos

Pushpen generates changelogs automatically on every push. No pasting required.

Connect your repo free