Conceito de Branch
- 24/09/2022
- 3 min
Git
Github
Depois de conhecermos os 3 Estados dos arquivos rastreados pelo Git, conseguimos entender e criar o nosso Primeiro repositório no Github, já enviando os arquivos do projeto para o repositório remoto, agora precisamos entender um conceito um pouco mais avançado do Git, as Branchs.
O que são as Branchs?
As branchs(ramificações) é como se fosse uma linha independente de desenvolvimento, todo projeto precisa conter pelo menos uma que é criada automaticamente após o primeiro commit, chamada de main/master. Podemos criar novas ramificações principalmente quando precisamos adicionar uma nova funcionalidade, ou corrigir algum bug, sem interferir no desenvolvimento e andamento do projeto.
Podemos abstrair um pouco tudo isso imaginando a branch como uma "linha do tempo", possuímos a main/master onde o progresso de desenvolvimento ocorre naturalmente, ao criarmos uma nova branch criamos uma nova "linha do tempo" com o mesmo código da main, a diferença é que podemos realizar alterações tranquilamente, já que estamos em uma "linha do tempo" paralela.
Essa imagem ilustra bem o conceito, onde a Branch 1 e a Branch 2 podem ser uma nova feature ou uma correção/alteração e a master segue intacta, agora partiremos para o terminal Bash.
Branch na prática
Para começarmos, que tal nós visualizarmos as novas branchs existentes? no git bash podemos utilizar o comando:
$ git branch
Caso nenhuma branch tenha sido criada, só irá mostrar a main/master que vem por padrão, para criarmos uma nova é realmente simples:
$ git branch NomeDaBranch
(Lembrando que precisamos ter pelo menos um commit no projeto, para o git identificar qual é a branch principal).
Algo normal de acontecer na correria do dia a dia é criar branch com nome errado, para isso o Git tem um comando super simples para renomear uma branch.
$ git branch -m NovoNomeDaBranch
Aparentemente nada mudou, isso é por que você precisa "mover" para a branch criada, você ainda está na main/master, para irmos basta utilizar o comando checkout:
$ git checkout NomeDaBranch
Agora podemos realizar as nossas modificações no código sem interferir na versão principal.
Caso queira excluir a branch, uma vez que ela não será mais usada, lembrando que para isso precisamos estar "fora" da ramificação que vamos deletar.
$ git branch -d NomeDaBranch ou $ git branch -D NomeDaBranch
Ok, mas qual a diferença de -d para -D?
Ao usar o -d minúsculo, seria uma forma "segura", já que o Git irá impedir de excluir a ramificação se existirem mudanças não mescladas(Irei explicar um pouco a frente o que significa mesclagem).
E o -D maiúsculo seria ao contrario, ele força uma exclusão mesmo se houver mudanças não mescladas.
Merge
Chegou o momento mais esperado, você finalizou a task, corrigiu o bendito bug no header, e está usando uma branch separada fix/header, agora como podemos juntar essa "linha do tempo" com a ramificação principal? Bem simples, podemos utilizar o Merge.
Primeiro precisamos ir para a branch que queremos receber as alterações e em seguida mesclar as alterações com o merge:
$ git merge fix/header
Agora você conhece um dos principais conceitos do Git, muito utilizado quando existe mais de um desenvolvedor em um projeto, dessa maneira fica tudo bem divido evitando mexerem na mesma linha de código e criarem um conflito ou até pior...
Fontes:
https://www.hostinger.com.br/tutoriais/git-branch
https://git-scm.com/