Git GUI のテレメトリー比較: 2026 年に誰があなたを追跡しているか
ほとんどのデスクトップアプリケーションは利用データを収集します。Git GUI も例外ではありません。本記事では、観測可能なネットワークトラフィックに基づき、4 つの人気 Git クライアント — GitKraken、Fork、SourceTree、GitSquid — のテレメトリー挙動を比較します。数値は各アプリで同じリポジトリを開き、ユーザー操作を最小限にした 24 時間のパケットキャプチャセッションから取得しました。
開示: 本記事は GitSquid のウェブサイトに掲載されています。方法論は詳細に記述してあるので、ご自身で数値を再現できます。
なぜ重要なのか
「テレメトリー」は「あなたが積極的に頼んでいないのにアプリケーションがベンダーへデータを送信する」ことの柔らかい表現です。多くの場合、データは本当に無害です: 匿名の利用カウンター、クラッシュレポート、機能フラグの確認など。時にはそれ以上のものもあります: どのボタンをクリックしたか、どのリポジトリを開いているか、どの機能を試したか。
大半のユーザーにとってこれは問題ではありません。ただし 3 種類のユーザーにとっては厳しい制約となります:
- 規制業界。医療、金融、防衛、政府。IT のレビュープロセスは、識別可能なデータを外部送信するツールを日常的にブロックします。
- NDA / 機密業務。リポジトリ名やブランチ名に顧客や製品情報が含まれている場合、それらをテレメトリー経由で漏洩させるのは現実的な懸念事項です。
- プライバシー意識の高い開発者。どれほど匿名化されていると主張されても、ワークフローのテレメトリーを収集されたくないという人もいます。
方法論
各アプリについて:
- 履歴のない Mac (M2、macOS 15) に新規インストール。
- 1 つのローカルリポジトリで設定 (GitSquid のソースリポジトリ、リモートのない合成クローン)。
- アプリ内でリポジトリを開き、フォーカスしたままアイドル状態で 24 時間放置。
- mitmproxy をトランスペアレントモードで使用してネットワークトラフィックをキャプチャ、証明書はシステムレベルで信頼。
- 送信先ドメインごとにリクエストをカウント。自動更新確認は除外 (別途カウント)。
リポジトリにはリモートが設定されていないため、24 時間のウィンドウ内のあらゆる送信トラフィックは、テレメトリー、ライセンス検証、または自動更新確認のいずれかです。3 つを区別するのは容易です: ライセンス検証は単一のライセンスサーバーエンドポイントを 1 回叩きます; 自動アップデーターは既知のリリースマニフェスト URL を 1 回または 2 回叩きます; それ以外はすべてテレメトリーです。
結果
| ツール | テレメトリーリクエスト / 24h | 自動更新確認 | ライセンス検証 | 送信合計 |
|---|---|---|---|---|
| GitSquid | 0 | 1 | 1 (Pro のみ) / 0 (Free) | 起動時に 1〜2 回、その後 0 |
| Fork | 0 | 2 (マニフェストポーリング) | 0 | 2 |
| SourceTree | ~80 | 2 | 1 (Atlassian サインイン) | ~83 |
| GitKraken | ~140 | 2 | ~24 (1 時間ごとのハートビート) | ~166 |
4 つのアプリのうち 2 つは実質的に何も送信しません。2 つはユーザー操作がなくても 1 日に数十から数百のリクエストを送信します。
リクエストの送信先
GitKraken
24 時間のウィンドウで観測された送信先:
api.gitkraken.com— ライセンスのハートビート、アカウントセッションのリフレッシュ、機能フラグの確認。analytics.gitkraken.com— 利用分析。各ナビゲーション、パネルの開閉、Git 操作のたびにイベントが生成されます。sentry.io— エラーレポート (クラッシュだけでなく警告でも発火)。statsig.com— 機能フラグと A/B テスト評価。logrocket.com一部のセッションで — 有効時のセッションリプレイ。
SourceTree
id.atlassian.com— アカウントセッションのリフレッシュ、定期的に呼び出される。sourcetree.atlassian.com— 機能利用分析。sentry.io— エラーレポート。analytics.atlassian.com— Atlassian 製品横断分析。
Fork
git-fork.com/sparkle— 自動更新マニフェスト。24 時間ウィンドウで 2 回確認。テレメトリーエンドポイントへの接触なし。
GitSquid
github.com/TheMax98000/gitsquid-releases— 自動更新マニフェスト (`latest.json`)。起動時に 1 回取得。v2.7 時点で、この確認は必須であり、ユーザーが無効化することはできません (設定トグルはロードマップ上にあります)。gitsquid.dev/api/validate-license— ライセンス検証。Pro ユーザーのみ起動時に 1 回リクエスト (Free ユーザーはこのエンドポイントに接触しません)。リクエストボディにはクエリパラメータとしてライセンスキーのみが含まれます — マシン ID なし、利用データなし、テレメトリーなし。API に到達できない場合、アプリは最近のキャッシュ済み結果にフォールバックし、その後キーのローカルチェックサム検証にフォールバックします。したがって Pro ライセンスはオフラインでも動作し続けますが、ネットワークが利用可能な場合はオンライン確認がデフォルトの経路となります。- いかなる時点でもテレメトリーエンドポイントへの接触なし。analytics なし、イベントトラッキングなし、クラッシュレポートサービスなし、機能フラグサービスなし。
データの内容
リクエスト数は 1 つの側面です。各リクエストの内容は別の側面です。GitKraken の analytics POST をいくつかサンプリングしました:
- リポジトリパス (フルローカルパス、ハッシュ化されているがソルトがあれば復元可能)。
- 現在チェックアウト中のブランチ名。
- リポジトリ内のコミット数。
- 実行された Git 操作とその頻度。
- 開かれた UI パネル。
- OS、アプリバージョン、画面解像度。
これらのいずれも悪意あるものではなく、GitKraken のプライバシーポリシーで開示されています。しかし NDA 下のユーザーにとって、「現在チェックアウト中のブランチ名」は `feature/customer-acme-bug-fix` をサードパーティのサーバーに漏洩させる可能性があり、これはまさに NDA が一般的に禁止しているものです。
SourceTree のペイロードはより小さく、より匿名化されていますが、それでもリポジトリのフィンガープリントや機能利用イベントを含みます。
オフにできるか?
| ツール | オプトアウト可能? |
|---|---|
| GitKraken | 部分的 — 一部の analytics は無効化可能だがすべてではない (ライセンスのハートビートは必須)。 |
| SourceTree | 部分的 — analytics のオプトアウトは存在するが、アカウントセッションのリフレッシュは必須。 |
| Fork | 該当なし — オプトアウトすべきテレメトリーがない。自動更新は無効化可能。 |
| GitSquid | 該当なし — オプトアウトすべきテレメトリーがない。自動更新確認とライセンス検証はいずれも起動時に 1 回行われ、現時点では設定から無効化できません。両方のトグルはロードマップ上にあります。 |
GitKraken と SourceTree では、「テレメトリーオフ」は「送信トラフィックなし」と同じではありません。ライセンス / アカウントセッションのリフレッシュは引き続き行われます。
IT レビューについて
多くの企業の IT 部門は、デスクトップツールを承認する前にレビューします。彼らが尋ねる質問:
- アカウントを必要とするか? — GitSquid と Fork はいいえ。GitKraken と SourceTree ははい。
- ホームに電話するか? — GitSquid の場合: はい、ただし起動時のみ (更新確認 1 回 + Pro のライセンス検証 1 回)。analytics なし、バックグラウンドの定期トラフィックなし。Fork の場合: 自動更新マニフェストのみ。GitKraken と SourceTree の場合: はい、セッション中ずっと定期的に。
- ライセンス検証はオフライン対応か? — GitSquid の場合: 最初にオンラインで試行し (Pro のみ)、最近のキャッシュ済み結果にフォールバックし、両方とも失敗した場合はローカルチェックサムにフォールバックします。Pro キーはインターネットなしでも動作し続け、ネットワークが利用可能な場合はオンライン確認がデフォルトです。Fork の場合: 買い切りライセンス、検証不要。GitKraken の場合: オンライン必須。
- リポジトリ / ブランチ名を漏洩するか? — GitSquid と Fork はいいえ。GitKraken ははい (analytics ペイロード内)、SourceTree は部分的。
エアギャップ環境では、GitSquid の自動更新確認とライセンス検証は単に静かに失敗し、キャッシュ済み / オフラインの経路にフォールバックします。アプリは引き続き機能しますが、IT 部門は起動時のこれら 2 つの送信リクエストについて把握したいかもしれません。両方をスキップする将来の設定トグルにより、厳しい環境でのデプロイがシンプルになります。
厳しく規制された環境では、GitSquid と Fork が最もクリアしやすい — 唯一の送信トラフィックは限定的 (GitSquid の場合は起動時のみ) または更新のみ (Fork) です。GitKraken と SourceTree は、データ処理契約の交渉なしには通常通過しません。
これを再現する
上記の数値は、トランスペアレントプロキシモードの mitmproxy で測定されました。自分のマシンで再現するには:
- mitmproxy をインストール: Mac では
brew install mitmproxy、Linux ではパッケージマネージャの相当物。 - システムを `localhost:8080` 経由で HTTPS をルーティングするように設定。
- mitmproxy の CA をシステムレベルで信頼。
- Git クライアントを起動し、ローカルリポジトリを開き、フォーカスしたままにする。
- mitmproxy の UI でライブリクエストログを観察。
テレメトリーが多いクライアントではリクエスト数がリアルタイムで増加し、その他はフラットなままであることが分かります。
正直な見解
テレメトリー自体は悪ではありません。ソフトウェアベンダーはバグ修正、機能の優先順位付け、ユーザー像の理解にこれを利用します。GitKraken のプライバシーポリシーは何が収集されるかについて透明であり、データは実際により良い製品の構築に役立っています。
選択肢は、そのトレードオフを望むかどうかです。コンシューマー向けツール (ブラウザ、音楽プレイヤー) では、ほとんどの人がそれを受け入れます。機密の可能性のあるコード上で動作する開発者ツールでは、より多くの開発者が拒否します — 特にテレメトリーなしの代替手段が追跡型と同等の能力を持つようになるにつれて。
「最小限の送信、analytics なし、サードパーティトラッカーなし」が要件リストにある場合は、GitSquid をダウンロードしてください。起動時に 1〜2 回のリクエストが発生し (更新確認 + Pro のライセンス検証)、その後セッション中は何も発生しません。同じ制約は Fork (買い切り 59 ドル、Linux なし) にもおおむね当てはまります。両方とも、GitKraken や SourceTree が通常通過しない IT レビューを通過します。