Repolode
sds

sds/overcommit

Ruby製の設定可能なGitフック管理ツール。コミットやプッシュなどのGitイベント時に、リンター、テスト、カスタムスクリプトを実行します。

スター
4,005
フォーク
291
未解決の Issue
34
最終コミット
24 時間前

これは何?

OvercommitはリポジトリのGitフックを管理し、pre-commit、commit-msg、pre-push、post-checkoutなどのタイミングで、リンター、テストランナー、フォーマッターといったチェックを自動実行します。フックの動作はリポジトリごとの .overcommit.yml ファイルで設定でき、個々のフックの有効・無効、対象ファイルの指定、並列実行や失敗時の処理などのオプションを調整できます。

Ruby(RuboCop、RSpec)、JavaScript(ESLint、Stylelint)、Python(Pylint、Flake8)、Go、PHP、Java、Shellなどの言語やツールに対応する多数の組み込みフックを備えています。また、末尾の空白、マージコンフリクトマーカー、ファイルサイズをチェックする汎用フックも用意されています。チーム独自のフックをRubyで作成できるほか、Rubyコードを書かずに既存のシェルスクリプトをフックとして登録することもできます。

設定はソース管理を通じて共有でき、.local-overcommit.yml ファイルを使えば個人用の設定で上書きできます。Overcommitはフックのコードと設定の署名も記録するため、他のメンバーによる変更があった場合、フックが次に実行される前に通知されます。

主な機能

  • 01pre-commit、commit-msg、pre-push、post-checkoutなど、さまざまなGitイベントでフックを実行します。
  • 02一般的な言語に対応した、多数の組み込みリンターとテストランナーを備えています。
  • 03Rubyを書かずに、既存のシェルスクリプトをフックとして追加できます。
  • 04フックごとのファイルフィルター、ブランチ除外、並列実行に対応しています。
  • 05--run モードを使って、CIでリポジトリ全体をチェックできます。

ユースケース

  • チームのリポジトリで、コミットのたびにRuboCopやESLintを自動実行する。
  • 保護対象ブランチへのプッシュや、マージコンフリクトマーカーを含むコミットを拒否する。
  • 開発者がコミット前にローカルで実行するものと同じリンタースイートを、CIでも実行する。

クイックスタート

  1. 1

    RubyGems経由でovercommit gemをインストールします

    gem install overcommit
  2. 2

    リポジトリに移動し、必要に応じてGitを初期化します

    git init
  3. 3

    Overcommitのフックをリポジトリにインストールします

    overcommit --install

使う前に知っておきたいこと

  • 一部のフックはサードパーティ製ツール(例: scss_lint)に依存します。これらのツールはご自身でインストールしてください。
  • Ruby環境が必要です。*nixではRuby 2.6以降が必要で、Windowsのサポートはベストエフォートのみです。

収録されている特集

トピック

よくある質問

overcommit とは?
Ruby製の設定可能なGitフック管理ツール。コミットやプッシュなどのGitイベント時に、リンター、テスト、カスタムスクリプトを実行します。 OvercommitはリポジトリのGitフックを管理し、pre-commit、commit-msg、pre-push、post-checkoutなどのタイミングで、リンター、テストランナー、フォーマッターといったチェックを自動実行します。フックの動作はリポジトリごとの .overcommit.yml ファイルで設定でき、個々のフックの有効・無効、対象ファイルの指定、並列実行や失敗時の処理などのオプションを調整できます。
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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト