🏀

Sourcetreeが好きだと叫びたい

2022/12/03に公開

はじめに

今日(2022年12月3日)は何の日かご存じでしょうか?
そう!映画 THE FIRST SLAM DUNKの公開日ですね!
なので、私がスラムダンクと同じくらい大好きなツール、「Sourcetree」について語らせて頂きます。
https://www.sourcetreeapp.com/

SourceTreeとの出会い~現在まで

さかのぼること約7年前、それまではSVN(集中型バージョン管理システム)しか触ってこなかった私ですが、Git(分散型バージョン管理システム)との出会いと共にSourcetreeを使い始めました。
当時はGitに慣れることに必死で、Sourcetreeの良さが全く分かりませんでした。
なんなら、チェックアウトして変更してプッシュするだけならSVNとあんまり変わらんからGUIとかいらんやろ、CUIのほうがカッコイイやろ、とか思ってました。
しかし、1年、2年と経つにつれてGitに慣れてきたとともに、Sourcetreeの活用方法も分かり、現在では私にとってなくてはならないツールになりました。

何がそんなにいいのか?

ということで、Sourcetreeの魅力を完全に個人的な視点で紹介したいと思います。
※Sourcetreeの使い方は解説しません。使い方を知りたい方は公式のチュートリアルからどうぞ。
※Sourcetree以外のツールは使ったことないので、そんな機能GUIなら当たり前やろ、というツッコミが来そうですが、GUI全般機能として捉えて頂けたら幸いです。

樹形図

最大の魅力といえば樹形図です。(Sourcetreeの名前の由来?)
これを最初に見たときはまったく訳が分からず、なんのために存在しているのか分かりませんでしたが、今では安全に開発するためになくてはならないものになりました。
樹形図
樹形図をパッと見たときに、

  • ブランチの元
  • マージ先

を知ることができます。
これが分かると、対象のブランチがどのような開発(コミット)を経てきたのかが大体分かります。
そうすると、自分が作ったブランチでなくても、他のブランチが何をしているのかを大まかに把握することができ、キャッチアップが容易になります。
特に一つのリポジトリ内で複数のプロジェクトが走っている状態など、ブランチが混在するような状況で真価を発揮します。

ブランチツリー

画面左側にあるツリーですね。
ブランチの一覧みたいなもので、どんなブランチがあるかがすぐに分かります。(ブランチの命名規則があることが前提ですが。)
ローカルブランチとリモートブランチで分かれていて、チェックアウトする際も対象ブランチをダブルクリックするだけでチェックアウトできてしまいます。
また、マージやリベースも対象さえ分かっていれば、コンテキストメニューから操作ができてしまいます。
慣れるまでに時間がかかりますが、慣れてしまえば樹形図と併せて確認しながら作業をすることで、ミスることなく安全に素早くマージやリベース作業ができます。
ブランチツリー
また、hoge/fuga/piyoのようにブランチ名にスラッシュを入れると、ディレクトリ階層のような表示になります。
これが地味に便利で、ブランチがごちゃごちゃになるのを防げるので、個人的にはブランチの命名規則に採用したいくらい便利な機能です。

差分(Diff)

樹形図で選択されているコミットと、そのコミットのひとつ前(または複数選択したコミット間)の差分が画面右下に表示されます。
これもかなり便利で、軽くコミットの差分を確認したいときに重宝しています。
差分(Diff)
もちろんGitHubやIDEでも差分を確認できますが、いちいちチェックアウトしないといけなかったり、対象のブランチ(コミット)を探さないといけなかったりします。(いろいろなやり方はありそうですが。。)
これを樹形図を見ることで対象がすぐに分かり、樹形図上でコミットを選択することで差分を軽く確認でき、すぐに次のアクション(マージやリベースなど)につなげることができます。
また、Diffツールは外部ツールも連携できるので、例えば競合があった場合に自分の使い慣れたDiffツールを使うことで、そのツールで競合を解決しつつそのままプッシュ、という流れがスムーズにできます。(私はWinMergeを連携しています。)

さいごに

上記に挙げた他にも、細々便利で使いやすい機能がたくさんありますが、全て列挙しているとガイドブックみたいになりそうなのでここまでとさせて頂きます。
(あくまで個人的に)Sourcetreeの代表的な使い勝手の良さを紹介させて頂きましたが、少しでも参考になったらうれしいです。
拙い記事ですが、ここまで読んで頂きありがとうございました。

BABYJOB テックブログ

Discussion