← Torna al blog

Telemetria Git GUI a confronto: chi ti traccia nel 2026

comparison privacy

Telemetria delle Git GUI a confronto: chi ti traccia nel 2026

La maggior parte delle applicazioni desktop raccoglie dati di utilizzo. Le Git GUI non fanno eccezione. Questo articolo confronta il comportamento di telemetria di quattro client Git popolari — GitKraken, Fork, SourceTree e GitSquid — basandosi sul traffico di rete osservabile. I numeri provengono da una sessione di cattura pacchetti di 24 ore su ciascuna app, con lo stesso repository aperto e un'interazione utente minima.

Trasparenza: questo articolo è pubblicato sul sito di GitSquid. La metodologia è descritta in dettaglio così puoi riprodurre i numeri tu stesso.

Perché è importante

"Telemetria" è una parola morbida per "la tua applicazione invia dati al suo fornitore senza che tu glielo chieda attivamente". Spesso i dati sono genuinamente benigni: un contatore di utilizzo anonimo, un report di crash, una verifica di feature flag. A volte è di più: su quali pulsanti clicchi, quali repository hai aperti, quali funzioni hai provato.

Per la maggior parte degli utenti questo non è un problema. Per tre categorie di utenti, è un vincolo rigido:

  • Industrie regolamentate. Sanità, finanza, difesa, governo. I processi di revisione IT bloccano sistematicamente qualsiasi strumento che chiami a casa con dati identificabili.
  • Lavoro sotto NDA / proprietario. Se i nomi dei tuoi repository o branch contengono informazioni su clienti o prodotti, farli trapelare via telemetria è una preoccupazione reale.
  • Sviluppatori attenti alla privacy. Alcune persone semplicemente non vogliono che la telemetria del proprio workflow sia raccolta, indipendentemente da quanto si dichiari anonimizzata.

Metodologia

Per ogni app:

  1. Installazione fresca su un Mac (M2, macOS 15) senza storia precedente.
  2. Configurata con un repository locale (il repository sorgente di GitSquid, un clone sintetico senza remote).
  3. Repository aperto nell'app, poi app lasciata in primo piano ma inattiva per 24 ore.
  4. Cattura del traffico di rete con mitmproxy in modalità trasparente, certificato di fiducia a livello di sistema.
  5. Conteggio delle richieste per dominio di destinazione. Esclusi i controlli di aggiornamento automatico (li contiamo separatamente).

Il repository non aveva alcun remote configurato, quindi qualsiasi traffico in uscita durante la finestra di 24 ore era telemetria, validazione di licenza o controllo di aggiornamento automatico. Distinguere i tre è semplice: la validazione di licenza colpisce un singolo endpoint del server di licenza una volta; l'auto-updater colpisce un URL noto di manifest di rilascio una o due volte; tutto il resto è telemetria.

Risultati

Strumento Richieste telemetria / 24h Controlli aggiornamento Validazione licenza Totale in uscita
GitSquid011 (solo Pro) / 0 (Free)1-2 all'avvio, poi 0
Fork02 (poll del manifest)02
SourceTree~8021 (accesso Atlassian)~83
GitKraken~1402~24 (heartbeat orario)~166

Due delle quattro app non inviano essenzialmente nulla. Due inviano decine o centinaia di richieste al giorno, anche senza interazione utente.

Dove vanno le richieste

GitKraken

Destinazioni osservate durante la finestra di 24 ore:

  • api.gitkraken.com — heartbeat di licenza, refresh della sessione account e verifiche di feature flag.
  • analytics.gitkraken.com — analytics di utilizzo. Ogni navigazione, apertura di pannello e operazione Git genera un evento.
  • sentry.io — reporting degli errori (si attiva anche su warning, non solo crash).
  • statsig.com — valutazione di feature flag e A/B test.
  • logrocket.com in alcune sessioni — replay di sessione, quando abilitato.

SourceTree

  • id.atlassian.com — refresh della sessione account, chiamato periodicamente.
  • sourcetree.atlassian.com — analytics di utilizzo delle funzioni.
  • sentry.io — reporting degli errori.
  • analytics.atlassian.com — analytics Atlassian inter-prodotto.

Fork

  • git-fork.com/sparkle — manifest di aggiornamento automatico. Due controlli nella finestra 24h. Nessun endpoint di telemetria contattato.

GitSquid

  • github.com/TheMax98000/gitsquid-releases — manifest di aggiornamento automatico (`latest.json`). Un fetch all'avvio. A partire dalla v2.7, questo controllo è obbligatorio e non disabilitabile dall'utente (un toggle nelle impostazioni è in roadmap).
  • gitsquid.dev/api/validate-license — validazione di licenza. Una richiesta all'avvio solo per gli utenti Pro (gli utenti Free non colpiscono questo endpoint). Il corpo della richiesta contiene solo la chiave di licenza come parametro di query — nessun machine ID, nessun dato di utilizzo, nessuna telemetria. Se l'API non è raggiungibile, l'app ricade su un risultato recente in cache, poi sulla verifica del checksum locale della chiave. Quindi una licenza Pro continua a funzionare offline, ma il controllo online è il percorso predefinito quando la rete è disponibile.
  • Nessun endpoint di telemetria contattato in nessun momento. Nessuna analytics, nessun event tracking, nessun servizio di crash reporting, nessun servizio di feature flag.

Come appaiono i dati

