pre-commit-hooks VS commitizen

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

pre-commit-hooks

git pre-commit hooks that work with http://pre-commit.com/ (by jumanjihouse)

commitizen

Create committing rules for projects :rocket: auto bump versions :arrow_up: and auto changelog generation :open_file_folder: (by commitizen-tools)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
pre-commit-hooks commitizen
3 9
112 2,135
0.9% 5.4%
0.0 9.5
6 months ago 6 days ago
Shell Python
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.

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)

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

What are some alternatives?

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

markdownlint-cli - MarkdownLint Command Line Interface

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

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.

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

gitleaks - Protect and discover secrets using Gitleaks 🔑

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

gitlab-ci-linter

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

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

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