Clonar Ramo do Git: um Tutorial Passo a Passo

Imagine que você está escrevendo um livro e quer experimentar ideias novas sem mexer no original. Você poderia começar um novo bloco de notas para cada ideia, mantendo seus rascunhos separados.

Git, um sistema de controle de versão, permite que desenvolvedores de software façam o mesmo com o código através de “branches” (ramificações). Cada branch é como uma pista separada de desenvolvimento, permitindo que você explore mudanças sem afetar a base de código principal.

Neste artigo, eu vai guiar você por usar git clone, com foco em clonar ramificações específicas. Se você quiser aprender mais sobre Git, eu recomendo este Curso de Introdução a Git.

Vamos começar com uma resposta rápida para aqueles de vocês que estão em pouco tempo. Depois disso, vamos mergulhar em detalhes.

Resposta Rápida: Como Clonar uma Ramificação Específica

Para clonar uma ramificação específica the um repositório git, use o comando:

git clone --single-branch --branch <branch_name> <repository_url>

Substitua <branch_name> pelo nome da ramificação desejada e <repository_url> pela URL do repositório. Este comando cria uma cópia local da ramificação especificada, permitindo um desenvolvimento imediato e concentrados nesta ramificação.

Exemplo

Ao longo deste artigo, nós usaremos este repositório. Você pode usá-lo para testar os comandos que você aprender em seu computador. O repositório contém três ramificações:

  1. main: A ramificação padrão com dois arquivos de texto.
  2. add-new-file: Uma ramificação onde um terceiro arquivo foi adicionado.
  3. modify-file: Uma ramificação onde o segundo arquivo foi modificado.

É assim que podemos clonar a ramificação add-new-file:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

O que é o git clone?

Por padrão, git clone está projetado para copiar todo o repositório para um novo diretório no seu computador local, clonando todas as ramificações. Aqui está a sintaxe:

git clone <repository_url>

Para clonar o repositório de exemplo, podemos fazer o seguinte:

git clone https://github.com/fran-aubry/git-clone-example.git

Após executar essa comando, todas as ramificações serão copiadas para o seu computador local. No entanto, somente os arquivos de uma ramificação são visíveis de cada vez, chamada de ramificação selecionada. Depois de clonar um repositório, a ramificação padrão (normalmente chamada de main ou master) é a que está selecionada.

Mudança de ramificações

Após um clonagem completo, podemos mudar (checkout) para a branch desejada usando o comando git checkout. Por exemplo, para checkout na branch modify-file, faremos o seguinte:

git checkout modify-file

Profundidade de clonagem

Ao trabalhar com git, as alterações the branch são salvas através de um commit executando o comando git commit. Cada commit cria um novo estado desse branch, que você pode reverter mais tarde, se necessário. Pense em cada commit como se fosse uma captura de tela, com o git mantendo registro de todas essas capturas. Você pode reverter um branch para qualquer uma dessas capturas a qualquer momento.

O comando git clone quando usado sem opções, baixa todos os commits de todas as branchs para o seu computador local. Dependendo do tamanho do projeto, isso pode ocupar uma quantidade significativa de espaço em seu armazenamento local. Se você sabe que não precisará da história inteira, você pode usar o parâmetro --depth para especificar quantos commits (ou snapshots) você quer clonar.

Para clonar a branch principal enquanto carrega apenas o commit mais recente, use o comando a seguir:

git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git

Clonando uma Branch Específica

Aprendemos a clonar um repositório usando git clone. Por padrão, este comando clona tudo para o seu computador local. frequentemente, você pode estar interessado apenas em trabalhar em uma determinada ramificação, portanto, seria mais eficiente clonar apenas essa ramificação particular. Esta abordagem salva espaço em disco e permite que você comece a trabalhar imediatamente sem precisar alternar ramificações após o clonamento.

