GitHub x GitLab: principais diferenças

Escrito por Steven Vaughan-Nichols, em ZDNet

Não é GitHub versus GitLab. Ambos são baseados no sistema de controle de versão distribuído Git, mas têm abordagens de desenvolvimento muito diferentes.

Muitas pessoas me perguntam: “Qual sistema de controle de versão distribuído devo usar para meu projeto de programação, GitHub ou GitLab?” Não é uma pergunta tão simples.

Primeiro, você realmente precisa de um sistema de controle de versão distribuído (VCS)? O trabalho de um VCS (também conhecido como sistema Source Code Management (SCM)) é tornar mais fácil para vários desenvolvedores, designers e membros da equipe trabalharem juntos no mesmo projeto. Ele garante que todos tenham o mesmo acesso ao código mais recente e as modificações sejam rastreadas.

Isso é mais fácil dizer do que fazer.

É por isso que Linus Torvalds pensa no Git como sua outra grande invenção. O Git é gratuito, de código aberto e rápido. Ele também funciona melhor que seus predecessores, como Apache Subversion, Concurrent Versions System (CVS), Perforce e Rational ClearCase. Há uma razão pela qual tantos serviços VCS têm “Git” em seus nomes.

Git

Claro, você pode usar o Git sozinho em seu próprio servidor. Se tudo o que você está fazendo é construir um programa internamente, uma instância local do Git é tudo o que você precisa. Você também pode usar o Git como um VCS centralizado em seus próprios servidores ou nuvem. Não há necessidade de assinar um serviço VCS quando você pode criar o seu próprio. Com este modelo, você pode facilmente executar um projeto com sua equipe e parceiros espalhados pelo mundo.

Se você precisa das notificações de um serviço Git hospedado, no entanto, é hora de olhar para o GitHub e o GitLab.

GitHub

O GitHub é o mais antigo dos serviços. Foi desenvolvido por Chris Wanstrath, P. J. Hyett, Tom Preston-Werner e Scott Chacon usando Ruby on Rails em fevereiro de 2008. Por causa de sua vantagem de pioneirismo, o GitHub se tornou a base de muitos repositórios de código aberto.

GitLab

O GitLab veio depois; Os desenvolvedores ucranianos Dmitriy Zaporozhets e Valery Sizov criaram o GitLab em 2011. Desde o primeiro dia, o GitLab foi projetado para ser um conjunto de ferramentas de colaboração, bem como um serviço de repositório de código.

Semelhanças entre Github e Gitlab

Eles se parecem muito. Ambos são executados em servidores Linux, vêm com rastreadores de problemas (Issues) e oferecem uma ampla variedade de integrações de terceiros e ferramentas de importação.

Ambos também têm interfaces de linha de comando (CLI) para desenvolvedores avançados e também oferecem interfaces baseadas na web para novos programadores.

No caso do GitLab, a interface do usuário usa o próprio sistema de design Pijamas do GitLabs e é escrita em Vue.js.

A interface de usuário do GitHub, Desktop, está disponível como um programa Windows ou macOS e agora também no Visual Studio.

Embora ambos suportem código aberto, os próprios repositórios usam um modelo de programação misto. O GitLab usou uma abordagem de negócios de núcleo aberto. Nesse modelo, o GitLab Community Edition permanece gratuito e de código aberto, enquanto o GitLab Enterprise Edition possui mais recursos e vem com suporte. Quanto ao GitHub, embora seu código contenha algum código-fonte aberto, não é um projeto de código-fonte aberto.

Ainda assim, fundamentalmente, ambos oferecem repositórios baseados na web com código aberto, gerenciamento de código baseado em Git e alterações de arquivos locais com um repositório remoto. Se tudo o que você deseja é a funcionalidade básica do Git, mas com outra pessoa para se preocupar em manter o Git funcionando, qualquer um dos serviços funcionará bem para você.

