Conceitos-chave

Branch

Uma branch é uma sequência de commits que representa a evolução do projeto (ou de uma funcionalidade específica) ao longo do tempo. Sempre há pelo menos uma branch em um repositório, geralmente chamada de branch main.

Você pode criar novas branches para trabalhar em novas funcionalidades ou correções de bugs e mergeá-las de volta na branch main quando estiverem prontas. Quando você cria uma nova branch, ela começa a partir do commit mais recente da branch atual.

O termo branch de feature (feature branch) se refere a uma branch comum dedicada a uma funcionalidade ou tarefa específica. Uma branch de feature pode ter qualquer nome que faça sentido para você ou para sua equipe; para o Git, isso não importa (por exemplo, login, feature-login, feature/login, bugfix/issue-123 etc.)

As branches permitem experimentar ideias novas, trabalhar em diferentes funcionalidades em paralelo e isolar alterações da branch main até que estejam prontas para ser integradas. Embora você só possa trabalhar em uma branch por vez, pode trocar de uma branch para outra sempre que precisar.

No Git, branches são leves e fáceis de criar e gerenciar. Criar uma branch é instantâneo e não exige duplicar nenhum arquivo. Isso facilita criar várias branches para diferentes funcionalidades ou experimentos sem se preocupar com espaço de armazenamento ou desempenho.

Clonar um repositório remoto ou dar um fetch nele cria cópias somente leitura das branches desse repositório remoto. Essas branches são chamadas de branches de rastreamento remoto. Elas recebem nomes no formato <remote-name>/<branch-name> (por exemplo, origin/main). Essas branches permitem ver o estado das branches do repositório remoto sem afetar suas branches locais.

Entrada principal: Branch de rastreamento remoto

Exemplos

Crie uma nova branch chamada new-feature e já troque para ela:

git switch -c new-feature

Troque para a branch main:

git switch main

Faça o merge da branch other-feature na branch atual:

git merge other-feature

Exclua a branch other-feature:

git branch -d other-feature

Configure sua branch atual para rastrear a branch remota origin/feature:

# No momento, em uma branch chamada `feature`:
git branch --set-upstream-to=origin/feature
# Versão mais curta:
git branch -u origin/feature

# Agora você pode executar `git pull` sem especificar
# a branch remota. Isso vai baixar as alterações
# de `origin/feature` e mergeá-las na
# branch `feature`:
git pull