未分類

git-secretsを削除したのにSourceTreeでコミットできない!?

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からもコミットできるようになっているはずです。

COMMENT

メールアドレスが公開されることはありません。