Branch, ou ramo, é uma linha de desenvolvimento de um programa. Num único projeto podem existir diversas branches trabalhando de maneira conjunta. A linha de desenvolvimento principal, como já foi discutido na edição anterior, é chamada de master. Você pode ainda, se desejar, unir vários branches em um só.
Principalmente por questões de segurança. Em geral, usa-se branches quando se deseja implementar uma nova funcionalidade sem que tais alterações afetem diretamente a versão estável do programa. Desta forma, caso esta funcionalidade não venha a funcionar, podemos facilmente deletá-la e retomar a funcionalidade antiga.
Vamos agora criar três branches e em cada um deles adicionar um arquivo de texto diferente. Com o Git Bash aberto, digite o seguinte código:
O comando “git branch” cria um novo branch com o nome que você definiu. Crie três deles: test1, test2 e test3.
Para que as alterações tenham efeito, você precisa usar o comando “push”.
Agora, com os novos branches criados, perceba as modificações em nosso repositório:
Agora que temos nossos branches, devemos ser capazes de navegar entre eles sem nenhuma dificuldade. Para isso, usaremos o seguinte comando:
Mas não estamos interessados em apenas navegar, mas em alterar os três branches criados anteriormente de maneira paralela. Para isso, a primeira coisa que devemos fazer é ir para a branch test1, adicionar um arquivo a ele e repetir o mesmo procedimento para os outros branches. Para adicionar um arquivo, devemos repetir o mesmo processo descrito no tutorial da edição anterior: Vá até a pasta onde você clonou o repositório, adicione um arquivo lá, use o comando “git add
Repita o mesmo processo para os outros branches, variando apenas o nome do arquivo.
Perceba agora que, no nosso repositório, os branches possuem arquivos diferentes inseridos dentro deles:
E o melhor: essa mudança se reflete na hora de dar “checkout”, isto é, a mudança de arquivos dentro da pasta do seu computador acontece de maneira automática!
Este é um dos processos mais trabalhosos, se não o mais, em controladores de versão: União de branches. Às vezes essa união pode gerar conflitos, que devem ser resolvidos manualmente, arquivo por arquivo.
Vamos agora unir os branches test1 e test2. Para isso, alterne para test1 e use o seguinte comando:
Ele irá copiar os arquivos do branch especificado para aquele em que você está atualmente trabalhando. Após o feito, precisamos usar o “push” para que as alterações sejam salvas.
Agora que unimos test2 à test1, não temos mais utilidade para o branch test2. Podemos excluí-lo através do seguinte comando:
Entretanto, esse comando remove o branch apenas do seu computador. Para removê-lo também do repositório remoto, é preciso usar outro comando:
E está feito! : )
Com isso abordamos as principais técnicas em manipulação de branches.
Rotular commits é muito importante. Geralmente esse rótulo é usado para descrever a versão do software correspondente aquele commit. Primeiro você precisa obter o id do commit que você quer rotular. Para isso, use o comando “git log”. Com o id em mãos, podemos facilmente rotular um commit através do comando:
Vamos recapitular os comandos explorados nesta edição?
git branch | Cria um novo branch |
git checkout | Alterna entre diferentes branches |
git merge | Une dois branches diferentes |
git branch -d / git push origin --delete | Deleta um branch |
git tag | Adiciona um rótulo a um commit |
Na primeira edição desta série, aprendemos a criar um repositório remoto no Github. Na segunda, a manipular este repositório através da linha de comando. Nesta, exploramos diversas técnicas de linhas de desenvolvimento. Com esse conhecimento, você já deve ser capaz de realizar a maioria das tarefas em termos de controle de versão.
Com isso encerramos nossa série de tutoriais sobre o Github. Se você tiver gostado, compartilhe com seus amigos! Não se esqueça também de curtir e compartilhar nossa página no Facebook.