Git Tutorial - Sucursais

  1. Por que o branch é necessário?
  2. Criar uma nova ramificação no Git
  3. Apagar um ramo no Git
  4. Crie e confira um novo ramo simultaneamente no Git

Neste tutorial, vamos aprender sobre um dos recursos mais importantes do sistema de controle de versões do git - o branch.

Por que o branch é necessário?

Até agora, nós só trabalhamos com um branch - o ramo master. Ele é o branch padrão quando criamos um novo repositório.

Geralmente falando, o ramo master representa a versão estável dos seus códigos e tem a intenção de ser lançado ou publicado. Por essa razão, nós não queremos experimentar novas funcionalidades no novo código no ramo master para evitar que ele mexa com o código.

O que precisamos quando queremos adicionar uma nova funcionalidade à nossa aplicação, é criar algum ambiente isolado para experimentar esta nova funcionalidade, e se a terminarmos e testarmos, podemos fundir esta nova funcionalidade no ramo master. Ao invés de adicionar mais commits ao ramo master, nós fazemos um novo ramo para funcionar como um ambiente isolado e para testar a nova funcionalidade.

Criar uma nova ramificação no Git

$ git branch test_branch

O que estamos aqui a fazer quando fazemos este ramo test_branch é que estamos a copiar o estado do código do ramo master para este ramo, e depois podemos trabalhar neste ramo test_branch.

Você pode listar os ramos disponíveis no seu PC, digitando,

$ git branch
* master
  test_branch

O recém-criado ramo test_branch e o ramo master estão listados aqui.

Agora você ainda está no ramo master embora você tenha acabado de criar o novo ramo. Você precisa checar o novo ramo para trabalhar nele.

$ git checkout test_branch
Switched to branch 'test_branch'
D       test1_rename.txt

Ele diz que agora ele é trocado para o branch test_branch, e se você fizer o branch git novamente,

$ git branch
  master
* test_branch

Então vamos ver que agora estamos no ramo test_branch porque o asterisco * está antes do test_branch mas não mais do master.

Vamos adicionar algum texto ao arquivo test3.txt, como This is the added line in branch test_branch.. Agora, se você fizer o git status, você verá que você alterou este arquivo.

$ git status
On branch test_branch
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   test3.txt

no changes added to commit (use "git add" and/or "git commit -a")

Nós poderíamos submeter as alterações a este ramo como aprendemos nos últimos capítulos.

O que fizemos foi criar este novo branch e fazer algumas alterações que estão isoladas do branch master. Os códigos no ramo master mantêm-se inalterados e estáveis.

Apagar um ramo no Git

Depois de estarmos satisfeitos com a nova funcionalidade adicionada ao ramo, podemos apagá-la.

$ git checkout master
$ git branch -d test_branch
error: The branch 'test_branch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D test_branch'.

O parâmetro -d depois de branch significa que ele irá apagar o ramo especificado.

Nós temos um erro dizendo The branch 'test_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D test_branch'.. O d em minúsculas só funciona depois que fundimos o ramo, mas o D em maiúsculas pode apagar o ramo à força. Vamos introduzir como fundir o ramo nos próximos capítulos, mas por enquanto, vamos apenas usar o D em maiúsculas para deletar este ramo.

$ git branch -D test_branch
Deleted branch test_branch (was 7d6bca6).

Se você verificar ramos agora, ele só mostra o ramo master agora.

$ git branch
* master

Crie e confira um novo ramo simultaneamente no Git

O fluxo de trabalho mostrado acima primeiro cria um ramo utilizando o git branch e depois verifica este ramo utilizando o git checkout.

Ele tem uma maneira mais rápida de combinar estes dois passos em um.

$ git checkout -b new_test_branch
Switched to a new branch 'new_test_branch'
M       test3.txt

O que ele faz é que ele cria um ramo e o verifica também. Então não temos que executar esses dois passos separadamente.