【Git】MacでSourceTreeを用いて差分ファイルを取得する方法

こんにちは。ロジカルスタジオのノートです!Gitとは未だに格闘中の日々を過ごしています。

そんなGitと格闘中の日々の中で、「差分取得」について良い方法があったので、

今回は「MacでSourceTreeを用いて差分取得をする」という所に焦点を当てて書いていきたいと思います。

差分を取るための準備

手段は様々だと思いますが、今回は「Mac」「SourceTree」を用いてやっていきたいと思います。

ファイルの作成

まず、「export_diff.sh」というファイルを作成します。中身はこのように記述しておいてください。

#!/bin/sh
git checkout-index -f --prefix=archive/ $1 `git diff --name-only $1 $2`

作成したらそのファイルを適当なディレクトリに置いて下さい。

カスタムアクションの追加

次にSourceTreeのカスタムアクションを追加していきます。

画面左上の「SourceTree」から「環境設定」→「カスタムアクション」を開いて、追加を押すとこのような画面になるかと思われます。

「メニューキャプション」は何でも良いですが、僕はわかりやすいように「差分取得 – diff」と入れています。

「実行するスクリプト」には先ほど作成した、export_diff.sh」が置かれているディレクトリのパスを入れてください。

「パラメータ」「$SHA」を指定してください。

上記の項目を入力すればOKで、カスタムアクションの追加は完了です。

カスタムアクションを登録する

最後にカスタムアクションを登録します。

このカスタムアクションの登録をしないと、カスタムアクションの実行時にエラーが出てしまうので、必ず登録しておきましょう。

そのためにまず、ターミナルで差分を取得したいファイルが存在するディレクトリに入ります。

これは人によって違うので、適宜変更してくださいね。

Users/note/Downloads/test/

その後、下のコードを打ち込んでエラーが出なければOKです。

chmod +x export_diff.sh

どういう風になっているかといいますと、

「chmod(ファイルやディレクトリのアクセス権限の変更させてくださーい)」

「+x export_diff.sh(export_diff.shの実行権限を追加して、使えるようにしまーす)」

という感じです。

差分ファイルを取得する

では早速、差分ファイルを取得していきたいと思います。

SourceTreeの履歴から、どのバージョン間の差分を取得対象にしたいかを選択します。 起点と終点のバージョンをそれぞれ commandキーを押しながらクリックして、 バージョンを2つ選択状態にします。

そして、右クリックをして、「カスタムアクション」→「差分取得 – diff(メニューキャプション)」を押します。

すると、フォルダ内に「archive」というフォルダが出来上がっていると思います。

「archive」を開いてみると、、

その中に差分ファイルが入っているはずなので、

煮るなり、焼くなり、圧縮するなり、納品するなり、ご自由にお使いください。

差分ファイルを出す時に自動的に圧縮もかけて欲しい、

という欲張りさんなアナタはコチラの記事↓を参考にしてみると、良いかと思われます。

タグの追加

ついでに、コミットしてからしばらく時間が経った後でも、

差分取得作業をより簡単にするためのちょっとしたテクニック紹介します!

それは「タグの追加」です。

いちいち、「このコミットは◯◯月◯◯日のものだ!!」なんて全部覚えてられないですよね。

なので、コミット時に「◯◯月◯◯日納品時点」や「海外向け対応2次リリース版」などのタグを追加し

重要なポイントとなるバージョンに、わかりやすい名称のタグをつけておくと、 のちほど履歴を振り返った時に差分取得の起点と終点を判断しやすくなります。

あとは、先ほど解説した方法でバージョンを選択し、カスタムアクションで差分取得をするだけです!

最後に

「差分取得」は大事です。

例えば、差分だけを取得して納品する際や、納品する際に不要なファイルを削除したい時など、

そういった課題や要望があれば、すぐに差分取得をできるようにしておかないといけないので、覚えておいて損はないです。

また、今回紹介した方法にも出てきましたが、SourceTreeには「カスタムアクション」という、

業務を効率化してくれる便利な機能が備わっていますので、ぜひ有効利用してみてください。

準備の段階においてMacだとターミナルを弄らないといけないですが、ディレクトリへ入って権限を付与するだけなので頑張りましょう!

また、差分取得をする際には「タグ機能」を使いこなすと効率アップに繋がるので、

節目節目で常にタグの追加を習慣化しておくことをオススメします!