Neste artigo, apresentarei os fluxos de trabalho do clone Git e da ramificação Git e mostrarei como você pode clonar uma ramificação específica 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 do GitHub
  • Um sorriso no seu rosto (coloque aquele sorriso amigo 😅)

Introdução rápida ao Git e GitHub

De acordo com 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.

GitHub, por outro lado, é um serviço de hospedagem baseado na Web para controle de versão usando o Git. Ele oferece todas as funcionalidades de controle de versão distribuído e gerenciamento de código fonte do Git, além de adicionar mais recursos ao código do computador.

Como instalar o Git no Windows

Baixe e instale o mais recente Git para Windows Installer aqui.

Como instalar o Git no Linux

Aqui estão os comandos baseados na sua distribuição Linux:

Debian ou Ubuntu

sudo apt-get updatesudo 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 mais recente Instalador do Git for Mac aqui.

Ou você pode digitar este comando:

brew install git

Agora que temos o Git instalado, vamos para o tutorial.

Introdução ao Git Clone

O Git permite gerenciar e versionar seu (s) projeto (s) 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 clonar esse repositório na sua máquina local e ter todos os arquivos, e ele se ramifica localmente (em breve, explicarei mais sobre as ramificações).

Screenshot 2020 06 23 at 5.47.48 AM

Por exemplo, você pode clonar o repositório do freeCodeCamp com o SSH da seguinte maneira:

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Introdução aos Git Branches

Ao trabalhar em um projeto, você provavelmente terá recursos diferentes. E vários colaboradores estarão trabalhando neste projeto e em seus recursos.

As ramificações permitem criar um “playground” com os mesmos arquivos no master ramo. Você pode usar essa ramificação para criar recursos independentes, testar novos recursos, fazer alterações de última hora, criar correções, escrever documentos ou experimentar idéias sem interromper ou afetar o código de produção. Quando terminar, você mescla a ramificação na produção master ramo.

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 é frequentemente considerado “código de produção e implementação”. Novas filiais como passwordless-auth ou refactor-signup-ux pode ser criado a partir do master ramo.

Screenshot 2020 06 22 at 2.47.53 AM
Todas as filiais no repositório do freeCodeCamp

Como clonar ramos Git

Enquanto você pode clonar repositórios com o git clone comando, lembre-se de que isso clona a ramificação e o controle remoto HEAD. Isso geralmente é master por padrão e inclui todas as outras ramificações no repositório.

Então, quando você clona um repositório, clona o master e todos os outros ramos. Isso significa que você terá que fazer check-out de outro ramo.

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 ramificação desde que sua “ramificação de recursos” será mesclada master depois. Como então você clona isso passwordless-auth ramificação sem buscar todas as outras ramificações com “um monte de arquivos que você não precisa”?

Eu criei este repositório de amostra para explicar isso. Este repositório possui um blog simples criado com o Nextjs e possui quatro ramos 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 terminal da API em vez de um page. Em nosso repositório, criei diferentes APIs fictícias neste diretório para tornar cada ramo diferente.

o master ramo mantém o arquivo pages / api / hello.js enquanto passwordless-auth mantém o arquivo páginas / api / auth.js. Cada arquivo apenas retorna uma resposta de texto fictícia. Vejo masterOlá, resposta da API 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 todas as ramificações deste repositório e você pode alternar facilmente entre cada uma para ver cada versão e seus arquivos.

git branch -a

Screenshot 2020 06 22 at 4.51.56 AM

Querendo saber onde controles remotos / origem / .. ramos vieram?

Ao clonar um repositório, você extrai dados de um repositório na Internet ou de um servidor interno conhecido como controlo remoto. A palavra origem é um alias criado pelo seu Git para substituir o URL remoto (você pode alterar ou especificar outro alias, se desejar).

Estes controles remotos / origem / .. As ramificações apontam você de volta ao repositório de origem que você clonou da Internet, para que você ainda possa executar pull / push a partir da origem.

Screenshot 2020 06 23 at 5.24.43 AM

Então, quando você clona master na sua máquina, remotes/origin/master é o original master ramificação na internet e master está na sua máquina local. Então você vai puxar / empurrar de e para o remotes/origin/master.

Em suma Controlo remoto é o URL que aponta para o repositório na internet enquanto Origem é um alias para este URL remoto.

Screenshot 2020 06 23 at 5.28.06 AM

Como clonar uma ramificação específica

Agora vamos clonar um ramo específico do nosso repositório de demonstração. Existem duas maneiras de clonar um ramo específico. Você também pode:

  • Clone o repositório, obtenha todas as ramificações e faça check-out para uma ramificação específica imediatamente.
  • Clone o repositório e busque apenas uma única ramificação.

opção um

git clone --branch  

ou

git clone -b  
Aqui -b é apenas um apelido para –ramo

Com isso, você busca todas as ramificações no repositório, faz check-out na que você especificou e a ramificação específica se torna a ramificação local configurada para git push e git pull . Mas você ainda buscou todos os arquivos de cada ramificação. Pode não ser o que você quer, certo? 🌚

Vamos testá-lo:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

Isso configura automaticamente passwordless-auth como filial local, mas ainda rastreia outras ramificações.

Screenshot 2020 06 23 at 5.30.01 AM

Screenshot 2020 06 30 at 3.27.31 AM

Opção Dois

git clone --branch  --single-branch 

ou

git clone -b  --single-branch 
Aqui -b é apenas um apelido para –ramo

Isso executa a mesma ação que a opção um, exceto que o --single-branch A opção foi introduzida no Git versão 1.7.10 e posterior. Ele permite buscar apenas arquivos da ramificação especificada sem buscar outras ramificações.

Vamos testá-lo:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

Isso configura automaticamente passwordless-auth como a ramificação local e rastreia apenas essa ramificação.

Screenshot 2020 06 23 at 5.31.12 AM

Screenshot 2020 06 30 at 3.29.07 AM

Se você correr cd pages/api você encontrará o auth.js arquivo no passwordless-auth ramificação conforme o esperado da configuração anterior.

Conclusão

Você pode estar ficando sem internet ou espaço de armazenamento, mas precisa trabalhar em uma tarefa em uma ramificação específica. Ou você pode clonar uma ramificação específica com arquivos limitados por vários motivos. Felizmente, o Git fornece a flexibilidade para fazer isso. Flexione seus músculos e experimente, há muito mais “Git” para aprender.

Um de cada vez, sim? ✌🏾