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