código

20 jun, 2019

Uma maneira simples de gerenciar códigos

Publicidade

Quem nunca ouviu aquela velha e boa história de copiar a pasta do projeto e realizar as alterações dentro dela a fim de ter um “backup temporário” evitando problemas que venham a surgir? Ou até mesmo viu alguém sincronizando a pasta com todo o código num Google Drive da vida e “controlando versionamento” lá dentro? Isso sem falar que controle de tasks entre desenvolvedores sequer existe dessa forma, o dev que alterar por último subscreve as alterações de todos os outros.

Com base nisso, resolvi escrever um breve trecho explicando uma maneira das diversas existentes, de controlar e gerenciar todo o código de uma aplicação de forma simples e objetiva. No exemplo estarei usando o GIT atrelado ao Bitbucket.

Instalação e login

Primeiro passo é realizar a instalação do GIT na sua maquina com esse link aqui: https://git-scm.com/downloads

Nosso segundo passo é criar uma conta no bitbucket no site: https://bitbucket.org

Criando o repositório

Bitbucket

Dentro do bitbucket execute os seguintes passos:

Clique no botão “+” no canto esquerdo:

Clique em “Repository”:

Na tela de criação temos a opção do owner, nome do repositório, se ele é privado ou publico e também se queremos usar o GIT ou o Mercurial, escolha o GIT e clique em ”Create repository”:

Pronto, no bitbucket já temos o repositório criado para receber nossos códigos. Simples demais, não?

GIT

Com o GIT devidamente instalado na maquina você pode realizar um clone do repositório criado no bitbucket com o seguinte comando no terminal:

$ git clone https://<seu_usuario_bitbucket>@bitbucket.org/<seu_usuario_bitbucket>/demo.git

Esse comando irá criar um repositório em branco na sua maquina para você começar a desenvolver seus projetos. Caso já tenha algo pronto e queria começar a mandar pro bitbucket, basta entrar na pasta do projeto pelo terminal e executar os seguintes comandos:

Inicializar o repositório:

$ git init

Adiciona um “alias” chamado origin que contem o seu repositório no bitbucket:

$ git remote add origin https://<seu_usuario_bitbucket>@bitbucket.org/<seu_usuario_bitbucket>/demo.git

Feito, repositório devidamente criado!

Criando arquivo na branch master

Com tudo configurado precisamos botar a mão na massa! Vamos adicionar um arquivo chamado “demo.js” com o conteúdo:

console.log()

Após te feito isso precisamos mandar a alteração para o bitbucket com os seguintes comandos:

$ git add demo.js
$ git commit -m "init demo.js"
$ git push origin master

Esse comando irá criar a branch chamada <master> no bitbucket com o arquivo que criamos no repositório local.

Abra o bitbucket e verifique o repositório, algo similar a imagem abaixo estará lá:

Gerenciando Tasks

Digamos que um dev recebeu uma tarefa para alterar o arquivo chamado “demo.js” adicionando o conteúdo “console.log(“hello world”)”

Abrindo o terminal e navegando até a pasta do repositório vamos criar uma branch para realizar a alteração fazendo:

$ git checkout -b inclusao_demojs

Esse comando irá criar uma branch chamada <inclusao_demojs> a partir da branch master do seu projeto. Lembrando que o nome da branch vai da escolha do dev ou definição da equipe.

Sendo assim já podemos alterar o arquivo demo.js com o código console.log(”hello world”)

Feito isso precisamos subir essa branch para o bitbucket, os comandos são:

$ git add demo.js
$ git commit -m "Uma breve descrição das alterações"
$ git push origin inclusao_demojs

Executando esses comando estamos criando um pacote e enviando as alterações para o repositório no bitbucket na nova branch.

Abra o bitbucket e verifique o repositório, algo similar a imagem abaixo estará lá:

Até aqui tudo bem, mas agora precisamos atualizar o master com a alteração nova. Para isso precisamos fazer um “merge” entre as branchs master e inclusao_demojs. Tudo isso também vai depender do fluxo que a empresa decidiu seguir, realizando direto o merge ou criando pull requests para uma melhor garantia da atualização do código.

Vamos lá, criaremos nosso primeiro pull request no bitbucket.

Dentro do repositorio no bitbucket clique em pull requests no lado esquerdo:

Clique em “Create pull request”no cando superior diteiro e um formulário irá aparecer:

Nesse formulário basta selecionar a branch que o dev fez a alteração e para que branch ele quer mandala, após basta clicar em “Create pull request”. Isso entrara numa “fila de atualização”, onde responsáveis ou até mesmo o próprio dev pode realizar o merge e atualizar a branch master com o código novo.

Com tudo isso feito ambas as branchs vão ter o mesmo código. Logo podemos manter somente a branch master e descartar a branch inclusao_demojs excluindo-a do repositório local e no bitbucket.

$ git checkout master
$ git pull origin master
$ git branch -d inclusao_demojs
$ git push origin --delete inclusao_demojs

Esses comandou irão garantir que o repositório local está atualizado com o remoto e irá excluir as branchs dos devidos locais. Um ultimo comando é adicionar uma tag atrelada ao ultimo commit na branch master representando sua versão estável de produção, por exemplo.

$ git tag -a v1.0.1 -m "versão saindo do forno..." $ git push origin v1.0.1

Feito isso é só repetir o fluxo com novas tasks.

Lembrando que nem tudo são flores… Em equipes maiores conflitos no código são praticamente inevitáveis. Se seguirmos esse pequeno fluxo de branchs e pull requests eles se tornarão algo simples de visualizar e corrigir, não perdendo ou sobrescrevendo códigos de outros devs, além de estar garantindo uma qualidade de entrega muito melhor. Segue uma imagem de um pequeno conflito de exemplo:

Essa demonstração representa uma pequena fatia de funcionalidades e controles de código que que existem no git e também no bitbucket, algumas delas são controles de issues, pipelines de deploy automáticos, permissões entre branchs…. Bom… se você conhece alguém que ainda não usa um versionamento desse tipo, da umas dicas pra ele! Tem muita ferramenta sensacional no mercado!