問題
GitHub Desktopでコミットしようとしたら次のようなエラーが出た。
状況
- AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ - Qiitaの手順でgit-secretsを導入している
- zshを利用しており、自分で実行する際にはgit-secretsが動作している
原因
これは以下のprehookの実行時に起こっているエラーである。
#!/usr/bin/env bash
git secrets --pre_commit_hook -- "$@"
(このprehookはbrewでgit-secretsを入れる際に定義される。)
GitHub Desktopを実行する際にgit-secretsが読み込めていない。
解決方法
cd /Applications/GitHub Desktop.app/Contents/Resources/git/bin
ln -s /usr/local/bin/git-secrets
解説
GitHub Desktopは自分のパッケージに含まれるGitを使う(システムのGitを使うようにする設定項目は見当たらない)。
git-secretsを使うためにはgitの実体がある階層にシンボリックリンクを貼ればよいので、はる。
GitHub Desktopが利用しているGitのpathの調べ方
GitHub Desktopが利用しているgitの実体は、Gitのprehookの仕組みを使うことで、GitHub Desktopでのコミットの際にpathを出力することで確認ができる。
具体的にはコミットしたいリポジトリの.git/hooks/pre-commit
にwhich git
を書いておく。