26 de março de 2020

Expresso Drops #01 - Git & GitHub


Imagine que você está desenvolvendo um trabalho de faculdade ou então até mesmo um sistema dentro da empresa que você trabalha, esses cenários são propícios para os seguintes problemas:


  • Juntar as partes e modificações que cada pessoa fez
  • Voltar uma parte do projeto que foi retirada anteriormente
  • Ter que utilizar arquivos zip para cada versão do projeto e/ou sistema e também um método eficiente de backup

Tendo esses problemas em mente, o que é o Git e como isso pode resolver esses problemas?


Bom, a história começa em 2005 quando o kernel do Linux utilizava, até então, o BitKeeper para o controle de versão, porém a ferramenta entrou em alguns conflitos com a comunidade Open Source e deixou de ser gratuita. Com esse problema em vista, o Linus Torvalds criou o Git para a manutenção do núcleo do Linux, porém a solução foi crescendo e sendo adotada em diversos projetos.

Levando isso em consideração, o Git nada mais é do que um sistema de controle de versão distribuído de código aberto e gratuito, projetado para lidar com tudo, desde projetos pequenos até grandes, garantindo a velocidade e eficiência do desenvolvimento


Agora, o que é o GitHub?


GitHub, que hoje pertence a Microsoft, é um serviço online de hospedagem de repositórios Git, nome dado aos projetos que utilizam o git para o seu versionamento, nele é possível deixar seu codigo-fonte hospedado de maneira pública ou então privada, claro que a versão free tem as suas limitações, mas esse não é o foco do post. Em resumo, o GitHub é um serviço para quem deseja utilizar o Git, também existem concorrentes como o BitBucket e GitLab.
.

Como instalar?


Para instalar em sua máquina é bem simples, basta acessar o site oficial e seguir a instruções de instalação, no Windows é o mesmo de sempre (next, next, next, finish).

Em caso de problemas, a documentação é bem completa e auxilia em tudo que for necessário,  mas fique tranquilo que irá ter um passo a passo no melhor blog de tecnologia.

Conceitos do Git


Tendo em mente do que é essa ferramenta, agora é necessário saber os conceitos e como utilizar ela, os quais são:
  • Clone
  • Branch
  • Commit

Irei focar apenas nesses,que são essenciais para começar a usar o Git em seus projetos tanto pessoais quanto profissionais.

Clone

Link para clonar um repositório

Digamos que você entrou em uma equipe e essa equipe já tem um sistema completamente desenvolvido e eles tem um repositório configurado, para que você possa fazer alterações no código, primeiro você tem que ter uma versão local na sua máquina.

Então, você irá literalmente fazer um clone para o seu computador, para fazer isso é bem simples, basta digitar no seu console o comando: "git clone <repositorio>"

exemplo de comando
Esse link é fornecido no botão verde escrito "Clone or Download", que tem no canto superior direito de cada repositório dentro do GitHub. Se tudo deu certo, ao final você irá ter uma cópia local do projeto dentro de uma pasta com o mesmo nome do repositório no GitHub, como pode se ver na imagem abaixo:

Clone bem sucedido
Agora, já é possível iniciar os trabalhos locais.


Branch

Exemplo de Workflow

Dentro do Git, uma maneira de deixar as coisas organizadas é a de separar ajustes de bugs, correções, criação de features, testes, entre outras coisas em branchs, que em uma tradução literal seria "ramificações", sendo a branch principal a "master", então muito cuidado ao fazer alguma alteração na master, pois é possível quebrar uma aplicação inteira.

Em uma branch, é possível fazer alterações e testar elas antes de enviar para a ramificação central, tornando o desenvolvimento mais ágil e eficiente. Para criar uma branch basta digitar "git checkout  -b <nome da branch>", o "-b" é um comando utilizado apenas na criação da branch e toda vez que você desejar mudar de uma branch para outra basta usar o "git checkout <nome da branch>".

Exemplo de criação de uma branch


Commit



Quando você faz alguma alteração no projeto, para enviar isso até o servidor remoto é necessário fazer um commit, como é possível ver na imagem acima.


O commit nada mais é do que um ponto na história do desenvolvimento daquele projeto, contendo uma mensagem explicando o que foi feito naquele momento, um commit pode englobar vários arquivos, se reparar bem na imagem de exemplo, eu utilizei o comando "git add . ", que é basicamente adicionar todos os arquivos modificados naquele commit. 

Também é possível adicionar  apenas arquivos específicos em um commit, usando o "git add <nome_do_arquivo.extensao>".

 Ao final desse workflow, para enviar o seu commit basta digitar "git push origin <nome da branch>"

Só de push na master se tiver certeza do que está fazendo

Agora que você já sabe os conceitos básicos de git, já é possível deixar de utilizar os arquivos .zip e .rar para versionar o seu código e ter um ganho de produtividade, mais para frente irei produzir mais materiais sobre git, estejam antenados no melhor blog do ocidente.


Links úteis e refêrencias:
  • https://git-scm.com/book/pt-br/v2/Começando-Uma-Breve-História-do-Git
  • https://github.com
  • https://github.com/torvalds/linux
  • https://archive.is/20120523214930/kerneltrap.org/node/4966