Imagine que você está escrevendo um livro e quer experimentar ideias novas sem corromper o 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 “ramificações”. Cada ramificação é como um caminho de desenvolvimento separado, permitindo que você explore mudanças sem afetar a base de código principal.
Neste artigo, eu vais guiar você através do uso de git clone
, focando 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 branch desejada e <repository_url>
pela URL do repositório. Este comando cria uma cópia local da branch especificada, permitindo um desenvolvimento imediato e concentrados nesta branch.
Exemplo
Ao longo deste artigo, nós usaremos este repositório. Você pode usá-lo para testar os comandos que você aprender na sua máquina. O repositório contém três branches:
main
: A ramificação padrão com dois arquivos de texto.add-new-file
: Uma ramificação onde um terceiro arquivo foi adicionado.modify-file
: Uma ramificação onde o segundo arquivo foi modificado.
Este é o jeito que nós clonamos 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 é 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 esta comando, todas as branchs serão copiadas para o seu computador local. No entanto, somente os arquivos de uma branch são visíveis de cada vez, chamada de checked-out branch. Após clonar um repositório, a branch padrão (normalmente chamada de main
ou master
) é a que é marcada.
Mudando de branchs
Após um clonagem completo, podemos mudar (checkout) para a branch desejada usando o comando git checkout. Por exemplo, para checkout a branch modify-file, faremos o seguinte:
git checkout modify-file
Profundidade de clonagem
Quando trabalha com git, as alterações the um branch são salvas através de comandos de commit deles usando o git commit
comando. Cada commit cria um novo estado desse branch, que você pode reverter posteriormente, se necessário. Pense em cada commit como criando uma imagem de snapshot, com o git mantendo um registro de todos esses snapshot. Você pode reverter um branch para qualquer desses snapshot 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ê deseja clonar.
Para clonar a branch principal enquanto carrega apenas o commit mais recente, use o seguinte comando:
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, essa comando clona tudo para o seu computador local. frequentemente, você pode estar interessado em trabalhar apenas em uma determinada ramificação, portanto, seria mais eficiente clonar apenas essa ramificação particular. Esse método 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ê deveria clonar apenas a ramificação onde esse trabalho está sendo realizado, já que não é necessá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
: Esta 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:
- Salvar o seu trabalho atual criando um snapshot do estado atual.
- Enviar suas mudanças para que todos tenham acesso a elas.
- Baixar as mudanças dos outros e juntá-las com as suas.
Salvar suas mudanças com git commit
No Git, salvar o seu trabalho é chamado de criar um commit. Este processo captura uma imagem do estado atual da branch que você está trabalhando.
O estado da branch é salvo na sua máquina local após cada commit, permitindo que você navegue entre as várias fases 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 estivermos na branch modify-file
do nosso repositório de exemplo e tivermos 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 <mensagem>
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, em vez de “Adicionada nova funcionalidade,” escreva “Adicionar nova funcionalidade.”
- Seja conciso mas descritivo: Aim para uma mensagem breve, idealmente com menos de 50 caracteres. No entanto, priorize a clareza ao descrever as mudanças. Em vez de “Alterou coisas,” escreva “Atualizar estilo da barra de navegação.”
- Evite mensagens genéricas: Evite mensagens vagas como “Corrigir bugs” ou “Fazer melhorias.” Em vez disso, seja específico: “Corrigir bug na validação do formulário de login” ou “Melhorar a legibilidade da documentação.”
Enviando suas mudanças com git push
Quando você faz um commit, ele cria uma cópia de snapshot das mudanças no seu computador local. Para que outras pessoas acessem suas mudanças, você precisa fazer o upload delas. Para fazer isso, você usa o comando push
.
A sintaxe básica do comando push no Git é:
git push <remote> <branch>
Vamos desconstruí-la:
<remote>
: Este é o nome do repositório remoto para onde você quer enviar suas mudanças. Por padrão, quando você clona um repositório, o repositório remoto é chamado origin.<branch>
: Esta é a denominação da ramificação cujas mudanças você deseja 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 rastreamento 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 ramificação:
git push origin <branch>
Baixando as mudanças com git pull
Git permite que equipes grandes trabalhem concorrentemente no mesmo projeto. Quando colaboradores editam a mesma ramificação que você está trabalhando, a sua ramificação local pode ficar desatualizada em relação à ramificação remota.
Para baixar os commits de outras pessoas, nós usamos o comando git pull
. A sintaxe básica do comando push no git é:
git pull <remote> <branch>
Veja o que cada parâmetro faz:
<remote>
: Este é o nome do repositório remoto do qual você deseja fazer o pull. Por padrão, esse repositório se chama origin.<branch>
: Esta é a denominação da ramificação a partir da qual você deseja trazer as mudanças. Se não for especificado, o git usa a ramificação atual juntamente com sua ramificação upstream.
Aqui estão alguns casos de uso comuns do git pull
:
- Puxando mudanças da ramificação atual:
git pull
- Puxando as mudanças de uma ramificação específica:
git pull origin <branch>
Fluxo de trabalho commit-pull-push
Ao usar Git, recomendo frequentemente fazer pull para garantir que a sua ramificação local permaneça atualizada. Advoro em manter as seguintes melhores práticas:
- Antes de começar o seu trabalho, faça o pull das últimas atualizações para a sua ramificação atual, para garantir que estão a trabalhar na versão mais recente.
- Commit frequentemente, garantindo que cada commit seja focado em pequenas mudanças relacionadas logicamente.
- Após fazer algumas mudanças e criar um commit, faça o pull novamente para atualizar a sua ramificação, caso alguém tenha feito atualizações concorrentemente.
- Finalmente, publique as suas mudanças no repositório remoto.
Conflitos de Git
Ao executar o comando git pull para baixar alterações the um repositório remoto, pode ocorrer de se encontrar em um cenário onde outro commit modificou as mesmas linhas que suas commits locais. O Git tenta mesclar automaticamente as mudanças e, na maioria dos casos, é bem-sucedido. Por exemplo, se as alterações forem feitas em partes diferentes do mesmo arquivo, o Git consegue mesclar essas mudanças sem problemas, porque as commits afetam seções distintas.
No entanto, se você e outro colaborador tiverem editado o mesmo parágrafo, o Git não conseguirá decidir qual versão manter, resultando em um conflito de mesclagem. Nessa situação, você precisará resolver manualmente o conflito decidindo quais alterações manter.
Para orientação adicional sobre o resolvimento de conflitos, recomendo ler este artigo sobrecomo resolver conflitos de mesclagem no Git.
Download do 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 noCódigo botão seguido doBaixar Zip botão, conforme mostrado abaixo:
Conclusão
O clonagem do Git permite que você copie um repositório do 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.
As branchs são utilizadas para trabalhar em mudanças ou recursos específicos. Clonar uma determinada branch permite que você contribua a essas mudanças sem baixar trabalhos não relacionados, reduzindo muito o espaço em disco e mantendo o 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