Git Glossário
Guia de A a Z da terminologia do Git. 60 termos essenciais explicados em linguagem simples.
A
Ancestral
Um commit que vem antes de outro no histórico. Os commits pais e os pais deles são todos ancestrais.
Tag anotada
Uma tag que guarda metadados extras, como nome e e-mail de quem criou a tag, data e mensagem. Recomendada para versões.
B
Repositório bare
Um repositório sem diretório de trabalho. Contém só o conteúdo da pasta .git. Usado como repositório central para compartilhar.
Blob
Um objeto do Git que guarda o conteúdo de um arquivo. Abreviação de “binary large object”.
Ramificar
Um ponteiro móvel para um commit. Representa uma linha de desenvolvimento independente em um repositório.
C
Cherry-pick
Copiar as mudanças de um commit existente para a sua branch atual como um commit novo (com um hash novo).
Clone
Uma cópia completa de um repositório remoto — cada commit, mais branches de rastreamento remoto como origin/main — criada com git clone.
Commit
Um instantâneo do seu repositório em um momento específico. Contém uma árvore, o(s) commit(s) pai, o autor e uma mensagem.
Hash do commit
Uma soma de verificação SHA-1 de 40 caracteres que identifica um commit de forma única. Na maioria dos casos pode ser abreviada para 7 caracteres.
Conflito
Acontece quando o Git não consegue mesclar mudanças automaticamente porque as mesmas linhas foram alteradas de formas diferentes nas duas branches.
D
HEAD desanexado
Um estado em que o HEAD aponta direto para um commit em vez de uma branch. Mudanças feitas aqui podem se perder se não forem salvas em uma branch.
Diff
A diferença entre duas versões de um arquivo ou conjunto de arquivos. Mostra adições, remoções e alterações.
E
Repositório embutido
Uma pasta com o seu próprio .git dentro de outro repositório. O Git a registra só como um ponteiro para um commit (um gitlink); use submódulos em vez disso.
F
Fast-forward
Um merge em que o ponteiro da branch simplesmente avança porque não há commits divergentes. Nenhum commit de merge é criado.
Fetch
Baixar commits e referências novos de um remoto sem mexer nas suas branches nem na sua árvore de trabalho.
Fixup
Uma ação do rebase interativo que funde um commit ao anterior e descarta a mensagem dele.
Force with Lease
git push --force-with-lease: sobrescrever a branch remota só se ela ainda apontar para onde você a viu por último, para nunca perder o trabalho de um colega.
Fork
Uma cópia pessoal de outro repositório em um serviço de hospedagem. Muito usada em código aberto para propor mudanças por meio de pull requests.
G
Commit enxertado
Em um clone raso, o commit mais antigo baixado: os pais dele existem no servidor, mas nunca foram baixados.
H
HEAD
Um ponteiro para a referência de branch ou o commit atual. Representa a sua posição atual no histórico do repositório.
Hook
Um script que roda automaticamente quando certos eventos do Git acontecem, como pre-commit, post-commit ou pre-push.
Hotfix
Uma correção urgente para código já publicado, normalmente feita na branch de release, com tag, e depois levada de volta ao main.
Hunk
Um bloco de linhas alteradas em um diff, com algumas linhas de contexto inalteradas ao redor. O git add -p prepara hunk por hunk.
I
Índice
Também chamado de área de preparação. Uma área intermediária onde as mudanças são preparadas antes do commit no repositório.
Rebase interativo
git rebase -i: reescrever uma série de commits editando uma lista de tarefas (pick, reword, squash, fixup, drop).
L
Tag leve
Um simples ponteiro para um commit, sem metadados extras. Só um nome para um commit específico.
M
Main/Master
A branch principal padrão de um repositório. “main” é a convenção moderna; “master”, o nome antigo.
Commit de merge
Um commit com dois ou mais pais que junta em um só as mudanças de branches diferentes.
Conflito de merge
Quando o Git não consegue resolver automaticamente as diferenças entre duas branches. Exige resolução manual.
O
Objeto
A unidade básica de armazenamento do Git. Existem quatro tipos: blob (arquivo), tree (diretório), commit e tag.
ORIG_HEAD
Uma referência que o Git define antes de operações arriscadas (reset, merge, rebase) apontando para onde o HEAD estava — git reset --hard ORIG_HEAD as desfaz.
Origin
O nome padrão do repositório remoto de onde você clonou. Aponta para a fonte original.
P
Commit pai
O commit que vem imediatamente antes de outro. Commits de merge têm vários pais.
Pathspec
Um padrão usado para limitar caminhos em comandos do Git. Pode incluir curingas e indicações de diretórios.
Prune
Remover branches de rastreamento remoto cuja branch não existe mais no remoto (git fetch --prune).
Pull
git fetch seguido de mesclar (ou fazer rebase) o upstream baixado na sua branch atual.
Pull request
Um pedido em uma plataforma de hospedagem (GitHub, GitLab…) para revisar uma branch e mesclá-la em outra. Não é um comando do Git.
Push
Enviar seus commits para um remoto e mover a branch dele para ficar igual à sua.
R
Rebase
Reaplicar commits por cima de outro commit base, gerando commits novos e um histórico linear.
Ref
Abreviação de “reference”. Um ponteiro para um commit, como um nome de branch, uma tag ou o HEAD.
Reflog
Um registro de todas as atualizações de referências no seu repositório local. Anota cada mudança nas pontas das branches e no HEAD.
Branch de release
Uma branch que guarda uma versão entregue, para que correções possam ser feitas nela enquanto o main segue em frente.
Remoto
Uma versão do seu repositório hospedada em outro lugar (como GitHub ou GitLab). Usada para colaboração e backup.
Branch de rastreamento remoto
Um marcador local somente leitura de uma branch remota, como origin/main, atualizado por fetch, pull e push.
Repositório
Um diretório com os arquivos do seu projeto e todo o histórico do Git guardado em uma pasta .git.
Revert
Um commit novo que desfaz as mudanças de um anterior, sem reescrever o histórico — seguro em branches compartilhadas.
S
SHA-1
A função hash criptográfica que o Git usa para gerar identificadores únicos de commits e objetos.
Clone raso
Um clone só com os commits mais recentes (git clone --depth N), comum em CI; aprofunde com fetch --depth ou --unshallow.
Commit assinado
Um commit com uma assinatura GPG (ou SSH) que os serviços de hospedagem podem mostrar como “Verified”. Criado com git commit -S.
Squash
Juntar vários commits em um só, por ex. com um rebase interativo ou git merge --squash.
Área de preparação
A área intermediária entre o seu diretório de trabalho e o repositório, onde você prepara os commits. Também chamada de índice.
Stash
Uma prateleira temporária para mudanças sem commit (git stash), para trocar de tarefa com a árvore de trabalho limpa.
Submódulo
Um repositório embutido dentro de outro. Útil para incluir dependências externas em uma versão específica.
T
Tag
Uma referência com nome que aponta para um commit específico. Normalmente usada para marcar versões publicadas, como v1.0.0.
Branch de rastreamento
Uma branch local com relação direta com uma branch remota. Permite push/pull sem informar o remoto.
Tree (árvore)
Um objeto do Git que representa um diretório. Contém referências para blobs (arquivos) e outras trees (subdiretórios).
U
Arquivo não rastreado
Um arquivo do diretório de trabalho que o Git não monitora. Não entra nos commits até ser adicionado explicitamente.
Upstream
A branch remota que uma branch local rastreia. A fonte de onde as mudanças são puxadas.
W
Diretório de trabalho
O diretório no seu sistema de arquivos onde você edita os arquivos. Contém a versão atual do seu projeto.
Árvore de trabalho
Outro nome para o diretório de trabalho. Os arquivos que você vê e edita na pasta do projeto.