no-or-toonのブログ

よくわからぬことをほざくブログ

Github DesktopとSourcetreeの違いについて

アドベントカレンダー、18日目の記事です。

なにかの Advent Calendar 2016 - Adventar


Gitでのバージョン管理をより行いやすくするために作られたGUIがいくつか存在します。

このうち、ウェブサービスGitHubと連携をとれるもので著名なものに SourceTreeGitHub Desktop があります。

双方のGUIがどう違うのか、抽象的ながら比較してみます。

コミット

まずはコミットですが、下の画像はそれぞれSourceTreeとGitHub Desktopの画面をスクショで記録したものです。(画像に一部化加工をしてあります)

いずれも、左枠にプロジェクト名、中心枠に変化のあったファイルの一覧、右図にファイルの変更箇所が表示されています。しかし、ここだけでも両者には違いがあります。GitHub Desktopではコミットするファイルをチェックボックスで選択しますが、SourceTreeではIndexという枠に対象ファイルをステージ(あげて)選択します。

また、SourceTreeではコミットをする場合、タブの「コミット」を、GitHub Desktopでは画面上部の「Changes」をクリックすれば行うことができます。

f:id:no-or-toon:20161218150029p:plain:w350f:id:no-or-toon:20161218133911p:plain:w350

プッシュ

プッシュの違いについて紹介します。

SorceTreeでは、赤枠の「プッシュ」を押すことでリモートリポジトリにプッシュできます。そのままですね。問題はGitHub Desktopですが、こちらでは「プッシュ」の表記がなく、代わりに「Publish」もしくは「Sync」という右上のボタンでプッシュすることができます。この「Sync」、後述の「プル」を同時に行ってくれるという便利なボタンです。ちなみに一度「Publish」ると以後そのブランチでは「Sync」の表記になるようです。

f:id:no-or-toon:20161218141539p:plain:w350f:id:no-or-toon:20161218141626p:plain:w350

フェッチ/プル

フェッチ・プルの違いについて紹介します。ここでは機能面で両者に大きな違いがあります。

まずはSourceTreeですが、図の赤枠で囲まれた部分で「フェッチ」もしくは「プル」を行います。画像では「フェッチ」を選んだ状態を表していますが、リモートリポジトリに変化があったことが示されています。

一方、GitHub Desktopでは右上の「Sync」を押すことでリモートリポジトリの状態とローカルリポジトリを同期させることができます。ここで注意点ですが、GitHub DesktopにはSourceTreeやGitのように「フェッチ」がなく、上記の通り「Sync」で「プル」を行うことになります。

f:id:no-or-toon:20161218135828p:plain:w350f:id:no-or-toon:20161218135929p:plain:w350

まとめ

SourceTreeとGitHub Desktopの比較を簡単にまとめてみます。

SourceTreeと比較して、GitHub DesktopではGitの基本的な操作(コミット、プッシュ、プル)を行うことができ、表示される情報も簡素なのでとっつきやすいと思われます。しかし、本当に最低限の項目だけ用意されているため、例えばフェッチとプルを使い分けたい場合などの操作には別のGUIを用いるかコマンドで行う必要があります。また、Gitコマンドの表記とボタンの表記が違うため、所望する操作について調べる際には苦労するかもしれません。

結論としては、小規模であったり重要でない制作物のプロジェクトには、GitHub Desktopを使っても支障はないと思われます。逆に、複数人による制作物のバージョン管理にはSourceTreeのほうが向いていると考えられます。

もっと言ってしまえば、自分たちの好きな形でやればいいんじゃないでしょうか。