Na analogia de escrita de livros, considere ser encarregado de trabalhar na reescrita do segundo capítulo de um livro. Neste caso, você deve clonar apenas a ramificação onde esse trabalho está sendo realizado, já que é desnecessário ter acesso a ramificações relacionadas à revisão de outros capítulos.

Você pode instruir o git a clonar uma única ramificação adicionando os argumentos --single-branch e --branch seguidos pelo nome da ramificação:

git clone --single-branch --branch <branch_name> <repository_url>

Vamos descompactar o comando:

  • git clone: Este é o comando básico do git usado para copiar um repositório de uma fonte remota para o seu computador local.
  • --single-branch: Esta opção informa ao Git que deve clonar apenas uma única ramificação. Se nenhuma ramificação for especificada, a ramificação padrão será clonada.
  • --branch : essa opção especifica a branch para clonar. O > é o nome da branch que você deseja clonar.
  • : Esta é a URL do repositório.

 Por exemplo, para clonar apenas a branch modify-file do nosso repositório, podemos fazer o seguinte:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

Como Trabalhar com uma Branch Clonada

Ao trabalhar numa branch, existem três operações essenciais que você precisa fazer:

  1. Salvar seu trabalho atual criando um snapshot do estado atual.
  2. Fazer o upload das suas mudanças para que todos tenham acesso a elas.
  3. Baixar as mudanças de outras pessoas e juntá-las com as suas.

Salvar suas mudanças com git commit

Em Git, salvar o seu trabalho é chamado de criar um comit. Este processo tira uma foto do estado atual da ramificação que você está trabalhando.

O estado da ramificação é salvo na sua máquina local após cada comit, permitindo que você navegue entre as várias etapas do progresso.

Para commitar suas mudanças no git, você usa o comando git commit. No entanto, antes de commitá-las, o git precisa saber quais arquivos você deseja incluir no commit. Você especifica os arquivos a serem salvos usando o comando git add. A sintaxe para esse comando é a seguinte:

git add <path_to_file>

Na sintaxe, <path_to_file> é o caminho para o arquivo que você deseja commitar. Por exemplo, se estiver na branch modify-file do nosso exemplo de repositório e tiver adicionado um parágrafo ao file2.txt, você adicionaria esse arquivo executando:

git add file2.txt

Após adicionar todos os arquivos que você quer incluir em seu commit, você pode prosseguir com o commit executando:

git commit -m <message>

Aqui, o argumento <message> deve ser uma mensagem concisa entre aspas duplas, brevemente descrevendo as mudanças. Por exemplo:

git commit -m "Add paragraph"

Aqui estão algumas convenções para a mensagem de commit. Elas são essenciais para garantir clareza e entendimento entre todas as pessoas trabalhando no projeto:

  • Use o modo imperativo: Comece sua mensagem de commit com um verbo no modo imperativo (por exemplo, “Adicionar,” “Corrigir,” “Atualizar”). Por exemplo, ao invés de “Adicionada nova funcionalidade,” escreva “Adicionar nova funcionalidade.”
  • Seja conciso mas descritivo: Busque por uma mensagem breve, idealmente com menos de 50 caracteres. No entanto, priorize a clareza na descrição das mudanças. Em vez de “Mudei coisas,” escreva “Atualize estilo da barra de navegação.”
  • Evite mensagens genéricas: Evite mensagens vagas como “Corrija bugs” ou “Faça melhorias.” Em vez disso, seja específico: “Corrigir bug na validação do formulário de login” ou “Melhorar a legibilidade da documentação.”

Fazendo upload das suas mudanças com git push

Quando você faz um commit, ele cria uma imagem instantânea das mudanças no seu computador local. Para que outras pessoas acessem suas mudanças, você precisa enviá-las. Para fazer isso, você usa o comando push.

A sintaxe básica do comando push no Git é:

git push <remote> <branch>

