← ブログに戻る

SourceTreeからGitSquidへ、15分で移行する

guide migration

SourceTreeからGitSquidへ、15分で移行する

SourceTreeは、ひとつの世代の開発者にとって最初のGit GUIでした。無料で、stagingを視覚的にしてくれて、私たちの多くにとってGitがようやく腑に落ちたのは、このツールのおかげでした。その歴史には敬意を払うべきです。そして、だからこそ離れることが実際以上に大ごとに感じられるのです。このガイドでは、移行の全工程をステップごとに、約15分で解説します。いちばん時間がかかるステップは、APIトークンを2つ作成するところです。

開示事項:この記事はGitSquidの公式サイトに掲載されています。

なぜ人々はSourceTreeを離れるのか

この記事を読んでいるなら、すでに理由はお持ちでしょう。私たちがもっともよく耳にするのは、次の4つです。

  • Linux版がない。 SourceTreeはmacOSとWindowsでしか動作せず、この状況は一度も変わったことがありません。Linuxマシンに乗り換える場合、あるいはチームにLinuxを使う開発者が1人でもいる場合、そこではSourceTreeはそもそも選択肢になりません。
  • 大規模リポジトリでのパフォーマンス。 数千件のcommitを持つリポジトリではUIがもたつきます。branchの切り替えに数秒かかり、ファイルステータスビューは重く、大きなリポジトリでのfetchはアプリ全体を固まらせることもあります。
  • リリースサイクルの遅さ。 SourceTreeのメジャーアップデートは年に1、2回程度で、バグ報告が何か月も放置されることもあります。アプリは動きますが、Atlassianにとって優先度が高くないことは明らかです。
  • Atlassianアカウント。 SourceTreeは歴史的に、ローカルのGitクライアントを使うだけのためにAtlassianまたはBitbucketアカウントの登録を求めてきました。自分のディスク上で主にgit statusを実行するだけのツールにしては、これはいつも「アカウントが1つ多い」と感じられるものでした。

これらはどれも、SourceTreeが悪いツールだという話ではありません。古くなりつつあるツールだという話です。機能ごとの詳しい比較は2026年版 GitSquid vs SourceTreeをご覧ください。この記事はその実践編、つまり「実際にどう移行するか」を扱います。

始める前に:エクスポートするものは何もない

ここが一番驚かれるポイントです。リポジトリの移行手順は存在しません。なぜなら、リポジトリはディスク上のただのフォルダだからです。すべてのbranch、すべてのcommit、すべてのstash、すべてのremote、すべてのhookは.gitディレクトリの中にあり、その状態はすべてGit自身が保持しています。SourceTreeはそれらを一度も所有していませんでした。SourceTreeは、もともとあなたのものであるデータを覗くための窓だったのです。

GitSquidに「SourceTreeのブックマークをインポート」ウィザードがないのも同じ理由です。インポートすべきものが本当に何もないのです。SourceTreeのブックマーク一覧は単なるフォルダパスのリストで、作り直すのに1分もかかりません(後述のステップ2)。

つまり、試すリスクはゼロだということでもあります。SourceTreeをインストールしたままにして、GitSquidに同じフォルダを開かせ、1週間ほど両方を並行して使ってみてください。どちらのツールも同じ.gitデータに対してGitコマンドを実行しているだけなので、戻りたければもう一方のアプリを開き直すだけです。

ステップ1:GitSquidをインストールする(2分)

ダウンロードページにアクセスして、お使いのプラットフォーム向けのビルドを入手してください。

  • macOS:ネイティブarm64。Apple SiliconでRosettaによる遅延はありません。
  • Windows:x64およびネイティブARM64。
  • Linux:x64およびARM64。そう、SourceTreeが一度も対応しなかったあのプラットフォームです。

アカウント作成も、サインイン画面も、テレメトリ同意ダイアログもありません。これだけでも、SourceTreeの初回起動体験とのコントラストは歴然です。アプリを開けばそのままホーム画面で、すぐにリポジトリを開けます。

ステップ2:リポジトリを開き直す(3分)

ホーム画面から、SourceTreeでブックマークしていたのと同じフォルダを開きます。それぞれの場所がはっきりしない場合は、SourceTreeのブックマークウィンドウに各リポジトリのフルパスが表示されているので、そのリストを上から順にたどってください。

開いたリポジトリはホーム画面の最近のリポジトリ一覧に表示され、リポジトリが5件を超えると一覧の上に検索バーが現れるので、ブックマークがどれだけ多くてもキー1つで目的のリポジトリに届きます。各リポジトリはそれぞれのタブで開き、タブの切り替えはほぼ一瞬です。再スキャンもスピナーもなし。長年のSourceTreeユーザーが最初に「おっ」となるのは、たいていここです。

ステップ3:認証情報。唯一の面倒なところ(5分)

ここだけは数分の注意を払う価値があるステップです。レイヤーが2つに分かれており、分けて考えると理解しやすくなります。

pushとpull:Git自身のcredential helper

GitSquidは独自の認証情報ストアを持ちません。Git自身のcredential helperを使います。ターミナルでgit pushを実行したときに応答する、あのosxkeychain、Git Credential Manager、libsecretと同じ仕組みです。実際の確認方法はこうです。ターミナルを開き、いずれかのリポジトリにcdしてgit pullを実行してください。それが何も聞かれずに成功するなら、GitSquidも一切設定なしでpushとpullができます。

もし認証情報を求められたら、認証はGitのhelperではなくSourceTreeの中に保存されていたということです。Gitのレベルで一度だけ直してください(HTTPS用のcredential helperを設定するか、SSHキーを用意します)。そうすれば、GitSquidを含め、マシン上のすべてのツールがその恩恵を受けます。

