Git Checkout (Português)

Esta página é um exame do comando git checkout. Ele cobrirá exemplos de uso e casos extremos. Em termos do Git, um “checkout” é o ato de alternar entre diferentes versões de uma entidade de destino. O comando git checkout opera em três entidades distintas: arquivos, confirmações e ramificações. Além da definição de “check-out”, a frase “check-out” é comumente usada para indicar o ato de executar o comando git checkout. No tópico Desfazendo alterações, vimos como git checkout pode ser usado para visualizar commits antigos. O foco da maior parte deste documento serão as operações de checkout nos branches.

O check out dos branches é semelhante ao check out de commits e arquivos antigos em que o diretório de trabalho é atualizado para corresponder ao branch / revisão selecionado; no entanto, novas alterações são salvas no histórico do projeto, ou seja, não é uma operação somente leitura.

Fazendo check-out de branches

O git checkout permite navegar entre os ramos criados por git branch. O check-out de um branch atualiza os arquivos no diretório de trabalho para corresponder à versão armazenada naquele branch e diz ao Git para registrar todos os novos commits naquele branch. Pense nisso como uma forma de selecionar em qual linha de desenvolvimento você está trabalhando.

Ter um branch dedicado para cada novo recurso é uma mudança dramática em relação a um fluxo de trabalho SVN tradicional. Torna ridiculamente fácil tentar novos experimentos sem o medo de destruir a funcionalidade existente e torna possível trabalhar em muitos recursos não relacionados ao mesmo tempo. Além disso, os branches também facilitam vários fluxos de trabalho colaborativos.

O comando git checkout pode ocasionalmente ser confundido com git clone. A diferença entre os dois comandos é que o clone funciona para buscar o código de um repositório remoto, alternativamente, o checkout funciona para alternar entre as versões do código já no sistema local.

Uso: branches existentes

Assumindo que o repositório em que você está trabalhando contém branches pré-existentes, você pode alternar entre esses branches usando git checkout. Para descobrir quais branches estão disponíveis e qual é o nome do branch atual, execute git branch.

 

O exemplo acima demonstra como visualizar uma lista de ramos disponíveis executando o git branch comando e mude para uma ramificação especificada, neste caso, o feature_inprogress_branch.

Novas ramificações

Git checkout trabalha lado a lado com git branch. O comando git branch pode ser usado para criar um novo branch. Quando você deseja iniciar um novo recurso, você cria um novo branch usando git branch new_branch. Depois de criado, você pode usar git checkout new_branch para alternar para esse branch. Além disso, o comando git checkout aceita um argumento -b que atua como um método conveniente que criará o novo branch e imediatamente mudará para ele. Você pode trabalhar em vários recursos em um único repositório alternando entre eles com git checkout.

O exemplo acima simultaneamente cria e verifica . A opção -b é um sinalizador de conveniência que diz ao Git para executar git branch antes de executar git checkout .

Por padrão, git checkout -b baseará o new-branch no atual HEAD. Um parâmetro de ramificação adicional opcional pode ser passado para git checkout. No exemplo acima, é passado e, em seguida, baseia new-branch em existing-branch em vez de o atual HEAD.

Troca de ramos

Trocar de ramos é uma operação direta. Executar o seguinte direcionará HEAD para a ponta de .

Git rastreia um histórico de operações de checkout no reflog. Você pode executar git reflog para ver o histórico.

Git Check a Remote Branch

Ao colaborar com uma equipe, é comum utilizar o remoto repositórios. Esses repositórios podem ser hospedados e compartilhados ou podem ser a cópia local de outro colega. Cada repositório remoto conterá seu próprio conjunto de branches. Para fazer o checkout de um branch remoto, você deve primeiro buscar o conteúdo do branch.

Nas versões modernas do Git, você pode fazer checkout do branch remoto como um branch local.

Versões mais antigas do Git requerem a criação de um novo branch baseado em remote.

Além disso, você pode verificar um novo branch local e redefini-lo para o último commit dos branches remotos.

 

HEADS destacados

Agora que vimos os três principais usos de git checkout em branches, é “importante discutir o "detached HEAD” estado. Lembre-se de que HEAD é a maneira do Git de se referir ao instantâneo atual. Internamente, o git checkout comando simplesmente atualiza o HEAD para apontar para o branch ou commit especificado. Quando ele aponta para um branch, o Git não reclama, mas quando você verifica um commit, ele muda para um estado "detached HEAD”.

Este é um aviso informando que tudo o que você está fazendo está “separado” do resto do desenvolvimento do seu projeto. se começasse a desenvolver um recurso enquanto estivesse em um estado HEAD separado, não haveria nenhum branch permitindo que você voltasse t o it. Quando você inevitavelmente verifica outro branch (por exemplo, para mesclar seu recurso em), não haveria nenhuma maneira de referenciar o seu recurso:

O ponto é, seu desenvolvimento deve sempre ocorrer em um branch – nunca em um HEAD separado. Isso garante que você sempre tenha uma referência para seus novos commits. No entanto, se você está apenas olhando para um commit antigo, realmente não importa se você está em um estado HEAD separado ou não.

Resumo

Esta página se concentra no uso do comando git checkout ao alterar os ramos. Em suma, git checkout, quando usado em ramos, altera o alvo da HEAD ref. Ele pode ser usado para criar branches, alternar branches e fazer checkout de branches remotos. O comando git checkout é uma ferramenta essencial para a operação padrão do Git. É uma contrapartida de git merge. Os comandos git checkout e git merge são ferramentas essenciais para ativar git workflows.

Write a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *