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