❗️

GitHub Desktopでgit: 'secrets' is not a git commandとエラーが出る

2022/04/24に公開

brew でインストールしている git-secrets へのシンボリックリンクを、GitHub Desktopのパッケージ内に作成します。

$ ln -s /usr/local/bin/git-secrets /Applications/GitHub\ Desktop.app/Contents/Resources/app/git/libexec/git-core/git-secrets

git-secrets を導入している環境で、以前も同様のエラーが発生したことがありました。僕の環境では2022年に入り、何かの加減で再発しました。

問題はおそらくGitHub Desktopに同梱されている git から見た場合、 secrets というサブコマンドが見当たらない一方で、フックが書かれているためエラーになっていると思います。

.git/hooks/pre-commit
#!/usr/bin/env bash
git secrets --pre_commit_hook -- "$@"

コマンド履歴にあった以前の解決法を試しましたが、今回は効果がありませんでした。ディレクトリの構成か何かが変わったようです。

$ ln -s /usr/local/bin/git-secrets /Applications/GitHub\ Desktop.app/Contents/Resources/app/git/bin/git-secrets

コマンドラインより見やすいため、GitHub Desktopを日常のワークフローに組み込んで使用しており困っていました。GitHub Desktopのパッケージの内容を表示し、ツリーを探索して解決できました。

Discussion