SourceTreeの作業ツリーにある変更差分と未追跡ファイルを消したい場合、
変更差分 → 「コミットまで戻す...」
未追跡ファイル → 「削除」
を実行する必要があり、ファイル数が多くなってきて、変更差分と未追跡ファイルが入り乱れていると、選択するのが結構面倒くさいです。
カスタムアクションを設定すれば、ワンクリックで作業ツリーを綺麗にできます。
1.カスタムアクションのファイルを用意
↓ Githubにカスタムアクションに設定するファイルを上げているのでこちらをクローンするかダウンロードして、任意のフォルダに保存してください。
2.SourceTreeでカスタムアクションの設定
■ Macの場合
メニューから「SourceTree > 環境設定 > カスタムアクション」を選択
■ Windowsの場合
メニューから「ツール > オプション > カスタム操作」を選択
「追加」を選択し、
メニューキャプションに「クリア」と入力(※これがカスタムアクション名になります)
実行するスクリプトに(1)で取得したファイルを指定。
■ Macの場合
「SourceTreeCustomActions/Mac/clean_checkout.sh」
■ Windowsの場合
「SourceTreeCustomActions/Windows/clean_checkout.bat」
※ Windows の場合は、パラメータに「$REPO」と入力してください。
OKを選択してカスタムアクションの設定は完了。
3.Macの場合は実行権限の追加 (Windowsの場合は不要)
Macの場合、実行権限を追加しないと、カスタムアクションの実行時に「launch path not accessible」というエラーが発生してしまうので、ターミナルから以下のコマンドを実行してください。
$ cd "保存したパス"/SourceTreeCustomActions
$ chmod -R +x Mac
4.カスタムアクションを実行
作業ツリーに差分や未追跡ファイルがある状態で、右クリックし
「カスタムアクション > リポジトリのアクション > クリア」
を選択すると、作業ツリーが綺麗な状態になる。
補足説明
カスタムアクション実行時、実際には下記のコマンドが実行されています。
カスタムアクションに指定したファイルに記載されているので、ここを適宜書き換えれば挙動を変更することができます。
git clean -df
git checkout .