2022/04/28
SourcetreeユーザーがGitHub Desktopを使ってみた話
目次
はじめに
こんにちは!入社3年目の周です。
みなさんはGitをGUIで操作できるクライアントツールを使ってますか?SourcetreeとGitHub Desktopが人気だと思いますが、私は普段の仕事でSourcetreeを使っているので、GitHub Desktopについてはあまりよく知りませんでした。アトラスではホワイトリストに登録されているツールであれば自由にインストールして使えるため、GitHub DesktopとSourcetreeを比較してみることにしました。
今回は、Gitでよく使う以下の機能について比較しました。
- クローン
- プル&フェッチ
- ブランチ操作
- コミット&プッシュ
- コンフリクト解決
環境
- macOS Big Sur
- Sourcetree 4.1.2
- GitHub Desktop 2.9.14
クローン
クローンとはリモートリポジトリをローカルリポジトリとして手元のマシンへコピーする操作です。
Sourcetree
SourcetreeでGitHubのアカウントとパスワードを設定すると、下記画像のようにリモートリポジトリ一覧が表示されます。その右のクローン
リンクを押すと簡単にローカルリポジトリとしてコピーできます。
GitHub Desktop
GitHub Desktopでは、あらかじめ連携させておいたGitのアカウント情報を利用して、クローンできるリポジトリ一覧が自動で取得・表示されます。リポジトリを選択して右下のClone
ボタンを押すとローカルにコピーします。
両方とも簡単にローカルにコピーできますが、Sourcetreeは初期設定でアカウントとパスワードの再設定が必要です。GitHub Desktopは連携させておいたGitのアカウント情報を利用してダウンロードすることができます。
プル&フェッチ
プルとフェッチはリモートリポジトリの内容を取得して、ローカルリポジトリに反映する操作です。
Sourcetree
Sourcetreeではリポジトリの画面にプル
とフェッチ
の二つボタンがあります。画面の左ペインのブランチ一覧から対象のブランチを選択し、上のメニューバーにあるフェッチまたはプルボタンをクリックするとリモートの変更をローカルに反映できます。
GitHub Desktop
GitHub DesktopはSourcetreeと違って、プルとフェッチボタンが一つになっているFetch origin
というボタンがあります。
プル&フェッチについては、両方とも簡単にできますが、Sourcetreeは他のリポジトリをフェッチする場合に一回リポジトリ一覧画面に戻って、また他のリポジトリを選択する必要があります。GitHub DesktopならCurrent Respository
から選択できます。
ブランチ作成
ブランチ作成は1つのプロジェクトから分岐させることにより、プロジェクト本体に影響を与えずに新しい作業用の履歴を作るという操作です。
Sourcetree
Sourcetreeではブランチを新規作成するときに上側のツールバーにあるブランチ
をクリックして、出てきた新規ブランチ
ダイアログにブランチ名を入力します。
GitHub Desktop
GitHub Desktopも上側にあるBranch
をクリックして、出てきたCreate a Branch
ダイアログにブランチ名を入力します。
ブランチ切り替え
ブランチ切り替えとは今作業しているブランチから退出して、新たに他のブランチで作業をしたい場合の操作です。
Sourcetree
Sourcetreeでは左側のサイドメニューのリモート
下にあるブランチ名をクリックすると、ブランチが切り替わります。
GitHub Desktop
GitHub Desktopでは二つ方法があります。
一つ目はSourcetreeと同じようにブランチ名から切り替える方法です。Current Branch
をクリックするとブランチの一覧が出てきます。その中にあるブランチ名をクリックするとブランチが切り替わります。
二つ目は作成したプルリクから切り替える方法です。Current Branch
をクリックして、出てきたダイアログの上のPull Requests
を押すと、作成したプルリク一覧が出てきます。個人的にブランチ名から探すより便利だと思います。
コミット&プッシュ
コミットとはファイルなどの編集作業をローカルリポジトリに記録する操作です。
プッシュとはローカルリポジトリに記録した変更をリモートリポジトリに反映する操作です。
Sourcetree
Sourcetreeではファイルを更新すると、ファイルステータス
に更新されたファイル一覧が表示されます。 中央ペインのファイル一覧にあるチェックボックスをクリックするとすべてのファイルを、個別にファイルを選択すればコミットしたいファイルだけをインデックスに追加することができます。コミットしてから上側にあるプッシュボタンを押したら、リモートブランチにプッシュできます。
GitHub Desktop
GitHub Desktopでは、コミットまではSourcetreeと同じように、更新されたファイル一覧からファイルを選択してインデックスに追加しますが、プッシュ操作するボタンはコミットするまでツールバーには表示されません。コミットするとFetch origin
の部分がPublish branch
に変わり、そのボタンを押すとプッシュできます。
コンフリクト解決
コンフリクトは簡単に言うと、ファイル上で「自分の作業」と「他人の作業」が重複してしまった状態のことです。
解決する方法としては主に三つの方法があります。
- 相手の変更で解決する
- 自分の変更で解決する
- 手動で解決する
「相手の変更で解決する」は、自分の変更内容を破棄して他人の変更内容を採用することです。
「自分の変更で解決する」は、他人の変更内容を破棄して自分の変更内容を採用することです。
「手動で解決する」は、コンフリクトが発生した部分に<<<<<HEAD
=====
>>>>>>
といった表示が出るため、それを参照しながら解決することです。
Sourcetree
Sourcetreeでは競合したファイルを右クリックすると解決のための操作方法が表示されます。
GitHub Desktop
GitHub Desktopではコンフリクトが発生した場合に、下記画像のようなダイアログが表示されます。Open in Visual Studio Code
のプルダウンをクリックすると、操作方法が表示されます。
まとめ
今回はGitをGUIで操作できるクライアントツールとして、SourceTreeとGitHub Desktopを比較しました。
SourcetreeとGitHub Desktopの両方ともプロダクトバージョン管理の機能が用意されていますが、私は業務の中で他人のブランチを見ることがよくあるので、GitHub Desktopの方が便利だと思いました。
Sourcetreeの方はいろいろな機能を画面上から見ることができ、日本語化することもできるので、初心者におすすめです。
GitHub Desktopの方は英語の画面しかなく、アイコンも少ないので、Gitの使い方に慣れてから使うと操作しやすいかと思います。
この記事を参考に、いろいろなGitクライアントを試してみて頂けたら幸いです!