Claro, algumas pessoas ainda não gostam do GitHub porque a Microsoft o adquiriu em 2018. Para alguns, a Microsoft sempre será o “Império do Mal”, não importa o quanto a Microsoft mostre que agora suporta métodos e software de código aberto – ou com que frequência o CEO da Microsoft, Satya Nadella diz que ama o Linux. Dito isto, isso nunca foi um fator tão grande. Embora alguns usuários tenham fugido do GitHub para o GitLab e o Atlassian BitBucket na época, nunca foi o êxodo em massa que alguns esperavam.

O GitHub é claramente o gorila de 800 libras do mundo VCS. De acordo com a empresa de ferramentas de programação JetBrains, 77% dos desenvolvedores usam o GitHub regularmente, em comparação com 40% do GitLab e 25% do BitBucket.

Diferenças

A principal diferença é que o GitLab possui integração contínua/entrega contínua (CI/CD) e fluxos de trabalho DevOps integrados. O GitHub permite que você trabalhe com as ferramentas de CI/CD de sua escolha, mas você mesmo precisará integrá-las. Normalmente, os usuários do GitHub trabalham com um programa de CI de terceiros, como Jenkins, CircleCI ou TravisCI.

Outra diferença importante é que o GitHub coloca a velocidade em primeiro lugar, enquanto o GitLab se concentra na confiabilidade.

Especificamente, o GitHub defende a fusão de novos branches com o branch master. Dessa forma, você já está pronto para implantar rapidamente, enquanto também restabelece rapidamente sua versão antiga se algo der errado.

No fluxo de trabalho do GitLab, você cria vários branches estáveis ​​além do master. No mínimo, você terá ramificações estáveis ​​de produção e pré-produção. Isso significa que você precisará passar por um processo de teste de várias etapas. Uma única revisão de código na solicitação de mesclagem não é suficiente.

Claro, você pode fazer qualquer um funcionar da maneira que quiser, mas há uma clara diferença na abordagem preferida.

Outra diferença fundamental é que o GitLab oferece uma solução completa de desenvolvimento de software. Eles se anunciam como uma plataforma completa de DevOps por um motivo. Dito isso, o GitLab oferece integrações com alguns programas e plataformas de terceiros, como Jira, Microsoft Teams, Slack, Gmail e vários outros aplicativos e plataformas.

O GitHub, por outro lado, oferece menos serviços dentro de seu próprio programa, mas oferece formas de integração com muitos programas e serviços externos. Isso inclui software em que o GitHub trabalhou para integrar ao serviço e centenas de outros programas via GitHub Marketplace.

Preços

Ambos os serviços oferecem planos gratuitos. Estes vêm com repositórios públicos e privados ilimitados. Isso pode ser suficiente para você se você for um programador solo ou tiver uma equipe pequena. Mas, se programar é a vida da sua empresa, você vai precisar de mais.

É difícil comparar os preços do GitHub e do GitLab. São maçãs e laranjas. Sugiro começar com seus planos gratuitos para ter uma ideia de como seu fluxo de trabalho funciona em cada plataforma e, em seguida, procurar assinar o que funciona melhor para você.

Os custos das assinaturas devem ser a menor das suas preocupações. Eu usei ambos e, para meus propósitos de programação de pequeno porte, eles funcionaram extremamente bem.

Dito isso, o plano Premium do GitLab custa US$ 19 por mês por usuário, enquanto o plano Ultimate completo custa US$ 99 por mês.

Quanto ao GitHub, o plano Team custa US$ 40 por ano por usuário e o plano Enterprise custa US$ 200 por ano por usuário. Mas, o diabo são os detalhes, você pode descobrir que precisará pagar por extras, não importa qual serviço você finalmente assine.

Não deixe o preço ser o seu guia. O que realmente importa é qual deles lhe dará as ferramentas e serviços de que você precisa para desenvolver seu software da melhor maneira possível.

  • Traduzido por Prof. Uirá Ribeiro