Git Clone Branch - Como clonar um branch específico
Ao contrário dos sistemas de controle de versão centralizados mais antigos, como SVN e CVS, o Git é distribuído. Cada desenvolvedor tem o histórico completo e o controle de seu código local ou remotamente. Eles também podem acessar ou manipular várias partes do código conforme julgarem adequado em diferentes locais.
Desde que Linus Torvalds (o famoso criador do kernel do sistema operacional Linux) criou o Git em 2005 para o desenvolvimento do kernel Linux, ele se tornou o sistema de controle de versão moderno mais amplamente usado no mundo.
Neste artigo, apresentarei a você o clone Git e os fluxos de trabalho de branch do Git e mostrarei como você pode clonar um branch específico com base em suas necessidades. Vamos começar! ?
Pré-requisitos
- Conhecimento básico do terminal
- Capacidade de digitar comandos no terminal
- Git instalado (ainda mostrarei como)
- Uma conta GitHub
- Um sorriso em seu rosto (põe aquele sorriso amigo?)
Introdução rápida ao Git e GitHub
De acordo com a Wikipedia,
Git é um sistema de controle de versão distribuído projetado para rastrear alterações em um projeto (código) no desenvolvimento de software. Destina-se a reforçar a coordenação, colaboração, velocidade e eficiência entre os desenvolvedores.O GitHub, por outro lado, é um serviço de hospedagem baseado na web para controle de versão usando Git. Ele oferece todo o controle de versão distribuído e funcionalidade de gerenciamento de código-fonte do Git, além de adicionar mais recursos para código de computador.
Como instalar o Git no Windows
Baixe e instale o Git para Windows Installer mais recente aqui.
Como instalar o Git no Linux
Aqui estão os comandos baseados em sua distribuição Linux:
Debian ou Ubuntu
sudo apt-get update sudo apt-get install git
Fedora
sudo dnf install git
CentOS
sudo yum install git
Arch Linux
sudo pacman -Sy git
Gentoo
sudo emerge --ask --verbose dev-vcs/git
Como instalar o Git em um Mac
Baixe e instale o instalador Git para Mac mais recente aqui.
Ou você pode digitar este comando:
brew install git
Agora que instalamos o Git, vamos prosseguir para o tutorial.
Introdução ao Git Clone
Git permite que você gerencie e crie versões de seus projetos em um "repositório". Este repositório é armazenado em um serviço de hospedagem baseado na web para controle de versão, como o GitHub.
Você pode então clonar este repositório para sua máquina local e ter todos os arquivos e branches localmente (explicarei mais sobre branches em breve).

Por exemplo, você pode clonar o repositório de freeCodeCamp com SSH assim:
git clone [email protected]:freeCodeCamp/freeCodeCamp.git
Introdução aos ramos Git
Ao trabalhar em um projeto, você provavelmente terá recursos diferentes. E vários colaboradores estarão trabalhando neste projeto e em seus recursos.
Ramificações permitem que você crie um "playground" com os mesmos arquivos da master
ramificação. Você pode usar este branch para construir recursos independentes, testar novos recursos, fazer alterações significativas, criar correções, escrever documentos ou experimentar ideias sem quebrar ou afetar o código de produção. Quando terminar, você mescla a ramificação na master
ramificação de produção .
Ramificação é um conceito central no Git que também é usado no GitHub para gerenciar fluxos de trabalho de diferentes versões de um projeto. O master
branch é sempre o branch padrão em um repositório que geralmente é considerado "código de produção e implementável". Novas ramificações como passwordless-auth
ou refactor-signup-ux
podem ser criadas a partir da master
ramificação.

Como clonar ramos do Git
Embora você possa clonar repositórios com o git clone
comando, lembre-se de que ele clona o branch e o remoto HEAD
. Isso geralmente é master
por padrão e inclui todas as outras ramificações no repositório.
Portanto, ao clonar um repositório, você clona o master
e todos os outros branches. Isso significa que você terá que fazer o checkout de outro branch sozinho.
Digamos que sua tarefa em um projeto seja trabalhar em um recurso para adicionar autenticação sem senha a um painel de usuário. E esse recurso está no passwordless-auth
ramo.
Você realmente não precisa do master
branch, já que seu "branch de recurso" será mesclado master
posteriormente. Como então você clona este passwordless-auth
branch sem obter todos os outros branches com "um monte de arquivos que você não precisa"?
Criei este repositório de amostra para explicar isso. Este repositório contém um blog simples construído com Nextjs e tem quatro branches fictícios:
- mestre
- dev
- encenação
- autenticação sem senha
No Nextjs, qualquer arquivo dentro da pasta pages/api
é mapeado para o /api/*
caminho e será tratado como um endpoint da API em vez de um page
. Em nosso repositório, criei diferentes APIs fictícias neste diretório para tornar cada branch diferente.
O master
ramo contém o arquivo páginas / API / hello.js enquanto passwordless-auth
mantém os arquivos páginas / api / auth.js . Cada arquivo retorna apenas uma resposta de texto fictícia. Veja master
a resposta da API hello aqui (com uma mensagem especial para você?).
Vamos clonar o repositório:
git clone [email protected]:BolajiAyodeji/nextjs-blog.git
Isso nos dá acesso a todos os branches neste repositório e você pode alternar facilmente entre cada um para ver cada versão e seus arquivos.
git branch -a

Quer saber de onde vieram os remotos / origem / .. ramos?
Ao clonar um repositório, você obtém dados de um repositório na Internet ou de um servidor interno conhecido como remoto . A palavra origem é um apelido criado pelo seu Git para substituir a URL remota (você pode alterar ou especificar outro apelido, se desejar).
Essas ramificações remotes / origin / .. apontam de volta para o repositório de origem que você clonou da Internet para que ainda possa executar pull / push da origem.

Portanto, quando você clona master
em sua máquina, remotes/origin/master
o master
branch original está na Internet e master
está em sua máquina local. Então você vai puxar / empurrar de e para o remotes/origin/master
.
Em resumo, Remote é a URL que aponta para o repositório na Internet, enquanto Origin é um alias para esta URL remota.

Como clonar um ramo específico
Agora vamos clonar um branch específico de nosso repositório de demonstração. Existem duas maneiras de clonar um branch específico. Você também pode:
- Clone o repositório, busque todos os branches e faça checkout em um branch específico imediatamente.
- Clone o repositório e busque apenas um único branch.
opção um
git clone --branch
ou
git clone -b
Com isso, você busca todos os branches no repositório, faz checkout naquele que você especificou e o branch específico se torna o branch local configurado para git push
e git pull
. Mas você ainda buscou todos os arquivos de cada ramificação. Isso pode não ser o que você deseja, certo? ?
Vamos testar:
git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git
Isso é configurado automaticamente passwordless-auth
como o branch local, mas ainda rastreia outros branches.


Opção Dois
git clone --branch --single-branch
ou
git clone -b --single-branch
Isso executa a mesma ação da opção um, exceto que a --single-branch
opção foi introduzida no Git versão 1.7.10 e posterior. Ele permite que você busque apenas arquivos do branch especificado sem buscar outros branches.
Vamos testar:
git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git
Isso é configurado automaticamente passwordless-auth
como o branch local e rastreia apenas este branch.


Se você executar, cd pages/api
encontrará o auth.js
arquivo no passwordless-auth
branch conforme o esperado na configuração anterior.
Conclusão
Você pode estar ficando sem Internet ou espaço de armazenamento, mas precisa trabalhar em uma tarefa em uma filial específica. Ou você pode querer clonar um branch específico com arquivos limitados por vários motivos. Felizmente, o Git oferece flexibilidade para fazer isso. Flexione seus músculos e experimente, há muito mais "git" para aprender.
Um de cada vez, certo? ✌?