Vamos desconstruí-la:

  • : Este é o nome do repositório remoto onde você quer enviar suas mudanças. Por padrão, quando você clona um repositório, o repositório remoto é chamadoorigin.
  • : Este é o nome da ramificação das mudanças que você quer enviar para o repositório remoto. Se você pular este argumento, o Git enviará mudanças com base na ramificação atual e nas configurações de rastreio remoto.

Aqui estão alguns casos de uso comuns para git push:

  • Enviando mudanças da ramificação atual: git push
  • Aplicando as mudanças de uma determinada branch: git push origin <branch>

Baixando as mudanças com git pull

O Git permite que equipes grandes trabalhem concorrentemente no mesmo projeto. Quando colegas editam a mesma branch que você está trabalhando, a branch local pode ficar desatualizada em relação à branch remota.

Para baixar os commits dos outros, nós usamos o comando git pull . A sintaxe básica do comando push no Git é:

git pull <remote> <branch>

Aqui é o que cada parâmetro faz:

  • <remote>: Esse é o nome do repositório remoto de onde você quer fazer o pull. Por padrão, esse repositório se chama origin.
  • <branch>: Esse é o nome da branch de onde você deseja trazer as mudanças. Se não for especificado, o git usa a branch atual juntamente com sua branch upstream.

Aqui estão alguns casos de uso comuns do git pull:

  • Puxando mudanças da branch atual: git pull
  • Puxando as mudanças de uma branch específica: git pull origin <branch>

Fluxo de trabalho commit-pull-push

Ao usar o Git, recomendo que você faça pull frequentemente para garantir que a sua branch local permaneça atualizada. Adviro que você adote as seguintes melhores práticas:

  • Antes de iniciar seu trabalho, faça o pull das últimas atualizações para sua branch atual para garantir que você está trabalhando na versão mais recente.
  • Commit frequentemente, garantindo que cada commit seja focado em pequenas mudanças logicamente relacionadas.
  • Após fazer algumas mudanças e criar um commit, faça o pull novamente para atualizar sua branch, caso alguém tenha feito atualizações concorrentemente.
  • Finalmente, publique suas mudanças no repositório remoto.

Conflitos no Git

Ao executar o comando git pull para baixar as mudanças the um repositório remoto, pode ocorrer de se enfrentar com um cenário onde outro commit modificou as mesmas linhas que as suas commits locais. O Git tenta mesclar automaticamente as mudanças e, na maioria dos casos, é bem-sucedido. Por exemplo, se as mudanças forem feitas em partes diferentes do mesmo arquivo, o Git consegue mesclá-las sem problemas porque as commits afetam seções distintas.

Entretanto, se você e outro colaborador tiverem editado o mesmo parágrafo, o Git não será capaz de decidir qual versão manter, resultando em um conflito de mesclagem. Nessa situação, você precisará resolver manualmente o conflito decidindo quais mudanças manter.

Para obter orientações adicionais sobre a resolução de conflitos, recomendo ler este artigo sobre como resolver conflitos de mesclagem em Git.

Baixar no GitHub

Em certas situações, você deseja uma cópia local de um repositório para uso sem a intenção de modificá-lo. Se for um repositório público, não há necessidade de instalar o Git em seu computador local. Você pode baixar diretamente o repositório do GitHub clicando no botão Código seguido do botão Baixar Zip conforme mostrado abaixo:

Conclusão

O clonagem de Git permite que você copie um repositório Git para seu computador local, permitindo que você utilize o código ou expanda-o adicionando novas funcionalidades. Ao clonar um repositório, todas as branches são baixadas, o que pode consumir uma quantidade significativa de espaço em disco.

Ramas são utilizadas para trabalhar em mudanças ou funcionalidades específicas. Clonar uma ramificação específica permite que você contribua a essas mudanças sem baixar trabalhos não relacionados, reduzindo muito o espaço em disco e mantendo seu disco local mais limpo.

Se você quiser saber mais sobre o assunto, eu recomendo este Tutorial de Git e GitHub para Iniciantes.

Source:
https://www.datacamp.com/tutorial/git-clone-branch-tutorial