Glossário
Definições curtas para os termos do Git e GitHub usados neste manual. Cada um tem um link para o capítulo que o ensina completamente.
branch
Uma branch é um rótulo móvel apontando para um commit, permitindo que você trabalhe em uma linha de histórico separada do resto do projeto. Criar uma não copia nenhum arquivo; adiciona um ponteiro que você pode mover independentemente fazendo commits nela. Veja Branches.
clone
git clone <url> copia um repositório remoto para sua própria máquina, incluindo seu histórico completo, pronto para usar imediatamente. Veja Seu primeiro repositório.
commit
Um commit é um snapshot salvo do seu projeto: todos os arquivos rastreados como estavam naquele momento, uma mensagem descrevendo o que mudou, e um link para o commit anterior. Veja O loop de commit.
detached HEAD
Detached HEAD é o que acontece quando HEAD aponta diretamente para um commit em vez de apontar para uma branch, geralmente porque você fez checkout de um commit específico em vez de um nome de branch. Commits feitos lá ficam fora de qualquer branch, então podem ser difíceis de encontrar novamente quando você muda. Veja Branches.
fetch
git fetch baixa novos commits de um remoto sem mesclá-los em sua branch atual. Ele apenas atualiza suas branches remote-tracking, como origin/main. Veja Remotes e GitHub.
fork
Um fork é sua própria cópia do repositório de outra pessoa no GitHub, usado quando você quer contribuir para um projeto ao qual não tem acesso de push. Veja O fluxo de pull request.
.gitignore
.gitignore é um arquivo que lista padrões para o que o Git nunca deve rastrear, como pastas de dependências e arquivos contendo segredos. Afeta apenas arquivos que o Git ainda não está rastreando. Veja Ignorando arquivos e boas práticas.
HEAD
HEAD é o ponteiro do Git para qualquer commit que você tenha atualmente em checkout. Na maioria das vezes aponta para sua branch atual, que por sua vez aponta para um commit. Veja Branches.
main
main é o nome convencional para a branch padrão de um repositório. Repositórios e tutoriais mais antigos às vezes usam master para o mesmo papel. Veja Seu primeiro repositório.
merge
git merge <branch> traz os commits de outra branch para sua branch atual, combinando os dois históricos em um. Veja Mesclando e conflitos.
merge conflict
Um merge conflict acontece quando duas branches modificam as mesmas linhas de um arquivo e o Git não consegue combiná-las automaticamente. Git marca o local conflituoso com <<<<<<<, ======= e >>>>>>> e espera você escolher o resultado correto. Veja Mesclando e conflitos.
origin
origin é o nome convencional que o Git dá ao remoto a partir do qual um repositório foi clonado. É apenas um nome; você pode renomeá-lo ou adicionar outros remotos livremente. Veja Remotes e GitHub.
pull
git pull busca novos commits de um remoto e os mescla em sua branch atual em uma única etapa. Veja Remotes e GitHub.
pull request
Um pull request (PR) é uma solicitação no GitHub para mesclar uma branch em outra, aberta para discussão e revisão antes da mesclagem acontecer. Veja O fluxo de pull request.
push
git push envia seus commits locais para um remoto, para que um host como GitHub, ou um colaborador, possa vê-los. Veja Remotes e GitHub.
rebase
Rebase reproduz os commits de sua branch em cima de um ponto de partida diferente, produzindo uma linha reta de histórico no lugar de um commit de mesclagem. Reescreve o histórico de commits, então reserve-o para branches nas quais ninguém mais já construiu. Veja Mesclando e conflitos.
reflog
O reflog é um registro local de todos os lugares para os quais HEAD apontou recentemente, incluindo commits que uma branch não alcança mais. É como você recupera um commit após um reset ou uma branch deletada, até que o Git eventualmente limpe tudo. Veja Desfazendo coisas.
refspec
Um refspec é um mapeamento, armazenado na configuração de um remoto, que diz ao git fetch quais branches no remoto baixar e quais branches remote-tracking registrá-las. Veja Remotes e GitHub.
remote
Um remote é uma cópia de um repositório hospedado em outro lugar, geralmente acessado por uma URL. GitHub é um lugar popular para hospedar um remote, junto com opções como GitLab e Bitbucket. Veja Remotes e GitHub.
remote-tracking branch
Uma remote-tracking branch, como origin/main, é o registro local do seu repositório de onde uma branch em um remoto estava a última vez que você fez fetch ou pull. Nunca se atualiza sozinha; apenas um fetch ou pull a move. Veja Remotes e GitHub.
repository
Um repository, ou repo, é uma pasta de projeto que o Git está rastreando, junto com o histórico completo de cada commit feito nela. Veja Seu primeiro repositório.
reset
git reset move sua branch atual para apontar para um commit diferente. --soft deixa a área de staging e o diretório de trabalho intocados, --mixed também limpa a área de staging, e --hard sobrescreve o diretório de trabalho também, descartando mudanças não commitadas, então trate-o com cuidado em qualquer branch que você já tenha compartilhado. Veja Desfazendo coisas.
revert
git revert <commit> cria um novo commit que desfaz as mudanças de um anterior, deixando o commit original no lugar. É a forma segura de desfazer algo que já está em uma branch compartilhada. Veja Desfazendo coisas.
staging area (index)
A staging area, também chamada de index, é onde você alinha exatamente o que o próximo commit conterá. git add move mudanças do seu diretório de trabalho para a staging area, e git commit salva o que está staged. Veja O loop de commit.
stash
git stash guarda suas mudanças não commitadas para que você possa mudar de tarefas com um diretório de trabalho limpo, então trazê-las de volta mais tarde com git stash pop. Veja Desfazendo coisas.
tag
Uma tag é um rótulo fixo fixado em um commit, frequentemente marcando um release. Ao contrário de uma branch, não se move quando novos commits são feitos. Veja Branches.
terminal
O terminal é o app onde você digita comandos como texto, incluindo cada comando git, e lê o que eles imprimem de volta. Também chamado de linha de comando. Veja Seu primeiro repositório.
upstream
O upstream de uma branch é a branch remota que ela rastreia, geralmente definido com git push -u. Uma vez definido, plain git push e git pull funcionam naquela branch sem nomear o remote e a branch cada vez. Veja Remotes e GitHub.
working directory
O working directory é a pasta real de arquivos no seu disco, a que está aberta no seu editor. Contém seja qual for o estado de seus arquivos agora, quer isso tenha sido staged ou commitado ou não. Veja O loop de commit.

