commitizen VS pre-commit-hooks

Compare commitizen vs pre-commit-hooks and see what are their differences.

commitizen

Create committing rules for projects :rocket: auto bump versions :arrow_up: and auto changelog generation :open_file_folder: (by commitizen-tools)

pre-commit-hooks

git pre-commit hooks that work with http://pre-commit.com/ (by jumanjihouse)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
commitizen pre-commit-hooks
9 3
2,135 112
5.4% 0.9%
9.5 0.0
6 days ago 6 months ago
Python Shell
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

commitizen

Posts with mentions or reviews of commitizen. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-31.
  • What is the relation between commitizen-tools/commitizen and commitizen/cz-cli?
    2 projects | /r/git | 31 Jan 2023
    I followed some instruction in it and realized this tool is only for javascript projects.. While I was considering commitizen is not for me, I ran into this project: https://github.com/commitizen-tools/commitizen
  • Your Git Commit History Should Read Like a History Book. Here’s How.
    3 projects | /r/git | 6 Sep 2022
    Relevant to this discussion is perhaps pre-commit as it simplifies sharing git hooks which would otherwise not be tracked in git, as well as commitizen which enforces conventional commits.
  • Life is Too Short to Review Spaces
    8 projects | dev.to | 1 Aug 2022
    commitizen makes sure our commit messages meet our company requirements, which is a format derived from semantic-release  where we require to also put the related GitLab issue’s number. Here is an example of a valid GitGuardian commit message:
  • Modern Python setup for quality development
    11 projects | dev.to | 7 Jan 2022
    repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 hooks: - id: check-added-large-files - id: check-ast - id: check-builtin-literals - id: check-case-conflict - id: check-docstring-first - id: check-executables-have-shebangs - id: check-json - id: check-merge-conflict - id: check-symlinks - id: check-toml - id: check-vcs-permalinks - id: check-xml - id: check-yaml args: [--allow-multiple-documents] - id: debug-statements - id: detect-aws-credentials args: [--allow-missing-credentials] - id: destroyed-symlinks - id: end-of-file-fixer - id: fix-byte-order-marker - id: fix-encoding-pragma args: [--remove] - id: forbid-new-submodules - id: mixed-line-ending args: [--fix=auto] - id: name-tests-test args: [--django] - id: requirements-txt-fixer - id: trailing-whitespace - repo: local hooks: - id: black name: black entry: poetry run black language: system types: [python] - id: flake8 name: flake8 entry: poetry run flake8 language: system types: [python] - repo: https://github.com/pycqa/isort rev: "5.9.1" hooks: - id: isort args: - --profile - black - --filter-files - repo: https://github.com/adrienverge/yamllint.git rev: v1.26.1 hooks: - id: yamllint args: [-c=.yamllint.yaml] - repo: https://gitlab.com/devopshq/gitlab-ci-linter rev: v1.0.2 hooks: - id: gitlab-ci-linter args: - "--server" - "https://your.gitlab.server" # Need env var GITLAB_PRIVATE_TOKEN with gitlab api read token - repo: https://github.com/commitizen-tools/commitizen rev: v2.17.11 hooks: - id: commitizen stages: [commit-msg] - repo: https://github.com/jumanjihouse/pre-commit-hooks rev: 2.1.5 # or specific git tag hooks: - id: forbid-binary - id: shellcheck - id: shfmt
  • How to enforce git commit messages longer than stupid shit like "abc" and "fix"?
    5 projects | /r/ExperiencedDevs | 18 Dec 2021
    While I agree with others, that this is not strictly a technical problem I think commitizen will let you do this, among other things.
  • SvelteKit Tooling: 7 Tools to Streamline you CI Workflow
    3 projects | dev.to | 22 Nov 2021
    Following the type of commit in brackets we have a description for the part of the project affected. Then the commit message itself. The emoji is not required! If you want to try out conventional commits, you might like the commitizen command line tool. As well as holding your hand as you write commit messages, it can handle version bumping and generate changelogs for you. We won't go into details here, but definitely try it on a new side project to see if it suits you.
  • Semantic Versioning In Python With Git Hooks
    4 projects | dev.to | 22 Sep 2021
    --- repos: - repo: https://github.com/commitizen-tools/commitizen rev: master hooks: - id: commitizen stages: [commit-msg]
  • Automated version number for embedded software
    1 project | /r/embedded | 20 Mar 2021
    Look into git flow + commitizen + semver. Git flow is secondary to your problem but is a nice to have feature. commitizen allows you to automatically bump versions based on your git commits. Look at this issue here https://github.com/commitizen-tools/commitizen/issues/358 Yes, that is me. I did say, I was grappling with the same issue a while ago..
  • Anyone know of a utility for generating commit messages?
    1 project | /r/git | 14 Feb 2021
    While not a direct answer, have a look at https://github.com/commitizen-tools/commitizen

