Guia prático: aprenda a utilizar o Git e integrar com o Github
Conhecendo o Git
Git – é uma das, senão a mais utilizada ferramente de SCM (Source Control Management) presentes no mercado de TI e um ponto muito importante, é disponibilizado de forma 100% Open Source. O Git foi desenvolvido em 2005 por Linus Torvalds após a revogação da licença do BitKeeper, utilizado até então para manter o código fonte do Kernel Linux.
Atualmente é a principal ferramenta de gerenciamento de código fonte, sendo a base para as metodologias de desenvolvimento ágil, como: XP, Agile, Scrum. Não somente nessas metodologias, mas entrando também no universo DevOps, onde vemos as soluções de SCM como a base para as esteiras de desenvolvimento como o Continuous Integration e Continuous Delivery, conhecido como Pipeline CI/CD.
Para esse post a ideia é apresentar o básico da utilização do Git e como integrar com gerenciamento de repositório remoto com Github.
Parte 1 – Básico de Git
Criando Repositórios Locais
Para criar um repositório local basta ter o git instalado (yum/apt install -y git), feito isso crie o repositório com o comando:
git init
Após executar esse comando um diretório oculto será criado com nome .git, armazenando todas as alterações commitadas.
Configurando Usuário e Email para commits
git config --global user.name "Júlio Ballot" git config --global user.email "julio.ballot@4linux.com.br"
Ciclo de Vida
O git possui um ciclo de vida bem simples:
untracked – arquivos e diretórios não controlados/rastreados pelo git
unmodified – arquivo já adicionados e sem modificações
modified – arquivos adicionados mas que possuem alterações a serem adicionadas.
staged – arquivos novos e/ou já modificados que estão prontos para serem adicionados a base git.
Assim que um arquivo entra em modo staged ele está pronto para ser commitado, isso quer dizer, que será gravado na base do repositório local git.
Adicionando/Removendo arquivos
git add . git add * git add <arquivo/diretório>
A diferença dentre esses três comandos está no que exatamente será adicionado, os dois primeiros irão adicionar todo conteúdo presente do diretório atual e qualquer um abaixo deste. Já o terceiro comando adiciona um arquivo ou diretório em particular. Essa diferança é muito importante pois arquivos desnecessários podem acabar sendo adicionados ao repositório.
Para remover um arquivo e/ou diretório basta executar o comando:
git rm <arquivo> git rm <diretório> -r
Com a opção -r removemos recursivamente os arquivos do diretório eliminando o diretório por último.
Primeiro Commit
Com nosso código totalmente editado e adicionado ao repositório devemos registrar as informações na base de dados no git. Para tal utilizando o comando git commit que cria um snapshot do seu filesystem naquele devido momento. O comando deve ser seguido de uma mensagem que irá identificar as alterações ali salvas, ficando:
git commit -m "Criando o primeiro commit"
Com isso terminamos a primeira parte com o básico de utilização do git. Iremos agora ver como gerenciar as branchs de desenvolvimento e como realizar o merge, mesclando todas essas alterações.
Parte 2 – Branchs e Merge
Branchs são ramos, partes de seu código que adicionariam alguma funcionalidade ou que de alguma forma se diferenciam da versão presente na branch principal, branch MASTER.
Para verificar as branchs existentes utilize o comando:
git branch
Para criar uma nova branch apenas informe o nome dessa nova branch após o comando branch.
git branch feature_network_proxy
Para utilizar essa nova branch rode o comando checkout, ele irá mudar seu filesystem com as informações presentes nessa nova branch. Quando uma branch é criada ela não é vazia. O que acontece é uma cópia da branch atual. Se adicionar uma informação em uma branch, como criar um novo arquivo ou adicionar o conteúdo a um arquivo como uma nova função, o git irá criar uma diferença entre essas branchs, basicamente uma nova ramificação de seu código.
Para que possamos mesclar essa informação, devemos utilizar do comando merge. Ele mescla as alterações feitas de uma branch com o conteúdo de outra. Dessa forma conseguimos criar uma evolução de todo processo de desenvolvimento do código e caso necessário podemos reverter estas alterações.
Executando o merge:
git merge feature_network_proxy
Em alguns casos um conflito pode ocorrer, necessitando de alterações manuais para decidir qual alteração deve prevalecer no arquivo e como resultado daquela ação de merge.
Parte 3 – Repositórios Remotos com GitHub
Para esse caso precisaremos de uma conta criada no GitHub. Essa plataforma aberta de versionamento de código permite que salvemos nossa evolução de desenvolvimento em um repositório remoto ao repositório git local. Para que isso seja possível, devemos adicionar o repositório remoto com comando “git remote add origin <URL_DO_REPOSITÓRIO>“. Dessa forma estaremos referenciando o repositório remoto pelo nome origin.
git remote add origin&nbsp;https://github.com/USUÁRIO/REPOSITÓRIO.git
Para adicionarmos nosso código no repositório remoto, basta realizarmos a ação de PUSH que irá enviar os dados ao servidor do GitHub.
git push origin master
Onde master é na verdade a branch que vc deseja enviar para o repositório remoto. No caso estamos enviando a branch master.
Em um caso inverso, onde desejamos realizar a atualização do nosso repositório local com a informação presente no repositório remoto, para isso realizamos a ação de PULL baixando o código.
git pull origin master
Com isso, já temos uma noção básica de como utilizar a ferramenta Git integrada com GitHub.
No próximo item veremos uma abordagem de gerenciamento de branch amplamente utilizada, o GitFlow.
Parte 4 – GitFlow
GitFlow é uma forma de gerenciamento de branch, ela propõe uma forma de configurar as branchs para que se tenha uma separação em Master, Release, Desenvolvimento, Features e Hotfix, sendo:
Master – Branch principal, que conteria seu código de produção.
Release – Branch para release, lançamento de versões de sua aplicação que posteriormente poderiam ser mergiadas na branch master.
Desenvolvimento – Branch para manter o código em atual desenvolvimento.
Features – Branchs que são copias de desenvolvimento onde justamente acontece a criação de uma nova funcionalidade do software.
Hotfix – Branch criada quando realiza-se alguma atualização de segurança que normalmente precisa entrar diretamente em produção.
Dessa forma criamos um processo de melhoria contínua do código, composto de etapas de desenvolvimento e lançamento de releases. Tendo esse processo finalizado podemos evoluir para um estágio mais avançado com Continuous Integration e Continuous Delivery.
A 4Linux disponibiliza mais de 300 horas de conteúdo focado na área de DevOps, incluindo as técnicas apresentadas neste post.
Para saber mais, acesse: https://www.4linux.com.br/devops
About author
Você pode gostar também
Descubra como o Ansible e o IaC podem revolucionar sua infraestrutura de TI
O termo IaC – Infrastructure as Code – dá nome aos processos de provisionamento de infraestrutura tecnológica (principalmente em Cloud Computing) através de códigos, viabilizando o versionamento e a colaboração
Harmonizando DevOps e Metodologia Agile com o C.A.M.S.
A rápida evolução tecnológica do mundo atual é crucial para o sucesso das empresas e seus projetos. Para as áreas de desenvolvimento e operações, DevOps, a metodologia Agile tem proporcionado
Descubra como a estratégia DevOps pode transformar sua empresa
DevOps é um termo que tem ganhado destaque no mundo corporativo. Considerado uma poderosa estratégia, surgiu da necessidade de agilizar entregas na área de tecnologia da informação, sempre buscando ações