Branches

Uma branch é uma ramificação na linha do tempo do Git.

Criando E Trocando De Branch

Existem várias formas de criar uma branch. Uma delas, usando o comando git branch, simplesmente cria uma branch e não faz mais nada. Para criar a branch com o nome minha-branch, use:

git branch minha-branch

Por padrão, você não vai estar na branch que criou. Para trocar de branch use git checkout, assim:

git checkout minha-branch

É possível, também, utilizar git reset para trocar de branch.

git reset minha-branch

A flag --soft troca de branch preservando alterações feitas mas que não entraram no commit:

git reset --soft minha-branch

Para criar e trocar de branch ao mesmo tempo, use git checkout com a flag -b, assim:

git checkout -b minha-branch

Por padrão, a nova branch começa do commit atual (HEAD). É possível criar uma branch a partir de um commit, digamos, 0935946.

git branch minha-branch 0935946

Exemplo

Suponhamos um commit 3c97506 seguido de um commit ec49a96, ambos dentro da branch master. A HEAD aponta para este último. Temos uma árvore assim:

master
ec49a96 <- HEAD
   |
3c97506

Após fazermos uma nova branch teste (git checkout -b teste), e produzirmos um novo commit 4b12d0a nela, temos a seguinte:

         teste
         4b12d0a <- HEAD
        /
master /
ec49a96
   |
3c97506

Se voltarmos para a master (git checkout master), e produzirmos um novo commit 80ba4e4, temos:

        master   teste
HEAD -> 80ba4e4  4b12d0a
           |    /
           |   /
        ec49a96
           |
        3c97506

Renomeando Branches

Para renomear branches, basta usar a flag -m, passando em seguida o nome da branch a ser renomeada, e depois o novo nome da branch.

git branch -m nome-antigo nome-novo

Se a branch alvo for a branch atual, o nome dela pode ser omitida, e somente o novo nome da branch atual precisa ser informado:

git branch -m nome-novo

Portanto, podemos renomear a master para main da seguinte forma:

git branch -m master main

Deletando Branches

Para deletar branches, existem duas formas. A primeira, a forma segura, requer que você tenha feito merge dessa branch em outra antes (será explicado nos próximos dois capítulos). Basta passar a flag -d para o comando git branch, junto ao nome da branch:

git branch -d minha-branch

Para forçar a deleção sem ter salvo a branch em outra, use -D:

git branch -D minha-branch