Pode parecer complicado para quem está entrando no mundo de desenvolvimento assimilar as várias ferramentas e tecnologias que existem, mas é fundamental que você saiba o que é Git e, principalmente, saber que não é a mesma coisa que GitHub ou GitLab.
Neste artigo vamos te contar tudo o que você precisa saber sobre Git, Github e Gitlab. Vamos lá?
O que é Git?
Git é considerado o arroz com feijão de projetos de desenvolvimento. Não importa qual seja sua especialidade, você vai precisar dele e é importante que saiba utilizá-lo do jeito certo.
Pela documentação oficial, Git é um sistema de controle de versão distribuído de código aberto e gratuito, projetado para lidar com tudo, de projetos pequenos a grandes. O que isso significa? Significa que com o Git é possível manter um histórico das alterações dos seus arquivos, sabendo quem, por que e quando um arquivo foi editado.
Principal funcionalidade
A principal funcionalidade do Git, que o faz ser amplamente utilizado em projetos de desenvolvimento de software, é a possibilidade de fazer o controle de versões de modo colaborativo, ou seja, é possível que o mesmo arquivo seja modificado ao mesmo tempo por duas pessoas da área de desenvolvimento, e que ambas as alterações sejam salvas sem que nenhum código seja sobrescrito.
Para permitir o modo colaborativo, o Git utiliza o conceito de ramificação ou branch, onde cada branch é uma linha do tempo que possui marcos ou commits, e nesse branch os arquivos podem ser alterados livremente sem impactar outras ramificações.
Sendo assim, é possível trabalhar em ramos separadamente, desenvolvendo novas funcionalidades ou fazendo correções de bugs, e então quando decidirem juntar os dois ramos, o Git utiliza o conceito de mesclagem ou merge para isso.
A imagem abaixo ilustra quatro ramos sendo atualizados paralelamente ao longo do tempo através de commits, e então o branch feature sendo mesclado no branch develop através do processo de merge.
Mas, o que tudo isso tem a ver com GitHub ou GitLab? Antes de explicar como o Git se relaciona com esses outros dois termos, vamos às explicações de GitHub e GitLab.
Github vs Gitlab: o que são?
GitHub e GitLab são plataformas de hospedagem de código-fonte. Elas permitem que profissionais de desenvolvimento contribuam em projetos privados ou abertos (mais conhecidos como projetos open source).
Nessas plataformas, cada projeto contendo um código-fonte é considerado um repositório. Por exemplo, se você participa de projeto em que é desenvolvido o site de um e-commerce, e o código do front-end é desenvolvido separadamente do código back-end, cada um desses códigos-fontes serão hospedados como repositórios separados.
As duas plataformas oferecem vários recursos similares para hospedagem de código-fonte, sendo alguns como pull request, revisão de código, edição inline, fork e clone de repositórios, além de integrações com ferramentas de terceiros.
Funcionalidades
Uma das principais funcionalidades que difere uma plataforma da outra é o foco que o GitLab vem dando à integração com ferramentas de DevOps. O GitLab proporciona, nativamente, ferramentas de integração e entrega contínua ou CI/CD, além de métricas para acompanhamento de qualidade de código, performance e teste de usabilidade.
E como tudo isso se relaciona com o Git? Ambas fazem o controle de versão dos projetos hospedados utilizando o Git. Desse modo, quando você utiliza o Git no seu projeto, você pode acompanhar o versionamento do seu repositório em uma dessas plataformas.
No geral, as duas plataformas são muito boas para hospedagem de código, cabe a você decidir qual delas faz mais sentido utilizar no seu projeto, uma vez que as duas utilizam Git como controle de versão.
Quer levar o seu controle de versões para o próximo nível? Então conheça o que é Git Workflow e três tipos que ele possui: Git Flow, GitLab Flow e GitHub Flow.
Conclusão
Ainda ficou com alguma dúvida sobre as características e como utilizar Git, GitHub ou GitLab? Conte pra gente nos comentários.
Se esse artigo foi útil pra você, aproveite para compartilhar com alguém que precisa muito entender sobre o assunto.