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).
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.
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 master
Olá, 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
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.
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.
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
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.
Opção Dois
git clone --branch --single-branch
ou
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.
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? ✌🏾