可插件扩展的 JavaScript 代码检查工具,用于发现问题代码模式,并可自动修复其中不少问题。
sds/overcommit
一款可配置的 Git hook 管理工具,在提交、推送等 Git 事件时运行检查与脚本。
- Star
- 4,005
- Fork
- 291
- 未关闭 Issue
- 34
- 最近提交
- 20小时前
这是什么?
Overcommit 为代码仓库统一管理 Git hook,让 lint、测试、格式化等检查在 pre-commit、commit-msg、pre-push、post-checkout 等节点自动运行。每个仓库通过 .overcommit.yml 进行配置,可以启用或禁用单个 hook、指定其作用的文件范围,并调整并行执行和失败处理等选项。
项目内置了大量 hook,覆盖 Ruby(RuboCop、RSpec)、JavaScript(ESLint、Stylelint)、Python(Pylint、Flake8)、Go、PHP、Java、Shell 等语言和工具,并提供去除行尾空白、检测合并冲突标记、限制文件大小等通用检查。团队既可以用 Ruby 编写仓库专属的 hook,也可以在不写 Ruby 代码的情况下,直接把已有的脚本注册为 hook。
配置可以通过版本控制共享,个人则可以用 .local-overcommit.yml 做本地覆盖。Overcommit 还会记录 hook 代码和配置的签名,当他人修改后,在运行前给出提示。
核心功能
- 01支持 pre-commit、commit-msg、pre-push、post-checkout 等多种 Git 事件。
- 02内置大量常用语言的 lint 和测试工具 hook。
- 03无需编写 Ruby 代码,即可把已有脚本接入为 hook。
- 04可按 hook 设置文件过滤、分支排除和并行执行。
- 05提供 --run 模式,可在 CI 中检查整个仓库。
适用场景
- 团队仓库中每次提交前自动运行 RuboCop 或 ESLint。
- 阻止推送到受保护分支,或拦截含有合并冲突标记的提交。
- 在 CI 中运行与开发者本地提交前相同的检查集合。
快速上手
- 1
通过 RubyGems 安装 overcommit gem
gem install overcommit - 2
进入你的仓库目录并在需要时初始化 Git
git init - 3
在仓库中安装 Overcommit 钩子
overcommit --install
使用前须知
- 部分钩子依赖第三方工具(例如 scss_lint),需要你自行安装。
- 需要 Ruby 环境,要求 *nix 系统上 Ruby 2.6+,Windows 仅提供尽力而为的支持。
收录于专题
标签
常见问题
- overcommit 是什么?
- 一款可配置的 Git hook 管理工具,在提交、推送等 Git 事件时运行检查与脚本。 Overcommit 为代码仓库统一管理 Git hook,让 lint、测试、格式化等检查在 pre-commit、commit-msg、pre-push、post-checkout 等节点自动运行。每个仓库通过 .overcommit.yml 进行配置,可以启用或禁用单个 hook、指定其作用的文件范围,并调整并行执行和失败处理等选项。
- overcommit 可以免费使用吗?用的什么许可证?
- overcommit 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- overcommit 还在维护吗?
- 活跃维护中。overcommit 最近一次提交是在 2026年11月6日。
- overcommit 适合用来做什么?
- 团队仓库中每次提交前自动运行 RuboCop 或 ESLint。 阻止推送到受保护分支,或拦截含有合并冲突标记的提交。 在 CI 中运行与开发者本地提交前相同的检查集合。
- overcommit 怎么安装和运行?
- 通过 RubyGems 安装 overcommit gem: gem install overcommit 进入你的仓库目录并在需要时初始化 Git: git init 在仓库中安装 Overcommit 钩子: overcommit --install
- 在哪里获取 overcommit?
- 源代码和安装说明在 GitHub 上:https://github.com/sds/overcommit
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Rust 代码检查工具,内置 800 多条 lint 规则,用于发现常见错误并改写为更地道的写法。
一款 Python 静态代码分析工具,无需运行代码即可检查错误、执行编码规范并发现代码异味。
一款快速、可配置的 Go 代码检查工具,可直接替代 golint,并支持自定义规则和输出格式。
一款 Python 代码检查与格式化工具,用于检测并删除未使用的 import 语句。
一个用于管理和运行多语言 pre-commit 钩子的框架,在每次 Git 提交前检查代码。