自分のGitを使うときの自動化スクリプトをまとめたリポジトリです。 利用しなくなりデータも残っていないブランチを消したり、 commitlintの設定をまとめたりしています。
flake.nixのinputsに追加します。
{
inputs = {
git-hooks.url = "github:ncaq/git-hooks";
};
}home-managerのmodulesとして有効化します。
{
imports = [ inputs.git-hooks.modules.homeManager.default ];
programs.git-hooks.enable = true;
}inputs経由でアクセスしないと無限再帰になりやすいです。
commit-msg: commitlintによるコミットメッセージの検証post-checkout:git lfs post-checkoutへの委譲post-commit:git lfs post-commitへの委譲post-merge:git lfs post-mergeへの委譲とマージ済みブランチの自動削除pre-push:git lfs pre-pushへの委譲
core.hooksPathを共通hooksへ固定すると、
git lfs installが.git/hooksへ設置するhooksは実行されなくなります。
その代わりに上記のhooksが同名のgit lfsサブコマンドへ委譲することで、
LFSを使うリポジトリでも通常通り動作します。
hooksはgit-lfsをPATHに含めてラップされているため、
利用側で別途git-lfsをインストールする必要はありません。
LFSを使わないリポジトリではgit lfsのhookサブコマンドは即座に何もせず終了するので、
リポジトリごとの設定は不要です。
なおgit lfs installが行うもう1つの仕事であるfilter.lfs.*の設定は、
このリポジトリの管轄外です。
home-managerではprograms.git.lfs.enable = true;を設定してください。