ホスティングのトークン:設定 → 連携

2つ目のレイヤーは任意ですが、設定する価値があります。設定 → 連携で、GitHub、GitLab、Bitbucketのトークンを追加できます。これらのトークンは、リポジトリピッカー(アプリ内からリモートリポジトリを閲覧してcloneする機能)と、pull request機能を動かします。GitSquidを離れることなく、PRの一覧表示・作成・レビューができるのです。

Bitbucket固有の注意を1つ。SourceTreeユーザーの多くはBitbucketユーザーなので触れておきます。アプリパスワードは非推奨になりました。代わりにid.atlassian.com/manage-profile/security/api-tokensでAtlassian APIトークンを作成し、Atlassianのメールアドレスとともに、Bitbucket連携の設定に貼り付けてください。

ステップ4:SourceTreeの習慣を対応づける(5分)

メンタルモデルはほぼ1対1でそのまま使えます。SourceTreeでの各習慣がGitSquidのどこに対応するかは、次のとおりです。

SourceTreeでの習慣 GitSquidでの対応機能
ファイルステータスビューstagingエリア。hunk単位・行単位のstagingに対応
hunk単位のstage同じ操作に加えて、stageしたい行だけをドラッグで選択可能
ブックマークウィンドウホーム画面の最近のリポジトリ一覧(5件超で検索可能)+タブ
内蔵ターミナルボタンコマンドログ(Cmd/Ctrl+Shift+L)。GitSquidが実行するすべてのgitコマンドをコピー可能な形で表示
カスタムアクションgit hooksエディタ。hookベースの自動化に対応
インタラクティブrebaseダイアログドラッグ&ドロップで並べ替えできるビジュアルrebase

このうち2つは、もう少し詳しく見ておく価値があります。

行単位のstaging。 SourceTreeはhunk単位のstageができましたし、それは当時として本当に先進的でした。GitSquidはさらに一段深く踏み込みます。hunkの中でstageしたい行だけをドラッグで選択し、その行だけをstageできるのです。2つの無関係な変更を分離するためにSourceTreeでhunkを分割した経験があるなら、あの面倒な手順はこれで完全に不要になります。

コマンドログ。 SourceTreeのターミナルボタンは、GUIにできないことをやるためにシェルへ放り込んでくれるものでした。GitSquidは同じニーズに逆方向からアプローチします。コマンドログ(Cmd/Ctrl+Shift+L)は、アプリがあなたの代わりに実行するすべてのgitコマンドを引数つきで表示し、どの行もコピーできます。GUIが何をしているのかが正確に見え、任意のターミナルでそのまま再実行でき、そして使ううちに、ほとんどのGUIが持ち得なかった最高のGit教師にもなってくれます。

ステップ5:SourceTreeにはなかった、ここで得られるもの

ここまでのステップで機能的には同等になります。その先に待っているのは、SourceTreeには相当するものが存在しない、次のような機能です。

  • Conflict Predictor(無料):merge、rebase、cherry-pickの前に、どのファイルがコンフリクトするかを確認できます。「mergeして祈る」時代の終わりです。
  • ファイルタイムラインスクラバー(無料):任意のファイルの履歴をスライダーでなぞり、commitごとの進化を眺められます。
  • モノレポのスコープ検出(Pro):GitSquidがworkspaceを検出し、リポジトリ全体のノイズに溺れる代わりに、表示を単一のパッケージに絞り込めます。
  • AIによるcommitメッセージとPR説明文(Pro):実際のdiffから生成され、あなた自身のAPIキーと、あなたが選んだプロバイダーを使います。
  • commit前のシークレットスキャン(Pro):APIキーやトークンはcommitの前に検出されます。恥ずかしいforce-pushで取り繕った後ではなく。
  • Linux対応:同じアプリが、SourceTreeが一度も到達しなかったプラットフォームで動きます。
  • 3プラットフォームすべてでネイティブarm64:Apple Silicon、Windows on ARM、ARM Linuxのすべてでネイティブビルドが動作します。

正直に言えば恋しくなるかもしれないもの

公平を期して、2つ挙げておきます。

  • 価格。 SourceTreeは完全に無料で、それこそが最大の強みです。GitSquidには日常のワークフロー(staging、commit、branch操作、merge、Conflict Predictor、ファイルタイムライン)をカバーするFreeプランと、上記の高度な機能のための年額49ユーロのProプランがあります。予算が完全にゼロで、SourceTreeのパフォーマンスが気にならないなら、留まるのも十分筋の通った選択です。
  • Mercurial。 いまだに使い続けている数少ない一人なら:SourceTree自体はずっと前にMercurial対応を打ち切りましたが、それでもまだhgが必要なら、GitSquidは役に立ちません。GitSquidは設計上、Git専用です。

まとめ

移行の全体像はこれだけです。インストールし、フォルダを開き直し、認証情報を一度だけ整え、せいぜい3つほどのボタンの場所を覚え直す。エクスポートもインポーターも、どちらの方向のロックインもありません。そもそもリポジトリは、いかなるGUIのものでもなかったのですから。

SourceTreeは、無料のツールがどれも成し得なかった時代にバージョン管理を視覚化したことで、Gitの歴史に名を残しました。しかし、ツールに感謝しながら、それでも卒業するのは何も悪いことではありません。1週間、GitSquidを並行して試してみてください。合わなければ、SourceTreeはいつものDockにちゃんと残っています。

別のクライアントからの移行をお考えですか?GitKrakenからの移行についても同じガイドを用意しています。

GitSquid Freeをダウンロードして、タイマーをスタートしてください。15分というのはスローガンではなく、約束です。