Noções básicas de branches

GitBeginner
Pratique Agora

Introdução

Imagine que você esteja escrevendo uma história. Em determinado momento, a trama pode seguir por dois caminhos diferentes: o herói luta contra o dragão ou faz amizade com ele. Você quer escrever as duas versões para descobrir qual é melhor, mas não quer bagunçar o manuscrito principal.

No Git, o branching permite fazer exatamente isso. Ele cria uma linha de desenvolvimento paralela na qual você pode fazer experimentos com segurança. Os branches são uma das ideias mais importantes do Git porque tornam o trabalho isolado simples e barato.

No Git, um branch não é uma cópia completa do projeto. Ele é principalmente um ponteiro móvel para uma linha de commits. Por isso, criar branches é rápido e exige poucos recursos.

  1. Desenvolver recursos: criar um novo sistema de login em um espaço separado.
  2. Fazer experimentos: testar uma nova ideia de design sem quebrar o site atual.
  3. Corrigir bugs: corrigir um erro crítico de forma isolada.

Neste laboratório, você criará uma linha do tempo paralela (branch), fará alterações nela e depois voltará à linha do tempo principal para comprovar que seus experimentos não afetaram o projeto original.

Criar um branch de recurso

Por padrão, todo repositório Git começa com um branch principal, geralmente chamado de master ou main. Pense nele como a “Linha do Tempo Principal”: a versão oficial e estável do seu projeto.

Para trabalhar em um novo recurso, como uma página de login, sem colocar em risco a estabilidade do projeto principal, você cria um novo branch.

Verifique sua localização atual:

git branch

Saída:

* master

O * indica que você está atualmente na linha do tempo master.

Esse marcador mostra o contexto do branch atual. No Git, muitos comandos atuam em relação ao branch para o qual HEAD aponta naquele momento. Por isso, é importante saber onde você está.

Crie um novo branch chamado feature_login:

git branch feature_login

Agora você criou uma nova linha do tempo! No entanto, ainda não está nela.

Isso mostra uma distinção importante do Git: criar um branch e alternar para um branch são ações separadas. Um branch pode existir sem ser o contexto de trabalho atual.

Verifique se o branch foi criado:

git branch

Saída:

  feature_login
* master

O branch feature_login existe, mas o * mostra que você ainda está no master.

Alternar para o novo branch

Criar uma linha do tempo não é suficiente; você precisa ir até ela. O comando para alternar entre branches é git checkout.

Alterne para o novo branch:

git checkout feature_login

Saída:

Switched to branch 'feature_login'

Verifique se você mudou de branch:

git branch

Saída:

* feature_login
  master

O asterisco (*) mudou de lugar! Agora você está trabalhando na linha do tempo feature_login. A partir deste momento, todas as alterações que você fizer acontecerão somente nela.

Mais precisamente, os novos commits feitos agora avançarão o feature_login, e não o master. Os dois branches ainda compartilham o histórico anterior até o ponto em que se separam.

Trabalhar no branch de recurso

Agora que você está em um espaço seguro para fazer experimentos, vamos escrever algum código. Criaremos um script para o nosso “recurso de login”.

Crie um arquivo chamado login.sh:

echo "echo 'Logging in...'" > login.sh

Verifique se ele existe na sua pasta:

ls

Você deverá ver README.md (herdado do master) e o novo login.sh.

Neste momento, login.sh é apenas um arquivo no disco. Para salvá-lo oficialmente no histórico deste branch, precisamos criar um commit.

Isso reforça o conceito de branch: os arquivos aparecem na árvore de trabalho, mas o histórico do branch só muda quando você cria commits nele.

Fazer commit das alterações no branch

Vamos salvar seu trabalho. Lembre-se do fluxo de trabalho padrão do Git: Inicializar -> Preparar -> Fazer commit.

Verifique o status:

git status

login.sh aparece como Untracked.

Prepare o arquivo:

git add login.sh

Faça commit do arquivo no histórico de feature_login:

git commit -m "Add login feature script"

Saída:

[feature_login 8a2b3c] Add login feature script

Agora você registrou essa alteração permanentemente, mas somente na linha do tempo feature_login.

Esse isolamento é o motivo pelo qual os branches são tão úteis. Eles permitem desenvolver, testar ou fazer experimentos sem avançar o branch principal até que você esteja pronto.

Verificar o isolamento do branch

Este é o momento decisivo. Afirmamos que feature_login é um universo separado de master. Vamos provar isso voltando para master.

Alterne de volta para o branch master:

git checkout master

Saída:

Switched to branch 'master'

Veja os seus arquivos:

ls

Onde está login.sh? Ele desapareceu!

Era exatamente isso que queríamos. O arquivo login.sh não existe na linha do tempo master. Seu experimento está isolado com segurança.

Para confirmar que ele não foi perdido para sempre, volte ao branch de recurso:

git checkout feature_login
ls

Ele estará de volta! O Git troca instantaneamente os arquivos do diretório quando você alterna entre as linhas do tempo.

Resumo

Neste laboratório, você aprendeu o poder do Branching:

  1. Segurança: você pode criar novos recursos em um branch separado (feature_login) sem colocar o código principal (master) em risco.
  2. Troca de contexto: você usou git checkout para alternar entre essas linhas do tempo paralelas.
  3. Isolamento: você comprovou que as alterações confirmadas em um branch não aparecem em outro.

É assim que as equipes profissionais trabalham. Os desenvolvedores criam branches para cada novo recurso ou correção de bug, mantendo a base de código principal limpa e estável.