Il numero di richieste è una cosa. Il contenuto di ciascuna richiesta è un'altra. Abbiamo campionato alcuni POST analytics di GitKraken:

  • Percorso del repository (percorso locale completo, hashato ma reversibile se hai il salt).
  • Nome del branch attualmente checked-out.
  • Numero di commit nel repository.
  • Quali operazioni Git sono state eseguite e con che frequenza.
  • Quali pannelli UI sono stati aperti.
  • Sistema operativo, versione dell'app, risoluzione dello schermo.

Niente di tutto questo è malevolo, e la privacy policy di GitKraken lo dichiara. Ma per un utente sotto NDA, "il nome del branch attualmente checked-out" può far trapelare `feature/customer-acme-bug-fix` verso un server di terze parti, che è esattamente ciò che gli NDA tipicamente proibiscono.

I payload di SourceTree sono più piccoli e più anonimizzati ma includono comunque l'impronta del repository ed eventi di utilizzo delle funzioni.

Si può disattivare?

Strumento Opt-out disponibile?
GitKrakenParziale — puoi disabilitare alcune analytics ma non tutte (l'heartbeat di licenza è obbligatorio).
SourceTreeParziale — l'opt-out delle analytics esiste, il refresh della sessione account è obbligatorio.
ForkN/A — nessuna telemetria da disattivare. L'aggiornamento automatico può essere disabilitato.
GitSquidN/A — nessuna telemetria da disattivare. Il controllo di aggiornamento automatico e la validazione di licenza avvengono entrambi una volta all'avvio e attualmente non possono essere disabilitati dalle impostazioni. Un toggle per entrambi è in roadmap.

Per GitKraken e SourceTree, "telemetria off" non è la stessa cosa di "nessun traffico in uscita". Il refresh di licenza / sessione account continua indipendentemente.

Per le revisioni IT

Molti dipartimenti IT aziendali rivedono gli strumenti desktop prima di approvarli. Le domande che pongono:

  • Richiede un account? — No per GitSquid e Fork. Sì per GitKraken e SourceTree.
  • Chiama a casa? — Per GitSquid: sì, ma solo all'avvio (1 controllo di aggiornamento + 1 validazione di licenza per Pro). Nessuna analytics, nessun traffico ricorrente in background. Per Fork: solo il manifest di aggiornamento automatico. Per GitKraken e SourceTree: sì, ricorrente per tutta la sessione.
  • La validazione di licenza è capace offline? — Per GitSquid: prova prima online (solo Pro), ricade su un risultato recente in cache, poi sul checksum locale se entrambi falliscono. Una chiave Pro continua a funzionare senza internet; il controllo online è il percorso predefinito quando la rete è disponibile. Per Fork: licenza una tantum, nessuna validazione necessaria. Per GitKraken: online richiesto.
  • Fa trapelare nomi di repository / branch? — No per GitSquid e Fork. Sì per GitKraken (nei payload analytics), parziale per SourceTree.

Per un ambiente air-gapped, il controllo di aggiornamento automatico e la validazione di licenza di GitSquid falliranno semplicemente in silenzio e ricadranno sul percorso in cache / offline. L'app continua a funzionare, ma l'IT potrebbe voler sapere di quelle due richieste in uscita all'avvio. Un futuro toggle nelle impostazioni per saltarle entrambe semplificherà i deployment in ambienti rigorosi.

Per un ambiente strettamente regolamentato, GitSquid e Fork sono i più facili da approvare — l'unico traffico in uscita è limitato (solo all'avvio, per GitSquid) o solo per gli aggiornamenti (Fork). GitKraken e SourceTree di solito non passano senza accordi di trattamento dei dati negoziati.

Riprodurre tutto questo

I numeri sopra sono stati misurati con mitmproxy in modalità proxy trasparente. Per riprodurre sulla tua macchina:

  1. Installare mitmproxy: brew install mitmproxy su Mac, equivalente del package manager su Linux.
  2. Configurare il sistema per instradare HTTPS attraverso `localhost:8080`.
  3. Fidarsi della CA di mitmproxy a livello di sistema.
  4. Lanciare il client Git, aprire un repository locale, lasciare in primo piano.
  5. Osservare il log delle richieste in tempo reale nell'UI di mitmproxy.

Vedrai il contatore delle richieste salire in tempo reale per i client con molta telemetria, e restare piatto per gli altri.

L'opinione onesta

La telemetria non è cattiva di per sé. I fornitori di software la usano per correggere bug, prioritizzare funzioni e capire chi sono i loro utenti. La privacy policy di GitKraken è trasparente su cosa viene raccolto, e i dati li aiutano effettivamente a costruire un prodotto migliore.

La scelta è se vuoi quel compromesso. Per gli strumenti consumer (browser, riproduttori musicali), la maggior parte delle persone lo accetta. Per gli strumenti per sviluppatori che girano su codice potenzialmente sensibile, più sviluppatori dicono no — specialmente man mano che le alternative senza telemetria diventano capaci quanto quelle tracciate.

Se "traffico in uscita minimo, nessuna analytics, nessun tracker di terze parti" è nella tua lista di requisiti, scarica GitSquid. L'avvio genera 1-2 richieste (controllo di aggiornamento + validazione di licenza per Pro), poi nulla per il resto della sessione. Lo stesso vincolo si applica grossomodo a Fork (59 $ una tantum, niente Linux). Entrambi passano la revisione IT dove GitKraken e SourceTree di solito non passano.