Artigo original: Git Checkout Explained: How to Checkout, Change, or Switch a Branch in Git
O comando git checkout
faz a troca entre branches ou restaura arquivos da árvore de trabalho. Há diversas opções para esse comando que não serão tratadas aqui, mas que você poderá examinar na documentação do Git (em inglês).
Checkout de um commit específico
Para fazer o checkout de um commit específico, execute o comando:
git checkout id-do-commit-específico
Podemos obter os ids específicos dos commits executando o comando:
git log
Fazer o checkout de uma branch existente
Para fazer o checkout de uma branch existente, execute o comando:
git checkout NOME-DA-BRANCH
Em geral, o Git não permitirá que você faça o checkout de outra branch a menos que seu diretório de trabalho esteja vazio, pois você perderia quaisquer alterações do diretório de trabalho cujo commit ainda não tenha sido realizado. Você tem três opções para lidar com suas alterações: 1) eliminá-las, 2) fazer o commit delas ou 3) colocá-las em stash (ambos os textos em inglês).
Fazer o checkout para uma nova branch
Para criar e fazer o checkout para uma nova branch com um único comando, você pode usar:
git checkout -b NOME-DA-NOVA-BRANCH
Isso o levará automaticamente para a nova branch.
Fazer o checkout para uma nova branch ou redefinir uma branch para seu ponto inicial
O comando abaixo é semelhante ao de fazer o checkout para uma nova branch, mas usa a flag -B
(observe o B maiúscula) e um parâmetro opcional PONTO-INICIAL
:
git checkout -B NOME-DA-BRANCH PONTO-INICIAL
Se a branch NOME-DA-BRANCH
não existir, o Git criará essa branch e a iniciará no PONTO-INICIAL
. Se a branch NOME-DA-BRANCH
existir, o Git reiniciará a branch em PONTO-INICIAL
. Isso é o equivalente a usar git branch
com -f
.
Forçar um checkout
Você pode passar a opção -f
ou --force
com o comando git checkout
para forçar o Git a alterar as branches, mesmo que você tenha alterações que não passaram por staging (em outras palavras, o índice da árvore de trabalho difere de HEAD
). Basicamente, essa opção pode ser usada para descartar alterações locais.
Ao executar o seguinte comando, o Git ignorará entradas cujo merging não foi realizado:
git checkout -f NOME-DA-BRANCH
# Alternativa
git checkout --force NOME-DA-BRANCH
Desfazer alterações em seu diretório de trabalho
Você pode usar o comando git checkout
para desfazer alterações que você fez em um arquivo no seu diretório de trabalho. Isso reverterá o arquivo de volta para a versão que está em HEAD
:
git checkout -- NOME-DO-ARQUIVO