git-secretsを削除したのにSourceTreeでコミットできない!?
こんにちは、ユウヤです。
今回は、SourceTreeを使うときにgit-secretsをインストールしていると、コミットできない問題について紹介します。
解決方法は2つあって、
・git-secretsをインストールしたまま解決する
・git-secretsをアンインストールして解決する
前者については記事↓があったので、参考にしてください。
git-secretsをSourceTreeで使えるようにする手順
僕が今回紹介する方法は、後者です。
紹介する理由は、前者の方法が少しめんどくさいからです。。。。
過去にAWSで機密情報を使うためにインストールしたけど、もう使わないし、とりあえずSourceTreeを早く使いたいから、などの方は後者でいいと思います。
git-secretsをPCから削除する
以下のコマンドでgit-secretsを削除します。
$ brew uninstall git-secrets
SourceTreeでコミットしてみる
「よし、git-secretsもアンインストールできたし、コミットしてみるか!」
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree commit -q -F /var/folders/xn/1hl03gp55_3df0y1xl37tg900000gp/T/SourceTreeTemp.xNvMuf git: 'secrets' is not a git command. See 'git --help'. Completed with errors, see above
git: ‘secrets’ is not a git command。。。んー、まだエラーが出ます。
どこかに、git-secretsに関する記述が残っているのでしょう、それを削除する必要があります。
エラー文では、「gitに”secrets”コマンドはないよー。」って言われています。
解決方法
実はgitには、.gitconfigという設定ファイルがあります。中身をのぞいてみると、どんなことが書かれているのか理解できます。
まずは、コマンドで書かれていることを確認してみます。
$ git config –list
user.name=y-u-y-a user.email=[ メールアドレス ] core.excludesfile=/Users/yuya/.gitignore_global difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE" difftool.sourcetree.path= mergetool.sourcetree.cmd=/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED" mergetool.sourcetree.trustexitcode=true commit.template=/Users/yuya/.stCommitMsg core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true core.precomposeunicode=true secrets.providers=git secrets --aws-provider secrets.patterns=(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|........... secrets.patterns=("|')?(AWS|aws|Aws)??(SECRET|secret............ secrets.patterns=("|')?(AWS|aws|Aws)?.................... secrets.allowed=AKIAIOSFO.................. secrets.allowed=wJalrXU................
下の方に、secrets.~というものがいくつかありますね。
vimで.gitignoreを開いて、インサートモードで削除していきます。
$ vim ~/.gitconfig
〜省略〜 [secrets] providers = git secrets --aws-provider patterns = (A3T[A-Z0-9]|AKIA|A..................... patterns = (\"|')?(AWS|aws|Aws)?................... patterns = (\"|')?(AWS|aws|Aws)??(............... allowed = AKI........................... allowed = wJalr....................... [init] templatedir = ~/.git-templates/git-secrets 〜省略〜
上記の部分を削除します。(人によって記述されている内容は異なると思います。)
削除できていたら、下記のコマンドで先ほどの記述が消えているはずです。
$ git config –list
これでSourceTreeからもコミットできるようになっているはずです。