SourceTreeの使い方 - 初心者が習得すべき基本操作(diff, stash, tag, revert, cherry-pick)

286
13
381

GitクライアントのSourceTreeソースツリーは無料で使えるGitアプリケーションとして人気があります。「SourceTreeの基本的な使い方はバッチリ! だけど、まだまだ使っていない機能があるなぁ」なんて人も多いのではないでしょうか? そんな人へオススメの知っておくと便利な機能を5つ紹介します。

※本記事は2020年現在のmacOS 10.15、SourceTree 3で解説しています。Windows版のSourceTreeでも同じ手順で利用できます。

はじめに - SourceTreeとは?

SourceTreeはGit / MercurialのGUIクライアントで、Atlassian社から無償で提供されています。WindowsとmacOSで使用でき、グラフィカルでシンプルなUI(ユーザーインターフェイス)のためGit初心者でも容易に操作することが可能です。

1. diff - 差分を見る

diffを行うことである時点のコミットと、別のコミットとの差分を見ることができます。

差分を見たいコミットの片方を左クリックで選択しておきます。

差分を見たいコミットのもう片方を、Ctrlキーを押しながら左クリックします。

差分が表示されました。簡単に見れて便利ですね。

もちろん、ブランチをまたがっていても差分を見ることができるので、ブランチをマージする前に見ておくとコンフリクトするかの確認などできて良いかもしれません。

2. stash - 一時的に作業状態を保管しておく

現在の作業をいったん置いておいて、別のブランチでの作業を行いたいことはよくあると思います。 ですが、コミットするにはちょっと作業が中途半端なことはありますよね。そんな時はstashを使用すると便利です。

[スタッシュ]アイコンをクリックします。

適切なメッセージを入れOKを押します

※「ステージされた変更を残す」にチェックを入れると作業状態は残ったままになりつつさらに保管されます。

左側メニューの[スタッシュ]へ作業状態が保管されます。

作業を元に戻したくなったら、左側メニューの[スタッシュ]から元に戻したい作業を選択して右クリックして「適用」を選びます。

※「適用後に削除」にチェックマークを入れると、スタッシュされていた変更は削除されます。

3. tag - コミットにタグをつける

Gitの履歴が長期間に及ぶと、Gitのログは膨大になって行きます。リリースなど重要なタイミングでのコミットにタグをつけることで後ほどの参照が簡単になります。また、GitHubなどへタグをプッシュしておくと他のメンバーとの共有が可能です。

タグを作成したいコミットを履歴上から右クリックし、[タグ]を選びます。

タグの設定を行います。下記の設定を行ってから[タグを追加]ボタンを押下します。

  1. [タグ名]の部分に設定したいタグ名を指定します。「/」(スラッシュ)で区切ると、SourceTreeでツリー状でのタグの管理が可能になります。
  2. [メッセージ]の部分にはタグ名だけで分からない内容などを補います。
  3. [コミット]の部分には指定のコミットを選んでおきます (この時作業コピーの親を選ぶと、右クリックで指定した箇所とは違う位置へタグが付く可能性もあるので要注意です)

左側のメニューと履歴上にタグ表示が出ます。タグをクリックするとタグを付けたコミットへ画面がスクロールし移動できます。さらに、そのタグを右クリックすると[詳細][現在の内容とのDiff]など見ることができます。

4. cherry-pick - 別ブランチのコミットを取得する

Gitではマージやリベースなどで別ブランチの状態を取り込むことができますが、取り込む単位をコミット単位で可能なのがcherry-pickです

取得したいコミットを選んで右クリックし、[チェリーピック]を選びます。

表示されたダイアログで[続行]ボタンを選びます

同じコミットが、現在のブランチへコミットされました。

5. revert - コミットした内容を打ち消すコミットを作成する

revertはあるコミットを打ち消すコミットを簡単に作成できます(SVNのrevertとは別の機能です) 。

打ち消しを行いたいコミットを右クリックし、[コミットを適用前に戻す]メニューを選択します。

表示されたダイアログで[OK]ボタンを選びます

打ち消すコミットが作成されました。

おわりに

SourceTreeは多くのメニューやオプションがあり、黒い画面を使わずとも簡単にGitを使うことができて便利です。今回紹介した機能以外もたくさん機能があるので、習得すると仕事がはかどります。

ICSではGitを活用し効率的な開発/運用ワークフローに日々取り組んでいます。以下の記事もぜひご覧ください。

※この記事が公開されたのは6年4ヶ月前ですが、 今年3月に内容をメンテナンスしています。