Accorci un hash di commit Git alla lunghezza desiderata
Questo strumento per hash brevi dei commit Git riceve un identificatore di oggetto SHA-1 o SHA-256 completo e restituisce esattamente il numero richiesto di caratteri esadecimali iniziali.
Esegui gratis nel browser
È utile quando l’identificatore intero è troppo lungo per un’etichetta di rilascio, una schermata di build, un riepilogo dei log o una nota di distribuzione. L’operazione è deterministica, conserva maiuscole e minuscole fornite e rifiuta una lunghezza superiore a quella del hash completo.
Crei un identificatore breve e prevedibile
Gli identificatori degli oggetti Git sono precisi, ma la loro rappresentazione esadecimale completa può risultare scomoda nelle interfacce compatte e nei documenti destinati alla lettura. Questa capacità accetta un hash di commit SHA-1 completo di 40 caratteri oppure SHA-256 di 64 e restituisce il numero di caratteri iniziali richiesto da Lei. È il formato convenzionale con cui Git mostra un nome di oggetto abbreviato. Poiché la lunghezza viene scelta esplicitamente, il risultato non cambia in base alle dimensioni del repository, alla configurazione locale o al computer che esegue un comando. Un flusso di rilascio può usare sempre 12 caratteri, mentre un indicatore stretto può usarne 8. La risposta contiene il valore abbreviato e la lunghezza applicata, così è semplice verificarla prima di inserirla in un altro sistema. Viene mantenuta la capitalizzazione originale e non occorre clonare alcun repository: il valore viene soltanto convalidato e tagliato al prefisso indicato.
Scelga la lunghezza considerando il rischio di collisione
Un hash breve è un’abbreviazione, non un nuovo identificatore di commit. I prefissi più corti sono facili da leggere, ma hanno maggiori probabilità di corrispondere a più oggetti quando il repository cresce. Git può calcolare l’abbreviazione univoca più corta esaminando gli oggetti disponibili; questo strumento non può garantirne l’unicità perché riceve un solo hash e non consulta alcun repository. Scelga una lunghezza adatta al contesto e al numero previsto di oggetti. 7 o 8 caratteri possono essere comodi per un progetto piccolo, mentre 12 o più offrono un margine maggiore per cronologie ampie e archivi di build conservati a lungo. Se un comando successivo deve risolvere il valore in un repository, verifichi lì che il prefisso non sia ambiguo. La capacità impedisce un errore preciso: richiedere più caratteri di quelli disponibili nel hash completo. Inoltre accetta soltanto un identificatore SHA-1 o SHA-256 integrale, non un valore già abbreviato.
Usi la stessa abbreviazione in ogni automazione
L’abbreviazione a lunghezza fissa è utile quando più strumenti devono etichettare la stessa revisione in modo coerente. Un processo di integrazione continua può ricevere lo SHA completo dal proprio fornitore, applicare la lunghezza standard del progetto e riutilizzare il risultato nei nomi degli artefatti, nei tag dei container, nelle annotazioni di distribuzione o nei report dei test. Gli script di rilascio possono affiancarlo a una versione semantica senza incorporare comandi Git specifici dell’ambiente. I sistemi di monitoraggio e assistenza possono mostrare un riferimento compatto mantenendo il hash completo nei metadati. Poiché l’algoritmo esegue solo la convalida e il taglio del prefisso, input identici producono sempre output identici nel browser e tramite API. Non usa rete, repository, casualità o dati temporali. Quando serve un’identità esatta tra repository, fork o archivi, conservi anche l’identificatore completo come riferimento autorevole.
Casi d'uso
Etichettare gli artefatti di build
Crei suffissi di revisione a larghezza fissa per pacchetti, archivi e risultati di build partendo dallo SHA completo fornito dalla CI.
Annotare le distribuzioni
Mostri un prefisso di commit leggibile nei pannelli di distribuzione e nelle note di rilascio, conservando altrove il hash completo.
Uniformare i riferimenti nei log
Applichi una lunghezza di abbreviazione esplicita in tutti i servizi per confrontare facilmente le revisioni.
Domande frequenti
Quanto costa?
Il prezzo della API è $0.002 per richiesta. La stessa operazione deterministica può essere eseguita nel browser da questa pagina.
Quali formati di hash Git sono accettati?
L’input deve essere un identificatore esadecimale SHA-1 completo di 40 caratteri oppure SHA-256 completo di 64.
Un hash breve identifica un commit in modo univoco?
Non automaticamente. L’unicità dipende dagli altri oggetti del repository specifico, che questa capacità non esamina.
Che cosa accade se la lunghezza richiesta è eccessiva?
La richiesta non riesce e restituisce un errore di input non valido con la lunghezza richiesta e quella disponibile.
Lo strumento converte in minuscolo le lettere esadecimali maiuscole?
No. Convalida l’input esadecimale e conserva esattamente maiuscole e minuscole del prefisso fornito.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/commit-hash-short-form \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"commit_hash":"8f14e45fceea167a5a36dedd4bea2543d2f6b721","length":12}'const res = await fetch("https://api.kit.forhosting.com/dev/commit-hash-short-form", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"commit_hash": "8f14e45fceea167a5a36dedd4bea2543d2f6b721",
"length": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/commit-hash-short-form",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"commit_hash": "8f14e45fceea167a5a36dedd4bea2543d2f6b721",
"length": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/commit-hash-short-form", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"commit_hash":"8f14e45fceea167a5a36dedd4bea2543d2f6b721","length":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"commit_hash":"8f14e45fceea167a5a36dedd4bea2543d2f6b721","length":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/commit-hash-short-form", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"commit_hash": "8f14e45fceea167a5a36dedd4bea2543d2f6b721",
"length": 12
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.commit_hash_short_form",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |