A história do Git: dez dias que mudaram o código

Linus Torvalds em HQ diante do logo do Git e do Tux

Em abril de 2005 o kernel Linux ficou sem sistema de versão. O BitKeeper, proprietário, tinha ensinado o fluxo distribuído — e Larry McVoy tirou a licença depois que Andrew Tridgell reverse-engineered o protocolo. Linus Torvalds não voltou para tarball e patch. Em cerca de dez dias escreveu o Git: snapshot de árvore, conteúdo endereçado por hash, rápido o bastante para o kernel. Vinte e um anos depois o Git 2.55 ainda é o que quase todo repositório do planeta usa — e Linus já tinha largado a manutenção em julho de 2005.

Em 2025, nos 20 anos do primeiro commit, o GitHub sentou com ele. A surpresa, diz, não foi continuar usando. Foi o mundo inteiro ter copiado a solução de um problema dele.

Antes: patch, tarball e BitKeeper

De 1991 a 2002 o kernel andava por e-mail: patch e arquivo compactado. Em 2002 o projeto adotou o BitKeeper da BitMover. Linus odiava CVS — lento, centralizado, merge miserável. O BitKeeper foi “o primeiro SCM que valeu a pena usar”: ensinou o fluxo que o Git ainda copia. A licença gratuita para o kernel durou até 2005. McVoy acusou Tridgell (Samba) de engenharia reversa. A isenção caiu. Voltar a tarball ninguém queria.

Os critérios que Linus anotou eliminaram tudo que existia: velocidade, design simples, milhares de branches em paralelo, distribuído de verdade, e aguentar o volume do kernel sem corromper o histórico. Ele já vinha pensando nisso desde o fim de 2004. O código saiu rápido porque o desenho já estava na cabeça.

Abril de 2005: dez dias e o primeiro commit

3 de abril: começa a escrever. 6 de abril: anuncia. 7 de abril: o Git passa a hospedar a si mesmo — o commit inicial tem 1.244 linhas e a descrição “the information manager from hell”. 16 de abril: primeiro commit do kernel no Git. 18 de abril: primeiro merge de branches. 29 de abril: 6,7 patches por segundo no tree do kernel. 16 de junho: o Git gerencia o release 2.6.12.

O nome é piada britânica (git = tipo insuportável) e, no próprio commit, um backronym: global information tracker. SHA-1 não era “segurança criptográfica”; era detector de corrupção. Em 2026 o SHA-256 já é opção; o default ainda é SHA-1. Linus segue dizendo que a troca nunca foi o ponto.

Em maio de 2007 ele foi ao Google explicar o bicho. A palestra continua o melhor “por que não é CVS” que existe:

Junio Hamano, 26 de julho de 2005

Linus nunca quis manter o Git. “O momento em que aparecer alguém em quem eu confio, eu volto pro kernel.” Junio Hamano (gitster) pegou o bastão em 26 de julho de 2005 e não largou. A 1.0 saiu em 21 de dezembro do mesmo ano. Linus usa, até hoje, um punhado de comandos: merge, blame, log, commit, pull, status. O resto é o projeto do Junio e de centenas de contribuidores.

Entre 2007 e 2010 a queixa (“por que os nomes são diferentes do CVS?”) virou o contrário: uma geração que nunca tinha usado SCM e para quem Git era o default. GitHub abre em 2008; GitLab, Bitbucket, Gitea, Forgejo. O pull request não está no Git — está na camada social em cima. Sem o objeto endereçado por hash, essa camada não existiria.

O que o Git é, em uma frase

Não é um delta de arquivo. É um banco de snapshots: blob, tree, commit, tag — cada um um objeto, cada um um hash. Branch é um ponteiro. Merge é um commit com dois pais. Você clona o repositório inteiro, não um checkout. Por isso o kernel, o Android, o Chromium e o seu README cabem no mesmo modelo. A história do Unix/Linux neste blog está em Linux faz 35 anos; o cheatsheet em português, em Git simples e rápido.

2026: Git 2.55, Rust e o rumo da 3.0

Em 29 de junho de 2026 o Junio anunciou o Git 2.55: Rust ligado por default na compilação (ainda dá para sair com NO_RUST; na 3.0 pode virar obrigatório), o subcomando experimental git history (reword, split, fixup sem bagunçar o working tree), fsmonitor nativo no Linux, push para grupo de remotes. SHA-1 e SHA-256 começam a interoperar. O Git 3, discutido no FOSDEM por Patrick Steinhardt, é o próximo corte — não um Git novo, o mesmo disco, menos C inseguro.

A onda de agentes de IA está estressando o GitHub; o protocolo Git, em si, continua o mesmo de 2005. Linus, no kernel 7.x, ainda faz merge window com Git e e-mail. O hobby que “não ia ser grande” ganhou um irmão que, desta vez, ele admitiu ter escrito porque precisava.

O que ficou

Dois artefatos do mesmo finlandês: o kernel e o Git. O primeiro ele nunca largou. O segundo ele largou em quatro meses e o mundo inteiro adotou. Junio Hamano completa 21 anos de maintainer em 2026. O losango laranja na capa é o mesmo de 2005. O fluxo — clone, branch, merge, hash — também.

Para os comandos do dia a dia: Git simples e rápido. Para o autor: a história de Linus Torvalds.