pre-commit-hooks

Posts with mentions or reviews of pre-commit-hooks. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-13.
  • Implementing Quality Checks In Your Git Workflow With Hooks and pre-commit
    6 projects | dev.to | 13 Dec 2023
    $ vim README.md #changes here $ git add .pre-commit-config.yaml README.md $ git commit [INFO] Initializing environment for https://github.com/jumanjihouse/pre-commit-hooks. [INFO] Installing environment for https://github.com/jumanjihouse/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... Trim Trailing Whitespace.................................................Passed Fix End of Files.........................................................Passed Check Yaml...............................................................Passed Check Toml...........................................(no files to check)Skipped Check for added large files..............................................Passed tox-validation.......................................(no files to check)Skipped tox-docs.............................................(no files to check)Skipped pdm-lock-check.......................................(no files to check)Skipped Check markdown files.....................................................Passed
  • Modern Python setup for quality development
    11 projects | dev.to | 7 Jan 2022
    repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 hooks: - id: check-added-large-files - id: check-ast - id: check-builtin-literals - id: check-case-conflict - id: check-docstring-first - id: check-executables-have-shebangs - id: check-json - id: check-merge-conflict - id: check-symlinks - id: check-toml - id: check-vcs-permalinks - id: check-xml - id: check-yaml args: [--allow-multiple-documents] - id: debug-statements - id: detect-aws-credentials args: [--allow-missing-credentials] - id: destroyed-symlinks - id: end-of-file-fixer - id: fix-byte-order-marker - id: fix-encoding-pragma args: [--remove] - id: forbid-new-submodules - id: mixed-line-ending args: [--fix=auto] - id: name-tests-test args: [--django] - id: requirements-txt-fixer - id: trailing-whitespace - repo: local hooks: - id: black name: black entry: poetry run black language: system types: [python] - id: flake8 name: flake8 entry: poetry run flake8 language: system types: [python] - repo: https://github.com/pycqa/isort rev: "5.9.1" hooks: - id: isort args: - --profile - black - --filter-files - repo: https://github.com/adrienverge/yamllint.git rev: v1.26.1 hooks: - id: yamllint args: [-c=.yamllint.yaml] - repo: https://gitlab.com/devopshq/gitlab-ci-linter rev: v1.0.2 hooks: - id: gitlab-ci-linter args: - "--server" - "https://your.gitlab.server" # Need env var GITLAB_PRIVATE_TOKEN with gitlab api read token - repo: https://github.com/commitizen-tools/commitizen rev: v2.17.11 hooks: - id: commitizen stages: [commit-msg] - repo: https://github.com/jumanjihouse/pre-commit-hooks rev: 2.1.5 # or specific git tag hooks: - id: forbid-binary - id: shellcheck - id: shfmt
  • TIL: Use pre-commit hook - the framework
    7 projects | dev.to | 14 Jun 2021
    shellcheck (jumanjihouse/pre-commit-hooks)

What are some alternatives?

When comparing commitizen and pre-commit-hooks you can also consider the following projects:

poetry-dynamic-versioning - Plugin for Poetry to enable dynamic versioning based on VCS tags

markdownlint-cli - MarkdownLint Command Line Interface

pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.

bandit - Bandit is a tool designed to find common security issues in Python code.

semantic-versioning-in-python-with-git-hooks

safety - Safety checks Python dependencies for known security vulnerabilities and suggests the proper remediations for vulnerabilities detected.

cz-cli - The commitizen command line utility. #BlackLivesMatter

gitleaks - Protect and discover secrets using Gitleaks 🔑

python-semver - Python package to work with Semantic Versioning (https://semver.org/)

gitlab-ci-linter

release-please - generate release PRs based on the conventionalcommits.org spec

pre-commit-hooks - Some out-of-the-box hooks for pre-commit