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

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

- [AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ](http://qiita.com/tmknom/items/303db2d1d928db720888)
- [AWSアカウント作成後の初期設定(セキュリティ設定)](http://qiita.com/0084ken/items/0a49b24bc89ce01842b5)
- [クラウド破産しないように git-secrets を使う](http://qiita.com/pottava/items/4c602c97aacf10c058f1)
- [初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。](http://qiita.com/mochizukikotaro/items/a0e98ff0063a77e7b694)

【2018/2/25追記】「[GitHub に AWS キーペアを上げると抜かれるってほんと？？？試してみよー！](https://qiita.com/saitotak/items/813ac6c2057ac64d5fef)」によると公開後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 を使う](http://qiita.com/pottava/items/4c602c97aacf10c058f1)」の「SourceTreeなどを使っているなら」部分の設定ができていない様子。

## 今回の主題
タイトルのとおりですが、```git-secrets```導入に際して、SourceTreeでGitを使い続けるための具体的な手順をまとめておきます。
（2018.7.30追記） コメントで教えて頂いた```brew```でGitインストールして、SIP設定をパスできるアプローチは[こちら](https://dev.classmethod.jp/cloud/aws/startup-git-secrets/#toc-sourcetree)です。

### 環境条件

- 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](https://qiita-image-store.s3.amazonaws.com/0/43383/83ece16c-057c-e019-230e-c2d736c15b56.png)

「システムのGitを使用する」をクリックして、```git```選択画面にいきます。　
![スクリーンショット_2017-02-07_14_45_36.png](https://qiita-image-store.s3.amazonaws.com/0/43383/04e3eaf8-5e5c-b710-0482-aab4b8220e0a.png)

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

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

![スクリーンショット_2017-02-07_14_45_41.png](https://qiita-image-store.s3.amazonaws.com/0/43383/eda3e9cc-5683-4164-23b6-3a550637a833.png)

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

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