Encurte um hash de commit Git para o tamanho desejado
Esta ferramenta de hash curto de commit Git recebe um identificador de objeto SHA-1 ou SHA-256 completo e devolve exatamente a quantidade solicitada de caracteres hexadecimais iniciais.
Executar grátis
Ela é útil quando o identificador inteiro ocupa espaço demais em uma etiqueta de versão, tela de build, resumo de logs ou nota de implantação. A operação é determinística, preserva as letras maiúsculas e minúsculas fornecidas e rejeita um tamanho maior que o hash completo.
Crie um identificador curto e previsível
Os identificadores de objetos do Git são precisos, mas a representação hexadecimal completa pode ser inconveniente em interfaces compactas e registros voltados para leitura humana. Esta capacidade aceita um hash completo de commit SHA-1 com 40 caracteres ou SHA-256 com 64 e devolve a quantidade de caracteres iniciais que você solicitar. Esse é o formato convencional usado pelo Git para exibir nomes abreviados de objetos. Como o tamanho é informado diretamente, o resultado não muda conforme o volume do repositório, a configuração local ou a máquina que executa o comando. Um fluxo de lançamento pode padronizar 12 caracteres, por exemplo, enquanto um selo estreito pode usar 8. A resposta traz o valor encurtado e o tamanho aplicado, facilitando a validação antes do envio a outro sistema. A capitalização original é mantida. Não é preciso clonar o repositório: o valor passa apenas por validação e extração do prefixo.
Escolha o tamanho considerando o risco de colisão
Um hash curto é uma abreviação, não um novo identificador de commit. Prefixos menores são mais fáceis de ler, porém têm maior chance de corresponder a vários objetos à medida que o repositório cresce. O Git consegue calcular a menor abreviação exclusiva ao consultar os objetos disponíveis; esta ferramenta não pode garantir exclusividade porque recebe apenas um hash e não examina um repositório. Escolha um tamanho adequado ao contexto e ao número esperado de objetos. 7 ou 8 caracteres podem ser convenientes em um projeto pequeno, enquanto 12 ou mais oferecem uma margem maior para históricos extensos e arquivos de builds mantidos por muito tempo. Se um comando posterior precisar resolver o valor em um repositório, confirme ali que o prefixo não é ambíguo. A capacidade impede um erro específico: pedir mais caracteres do que existem no hash completo. Ela também exige um identificador SHA-1 ou SHA-256 integral, em vez de aceitar um valor já abreviado.
Use a mesma abreviação em toda a automação
O encurtamento com tamanho fixo ajuda quando várias ferramentas precisam identificar a mesma revisão de modo consistente. Um job de integração contínua pode receber o SHA completo do provedor, aplicar o tamanho definido pelo projeto e reutilizar o hash curto em nomes de artefatos, tags de contêiner, anotações de implantação ou relatórios de testes. Scripts de lançamento podem colocar o valor ao lado de uma versão semântica sem incorporar comandos Git específicos do ambiente. Sistemas de monitoramento e suporte podem mostrar uma revisão compacta e manter o hash completo nos metadados. Como o algoritmo realiza apenas validação e recorte do prefixo, entradas idênticas sempre produzem saídas idênticas no navegador e pela API. Não há acesso à rede, consulta ao repositório, escolha aleatória nem comportamento dependente do horário. Quando a identidade exata for importante entre repositórios, forks ou arquivos históricos, mantenha também o identificador completo como referência definitiva.
Casos de uso
Identificar artefatos de build
Crie sufixos de revisão com largura fixa para pacotes, arquivos e saídas de build usando o SHA completo fornecido pelo CI.
Anotar implantações
Exiba um prefixo de commit legível em painéis de implantação e notas de versão, mantendo o hash completo em outro campo.
Padronizar referências em logs
Aplique um tamanho explícito de abreviação em todos os serviços para facilitar a comparação entre revisões.
Perguntas frequentes
Quanto custa?
O preço da API é US$ 0,002 por solicitação. A mesma operação determinística pode ser executada no navegador nesta página.
Quais formatos de hash Git são aceitos?
A entrada deve ser um identificador hexadecimal SHA-1 completo com 40 caracteres ou SHA-256 completo com 64.
Um hash curto identifica um commit de forma exclusiva?
Não necessariamente. A exclusividade depende dos outros objetos existentes no repositório, que esta capacidade não examina.
O que acontece se o tamanho solicitado for grande demais?
A solicitação falha com um erro de entrada inválida que informa o tamanho pedido e o tamanho disponível no hash completo.
A ferramenta transforma letras hexadecimais maiúsculas em minúsculas?
Não. Ela valida a entrada hexadecimal e preserva exatamente a capitalização do prefixo fornecido.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"commit_hash": "8f14e45fceea167a5a36dedd4bea2543d2f6b721",
"length": 12
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.commit_hash_short_form",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |