Plataformas Git (visão geral)
Esta aula apresenta uma visão geral das principais plataformas Git — GitHub, GitLab e Bitbucket — destacando seus recursos como issues, pull requests e CI/CD, além de orientar na escolha entre elas e discutir o ecossistema open source.
Nesta aula, exploraremos as plataformas Git mais populares que hospedam repositórios e oferecem ferramentas colaborativas para equipes de desenvolvimento. Entender as diferenças entre GitHub, GitLab e Bitbucket é essencial para escolher a plataforma que melhor atende às necessidades do seu projeto, seja ele open source, corporativo ou pessoal.
Além de armazenar código, essas plataformas integram recursos como rastreamento de issues, revisão de código via pull/merge requests, pipelines de CI/CD e wikis. Vamos analisar cada uma, seus pontos fortes e como decidir qual usar.
GitHub, GitLab, Bitbucket
O GitHub é a plataforma mais conhecida e utilizada no mundo, especialmente para projetos open source. Lançado em 2008, foi adquirido pela Microsoft em 2018. Oferece repositórios públicos ilimitados gratuitos, e privados com limites de colaboradores no plano gratuito. Seu ecossistema inclui GitHub Actions para CI/CD, GitHub Pages para hospedagem de sites estáticos, e uma vasta comunidade.
O GitLab é uma plataforma completa de DevOps, com CI/CD integrado desde o início. Diferencia-se por ser open source (a versão Community Edition) e por oferecer auto-hospedagem, o que atrai empresas que desejam controle total sobre seus dados. O GitLab também inclui um container registry, monitoramento e segurança integrados.
O Bitbucket (da Atlassian) é focado em equipes que já usam produtos como Jira e Confluence. Oferece repositórios privados ilimitados para equipes pequenas gratuitamente, e integração nativa com o Jira. Seu CI/CD é o Bitbucket Pipelines. Embora menos popular para open source, é forte em ambientes corporativos.
Exemplo de comando para clonar um repositório de cada plataforma:
git clone https://github.com/exemplo/repo.git
git clone https://gitlab.com/exemplo/repo.git
git clone https://bitbucket.org/exemplo/repo.gitRecursos (issues, PRs, CI)
As plataformas oferecem mecanismos similares para colaboração:
- Issues: sistema de tickets para rastrear bugs, tarefas e melhorias. Permitem labels, milestones, assignees e comentários. GitLab chama de 'issues', GitHub idem, Bitbucket também.
- Pull Requests (PRs) / Merge Requests (MRs): mecanismo para propor alterações no código. No GitHub são PRs, no GitLab são MRs, no Bitbucket são PRs. Incluem revisão de código, comentários em linhas específicas e discussões.
- CI/CD: automação de build, teste e deploy. GitHub Actions usa YAML, GitLab CI usa arquivo
.gitlab-ci.yml, Bitbucket Pipelines usabitbucket-pipelines.yml. Exemplo de pipeline simples no GitLab:
stages:
- build
- test
build-job:
stage: build
script:
- echo "Building..."
test-job:
stage: test
script:
- echo "Testing..."Além disso, todas oferecem wikis, gráficos de contribuição e integrações com ferramentas externas.
Escolhendo
A escolha depende de fatores como custo, necessidade de auto-hospedagem, integração com outras ferramentas e familiaridade da equipe. Se você quer um ambiente open source e auto-hospedado, GitLab CE é ideal. Se precisa de integração com Jira, Bitbucket é natural. Para projetos públicos e comunidade, GitHub é a melhor opção.
Considere também os limites de armazenamento, número de minutos de CI gratuitos e recursos de segurança. Para equipes pequenas, todos os planos gratuitos são suficientes. Para empresas, os planos pagos oferecem mais funcionalidades.
Open source
O GitHub é o lar da maioria dos projetos open source, com milhões de repositórios públicos. O GitLab também hospeda projetos open source, mas sua força está na versão auto-hospedada. O Bitbucket é menos usado para open source, mas ainda assim existem projetos. A escolha da plataforma para um projeto open source pode influenciar a contribuição da comunidade: muitos desenvolvedores já têm conta no GitHub, o que facilita contribuições.
Além disso, o GitLab oferece uma edição open source (CE) que pode ser instalada em servidores próprios, garantindo transparência e personalização. O GitHub não é open source, mas sua versão gratuita é amplamente aceita.
Boas práticas
Independentemente da plataforma, mantenha o repositório organizado com branches, use mensagens de commit claras, proteja branches principais com regras de merge e configure CI para testes automáticos. Aproveite as integrações para automatizar tarefas repetitivas.
Referências
- Documentação oficial do GitHub
- Documentação oficial do GitLab
- Documentação oficial do Bitbucket
- Documentação oficial do Git
- Open Source Guides
Exercícios
Crie um repositório público no GitHub e adicione um arquivo README.md com uma descrição do seu projeto.
✓ Resposta: Acesse github.com, clique em "New repository", dê um nome, escolha público, marque "Add a README file" e clique em "Create repository". Depois edite o README.md diretamente no site ou via clone.Explique a diferença entre Pull Request (GitHub) e Merge Request (GitLab).
✓ Resposta: Ambos são o mesmo conceito: uma solicitação para mesclar alterações de uma branch em outra. A diferença é apenas de nomenclatura: GitHub chama de Pull Request, GitLab de Merge Request. Funcionalmente são equivalentes.Configure um pipeline simples no GitLab que execute um script de build e teste. Escreva o conteúdo do arquivo
.gitlab-ci.yml.✓ Resposta:stages: - build - test build-job: stage: build script: - echo "Building the project..." - mkdir build - touch build/output.txt artifacts: paths: - build/ test-job: stage: test script: - echo "Running tests..." - test -f build/output.txtCite duas vantagens de usar o Bitbucket em vez do GitHub para uma equipe que já utiliza Jira.
✓ Resposta: 1. Integração nativa com Jira: é possível vincular commits e branches a issues do Jira automaticamente. 2. Repositórios privados ilimitados no plano gratuito para equipes de até 5 pessoas.Qual plataforma é mais indicada para um projeto open source que deseja máxima visibilidade e contribuições da comunidade? Justifique.
✓ Resposta: GitHub, porque possui a maior base de usuários e projetos open source, além de ferramentas como GitHub Pages e GitHub Actions gratuitas para projetos públicos. A maioria dos desenvolvedores já possui conta, facilitando contribuições.