Git Tutorial - Sucursais
- Por que o branch é necessário?
- Criar uma nova ramificação no Git
- Apagar um ramo no Git
- 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.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook