Acorte un hash de commit Git a la longitud que necesite
Esta herramienta de hashes cortos de commits de Git recibe un identificador de objeto SHA-1 o SHA-256 completo y devuelve exactamente el número solicitado de caracteres hexadecimales iniciales.
Ejecutar — gratis
Resulta práctica cuando el identificador íntegro ocupa demasiado en una etiqueta de versión, una pantalla de compilación, un resumen de registros o una nota de despliegue. La operación es determinista, conserva las mayúsculas y minúsculas recibidas y rechaza cualquier longitud superior a la del hash completo.
Obtenga un identificador corto y predecible
Los identificadores de objetos de Git son precisos, pero su representación hexadecimal completa puede resultar incómoda en interfaces compactas y documentos destinados a personas. Esta capacidad acepta un hash de commit SHA-1 completo de 40 caracteres o uno SHA-256 de 64 y devuelve los caracteres iniciales que usted solicite. Es la forma habitual de abreviación que muestra Git. Como usted fija la longitud de manera explícita, el resultado no depende del tamaño del repositorio, de la configuración local ni del equipo que ejecute una orden. Por ejemplo, un flujo de versiones puede usar siempre 12 caracteres y una insignia estrecha puede limitarse a 8. La respuesta incluye el valor acortado y su longitud, por lo que resulta fácil validarla antes de incorporarla a otro sistema. Se conserva el uso de mayúsculas y minúsculas del original. No hace falta clonar un repositorio: la herramienta solo valida el texto y extrae su prefijo.
Elija la longitud teniendo en cuenta las colisiones
Un hash corto es una abreviación, no un identificador de commit nuevo. Los prefijos breves se leen mejor, pero tienen más probabilidades de coincidir con varios objetos cuando aumenta el repositorio. Git puede calcular el prefijo único más corto consultando los objetos disponibles; esta herramienta no puede prometer esa unicidad porque recibe un solo hash y no inspecciona ningún repositorio. Elija una longitud adecuada al contexto y a la cantidad prevista de objetos. 7 u 8 caracteres pueden bastar para un proyecto pequeño, mientras que 12 o más ofrecen un margen mayor en historiales extensos y archivos de compilaciones duraderos. Si una orden posterior debe resolver el valor dentro de un repositorio, compruebe allí que no sea ambiguo. La capacidad evita un error concreto: solicitar más caracteres de los que contiene el hash completo. Además, exige un identificador SHA-1 o SHA-256 íntegro y no acepta un valor que ya venga abreviado.
Mantenga la misma abreviación en toda la automatización
El acortamiento a longitud fija es útil cuando varias herramientas deben etiquetar la misma revisión de forma coherente. Un trabajo de integración continua puede tomar el SHA completo facilitado por su proveedor, aplicar la longitud acordada por el proyecto y reutilizar el resultado en nombres de artefactos, etiquetas de contenedores, anotaciones de despliegue o informes de pruebas. Los scripts de publicación pueden mostrarlo junto a una versión semántica sin depender de órdenes de Git específicas del entorno. Los sistemas de supervisión y soporte pueden enseñar una referencia compacta y conservar el hash completo en sus metadatos. Como el algoritmo solo valida y recorta un prefijo, una entrada idéntica siempre genera la misma salida tanto en el navegador como mediante la API. No hay llamadas de red, acceso al repositorio, aleatoriedad ni datos horarios. Cuando sea imprescindible identificar exactamente el objeto entre repositorios o bifurcaciones, conserve también el identificador completo como referencia autorizada.
Qué puede hacer con ella
Etiquetar artefactos de compilación
Genere sufijos de revisión de ancho fijo para paquetes, archivos y resultados de compilación a partir del SHA completo del sistema de CI.
Anotar despliegues
Muestre un prefijo de commit legible en paneles de despliegue y notas de versión mientras conserva el hash completo en otro campo.
Unificar referencias en registros
Aplique una longitud de abreviación explícita en todos sus servicios para poder comparar referencias de revisiones con facilidad.
Preguntas frecuentes
¿Cuánto cuesta?
El precio de la API es de $0.002 por solicitud. La misma operación determinista puede ejecutarse en el navegador desde esta página.
¿Qué formatos de hash de Git se admiten?
La entrada debe ser un identificador hexadecimal SHA-1 completo de 40 caracteres o un identificador SHA-256 completo de 64.
¿Un hash corto identifica un commit de forma única?
No necesariamente. La unicidad depende de los demás objetos del repositorio concreto, que esta capacidad no inspecciona.
¿Qué ocurre si la longitud solicitada es excesiva?
La solicitud falla con un error de entrada no válida que indica la longitud pedida y la longitud disponible en el hash completo.
¿La herramienta convierte las letras hexadecimales mayúsculas a minúsculas?
No. Valida la entrada hexadecimal y conserva exactamente el uso de mayúsculas y minúsculas del prefijo recibido.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"commit_hash": "8f14e45fceea167a5a36dedd4bea2543d2f6b721",
"length": 12
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.commit_hash_short_form",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |