Help us understand the problem. What is going on with this article?

git-secretsをSourceTree (Macintosh)で使えるようにする手順

More than 1 year has passed since last update.

背景

目的

この辺にあるように秘密情報のGitプッシュ・公開を防ぐために、git-secrets (https://github.com/awslabs/git-secrets) を導入したときのことです。

【2018/2/25追記】「GitHub に AWS キーペアを上げると抜かれるってほんと???試してみよー!」によると公開後13分後から幾つかのアクセスがあったそうです。

課題

git-secrets をインストール後に、SourceTreeでプッシュしようとすると、秘密情報が入ってないpushでもエラーを吐くようになりました。

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 を使う」の「SourceTreeなどを使っているなら」部分の設定ができていない様子。

今回の主題

タイトルのとおりですが、git-secrets導入に際して、SourceTreeでGitを使い続けるための具体的な手順をまとめておきます。
(2018.7.30追記) コメントで教えて頂いたbrewでGitインストールして、SIP設定をパスできるアプローチはこちらです。

環境条件

  • macOS Sierra version 10.12.3
  • SourceTree version 2.3.1
  • Git version 2.10.1 (Apple Git-78)

手順概要

  1. MacintoshのGitコマンドのファイルディレクトリに git-secrets をリンクする
  2. SourceTreeが利用するGitを「システムのGit」を使用するに変更する

概要と書くとこうなるのですが、意外に付帯する作業があったので、書き出していきます。

設定

[手順1] MacintoshのGitコマンドのファイルディレクトリに git-secrets をリンクする

Gitの場所を確認

git の場所を確認しておく -> /usr/bin/git

$ which git
/usr/bin/git

つまり、/usr/bin/git-secrets をリンクすると良いことになります。

git-secretsの場所を確認

git-secrets の場所を確認しておく -> /usr/local/Cellar/git-secrets/1.2.1/bin/git-secrets

$ which git-secrets
/usr/local/bin/git-secrets
$ readlink git-secrets
/usr/local/Cellar/git-secrets/1.2.1/bin/git-secrets

あとは、

cd /usr/bin
sudo ln -s /usr/local/Cellar/git-secrets/1.2.1/bin/git-secrets

で、終了かと思いきや、/usr/local/usr/bin へのリンクはsudo しても拒否されてしまいます。ですので、準備はまだまだ続きます。

System Integrity Protecton(SIP)を無効にする

El Capitan以降のOSでSystem Integrity Protecton(SIP)という機能が追加されセキュリティが強化されたとのことで、これを一旦無効にしてあげる必要があります。

  1. command + r を押したままでMacを起動させ、リカバリーモードで立ち上げる
  2. ヘッダメニューの「ユーティリティ」から「ターミナル」を立ち上げる
  3. ターミナルでSIPコマンド csrutil disable を打つ

git-secretsを/usr/bin/にリンクする

SIPが無効化されたら、いよいよgit-secrets を/usr/bin/にリンクします。

cd /usr/bin
sudo ln -s /usr/local/Cellar/git-secrets/1.2.1/bin/git-secrets

System Integrity Protecton(SIP)を有効にする

目的のリンクがはれたら、SIPを有効にし直します。

  1. command + r を押したままでMacを起動させ、リカバリーモードで立ち上げる
  2. ヘッダメニューの「ユーティリティ」から「ターミナル」を立ち上げる
  3. ターミナルでSIPコマンド csrutil enable を打つ

[手順2] SourceTreeが利用するGitを「システムのGit」を使用するに変更する

システムのGitを選択する

「SourceTree」の「環境設定」を開きます。更に「Git」タブを選択します。
スクリーンショット_2017-02-07_14_44_59.png

「システムのGitを使用する」をクリックして、git選択画面にいきます。 
スクリーンショット_2017-02-07_14_45_36.png

/usr/bingit を選択し、「開く」をクリックします。ここで、同じ階層に先程リンクしたgit-secrets も確認できます。

環境設定の画面に戻るとシステムのGitが選択されていることがわかります。

スクリーンショット_2017-02-07_14_45_41.png

これで、Gitをプッシュし直すとエラー無しでプッシュすることが出来ました。

まとめ

ただリンクするにも意外とやることがあったので、簡単にまとめてみました。

yamaryu0508
Kintone Evangelist@Kintone
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした