GitHub: o que é, funcionalidades e como funciona

Autor: IT Sectr Publicado: 2026-05-09 Tempo de leitura: 8 min

GitHub é a maior plataforma web para hospedagem de repositórios Git, desenvolvimento colaborativo e automação de processos, pertencente à Microsoft. Ela fornece não apenas armazenamento de código com controle de versão, mas também um conjunto completo de ferramentas de gerenciamento de projetos: Issue Tracking, Pull Requests com revisão de código, Actions para CI/CD e Wiki para documentação. De acordo com GitHub, 2024, a plataforma conta com mais de 100 milhões de desenvolvedores e 420 milhões de repositórios.

Pontos principais

  • GitHub é uma plataforma web para repositórios Git com ferramentas de revisão de código, CI/CD e gerenciamento de projetos.
  • Pull Request é o principal mecanismo para fazer alterações com discussão e revisão de código.
  • GitHub Actions automatiza a compilação, os testes e a implantação sem serviços CI externos.
  • Issues e Projects fornecem um sistema integrado de rastreamento de tarefas e gerenciamento de sprints.
  • GitHub Pages oferece hospedagem gratuita para sites estáticos e documentação.

O que é GitHub?

GitHub é um serviço web para armazenar e colaborar em repositórios Git, fundado em 2008 por Tom Preston-Werner, Chris Wanstrath e PJ Hyett. Em 2018, a empresa foi adquirida pela Microsoft por 7,5 bilhões de dólares. A plataforma fornece uma interface web para todas as operações do Git, adicionando funcionalidades sociais: forks, estrelas, inscrições, revisão de código e um sistema de integração contínua integrado.

A principal diferença entre o GitHub e seus concorrentes é seu ecossistema aberto e a maior comunidade de desenvolvedores. O GitHub hospeda os códigos-fonte do Android, Kubernetes, React, Swift, Kotlin e milhares de outros projetos open-source. Isso torna a plataforma não apenas uma ferramenta de armazenamento de código, mas também uma rede social para desenvolvedores: você pode seguir projetos, discutir alterações e contribuir através de pull requests.

De acordo com um relatório da Microsoft (2024), mais de 10 milhões de novos Pull Requests passam pelo GitHub diariamente, e o número de usuários ativos mensais ultrapassou 100 milhões. A plataforma suporta mais de 500 linguagens de programação, detecção automática de idioma por extensão de arquivo e realce de sintaxe de código.

Principais funcionalidades do GitHub

A funcionalidade do GitHub vai muito além da simples hospedagem Git. A plataforma fornece: GitHub Actions — um sistema CI/CD integrado; GitHub Packages — um registro de pacotes e contêineres; GitHub Codespaces — ambientes de desenvolvimento em nuvem baseados no VS Code; GitHub Discussions — um fórum para a comunidade; GitHub Security — Dependabot para atualizações automáticas de dependências e varredura de vulnerabilidades; GitHub Copilot — um assistente de IA para escrever código.

Para organizações, o GitHub oferece o GitHub Enterprise — uma versão empresarial com hospedagem própria (GitHub Enterprise Server) ou implantação em nuvem (GitHub Enterprise Cloud). Os recursos empresariais incluem autenticação SAML/SSO, registro de auditoria, políticas de segurança de repositórios e SLA de disponibilidade de 99,95%. A versão Enterprise é usada por empresas como Google, Apple e Airbnb.

Uma funcionalidade importante do GitHub é o GitHub CLI (gh), que permite realizar todas as operações da plataforma a partir da linha de comando sem usar a interface web. Com o gh, você pode criar repositórios, gerenciar Issues, revisar Pull Requests e executar Actions diretamente do terminal, acelerando o trabalho de desenvolvedores acostumados com a linha de comando.

FuncionalidadePropósitoDisponibilidade
ActionsCI/CD e automaçãoGrátis 2000 min/mês
CodespacesIDE na nuvem baseada no VS CodePago, 60 h/mês grátis
PackagesHospedagem de pacotes e imagens DockerGrátis 500 MB
DependabotAtualizações automáticas de dependênciasGrátis para repositórios públicos
PagesHospedagem de sites estáticosGrátis

Pull Request e revisão de código

Pull Request (PR) é o principal mecanismo para fazer alterações em um projeto no GitHub. Um desenvolvedor cria um branch com alterações, publica-o no GitHub e envia uma solicitação de merge (Pull Request) para o branch principal. Outros participantes do projeto veem a diferença (diff) entre os branches, podem deixar comentários em linhas específicas de código, sugerir alterações e aprovar ou rejeitar a solicitação.

O processo de revisão de código no GitHub é construído em torno dos PRs. Cada comentário é anexado a uma linha específica do diff e pode ser de três tipos: Comment (comentário normal), Request Changes(requer correções) e Approve(aprovação). Após fazer as alterações, o autor atualiza o PR com um novo commit e o processo de revisão se repete. Quando todas as objeções são resolvidas e o PR é aprovado, as alterações são mescladas no branch de destino.

bash
# Criar um branch de funcionalidade e fazer push
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug

# Criar um PR via CLI
gh pr create --base main --title "Fix login validation" \
    --body "Fixed edge case with empty email field"

# Visualizar e mesclar um PR
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug

O GitHub suporta regras de proteção de branches: você pode impedir pushes diretos para o main, exigir um número obrigatório de aprovações antes do merge, executar verificações do Actions e exigir que o branch esteja atualizado antes da mesclagem. A proteção de branches é configurada em Settings → Branches e é uma prática obrigatória para projetos de produção, evitando a introdução acidental de código instável no branch principal.

GitHub Actions e CI/CD

GitHub Actions é uma plataforma CI/CD integrada que permite automatizar fluxos de trabalho diretamente no repositório. Os fluxos de trabalho são descritos em arquivos YAML localizados no diretório .github/workflows/. Cada fluxo de trabalho consiste em um ou mais jobs que são executados em runners — máquinas virtuais com Linux, Windows ou macOS.

O Actions suporta um modelo orientado a eventos: os fluxos de trabalho são acionados ao fazer push, criar um PR, publicar um release, em um agendamento ou via webhook. Isso permite automatizar a compilação, execução de testes, análise estática de código, publicação em lojas de aplicativos e implantação em servidores sem intervenção do desenvolvedor. Abaixo está um exemplo de fluxo de trabalho para um projeto Android:

yaml
name: Android CI

on:
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: '17'
      - name: Build with Gradle
        run: ./gradlew assembleDebug

O ecossistema do Actions inclui mais de 20.000 ações prontas no GitHub Marketplace. Ações populares: checkout (clonar repositório), setup-java/setup-node/setup-python (configuração de ambiente), upload-artifact (salvar artefatos de compilação), cache (cache de dependências para acelerar), slack-notify (enviar notificações para o Slack). O Actions também suporta compilações matriciais — execução simultânea em múltiplas versões de SO ou linguagens.

GitHub Projects e Issues

Issues é um sistema integrado de rastreamento de tarefas no GitHub. Cada Issue tem um título, descrição, etiquetas, responsáveis, marcos e Pull Requests vinculados. As Issues podem ter modelos — diferentes modelos são usados para relatórios de bugs, solicitações de funcionalidades ou perguntas, que são inseridos automaticamente ao criar.

GitHub Projects (anteriormente Projects Beta) é uma ferramenta de gerenciamento de projetos baseada em quadros, semelhante ao Jira e Trello. O Projects suporta campos personalizados (status, prioridade, sprint), vinculação com Issues e Pull Requests, automação de movimento de cartões quando o status da tarefa muda e análise na forma de gráfico de burndown. O Projects está disponível em dois modos: Table (visão em tabela) e Board (quadro kanban).

Para gerenciamento de releases, o GitHub fornece Milestones — grupos de Issues e PRs unidos por um objetivo comum com prazo. Cada marco mostra o progresso: quantas tarefas estão abertas, quantas estão fechadas e se o prazo está sendo cumprido. Os marcos se integram com Releases — ao publicar um release, você pode vinculá-lo a um marco e gerar automaticamente um CHANGELOG com base nas Issues fechadas.

GitHub Pages e Wiki

GitHub Pages é hospedagem gratuita para sites estáticos que publica automaticamente o conteúdo do repositório em https://username.github.io/repository. O Pages suporta HTML, CSS, JavaScript e geradores estáticos: Jekyll (integrado), Hugo, Next.js (exportação) e MkDocs. A configuração inclui escolher o branch e diretório para publicação, bem como suporte a domínio personalizado.

Para documentação técnica, o GitHub fornece Wiki — um sistema wiki integrado que também é armazenado como um repositório Git. O Wiki suporta Markdown e permite editar páginas tanto através da interface web quanto localmente via push para o repositório wiki. Cada página Wiki tem seu próprio histórico de alterações, o que é conveniente para documentar API, arquitetura e processos do projeto.

A combinação de GitHub Pages + Jekyll é uma solução popular para sites de documentação. O Jekyll converte automaticamente arquivos Markdown em páginas HTML estáticas, suporta temas, navegação e busca. Por exemplo, a documentação do Android Developers costumava usar Jekyll no GitHub Pages e agora usa uma plataforma interna, mas milhares de projetos open-source continuam usando essa combinação para seus sites.

GitHub CLI: gerenciamento sem navegador

GitHub CLI (gh) permite realizar todas as operações da plataforma através da linha de comando: criar repositórios, gerenciar Issues, visualizar e aprovar Pull Requests, executar Actions. O comando gh repo create my-project --public cria um repositório remoto e o vincula ao local, enquanto gh pr create cria um Pull Request a partir do branch atual. O CLI acelera o trabalho de desenvolvedores que preferem o terminal à interface web.

API do GitHub para automação

GitHub REST API e GraphQL API fornecem acesso programático a todas as funcionalidades da plataforma: criar Issues, gerenciar usuários, obter estatísticas e gerenciar Actions. A GraphQL API é preferível para consultas complexas, pois permite obter apenas os campos necessários em uma única solicitação. O limite de taxa para REST API é de 5000 solicitações por hora para usuários autenticados. A API é amplamente usada para integrar o GitHub com sistemas CI externos e ferramentas internas de DevOps.

GitHub Gist para notas rápidas

GitHub Gist é um serviço para publicar fragmentos de código sem criar um repositório completo. O Gist suporta realce de sintaxe, incorporação em sites externos e histórico de versões. Cada Gist pode ser público (visível em buscas) ou secreto (acessível apenas por link). O Gist é usado para compartilhar rapidamente configurações, logs e exemplos de código na correspondência da equipe, e também como alternativa ao Pastebin para desenvolvedores.

Perguntas frequentes

Qual a diferença entre GitHub e GitLab?

GitHub foca na comunidade aberta e funcionalidades sociais (forks, estrelas). O GitLab oferece CI/CD integrado mais poderoso e hospedagem autogerenciada sem limitações de minutos do Actions.

Quanto custa o GitHub para uma equipe?

GitHub Team custa $4 por usuário por mês e oferece repositórios privados ilimitados, proteção de branches e Actions (3000 minutos). O plano gratuito é adequado para pequenos projetos open-source.

Como criar um repositório privado?

Ao criar um repositório, selecione Private em vez de Public. Em repositórios privados, o código só é visível para colaboradores convidados. No plano gratuito, repositórios privados estão disponíveis com limite de até 3 colaboradores.

O que é GitHub Copilot?

GitHub Copilot é um assistente de IA baseado no OpenAI Codex que oferece autocompletar código em tempo real. Funciona no VS Code, JetBrains e Neovim, suportando todas as linguagens de programação populares.

Como excluir um repositório no GitHub?

Vá em Settings → Danger Zone → Delete this repository. A exclusão é irreversível — todos os commits, Issues e Wiki serão excluídos sem possibilidade de recuperação. Certifique-se de ter um backup antes.

Resumo

  • GitHub é a maior plataforma para hospedar repositórios Git com ferramentas integradas de CI/CD e gerenciamento de projetos.
  • Pull Request fornece um processo de revisão de código com comentários em linha, aprovações e proteção de branches.
  • GitHub Actions automatiza compilação, testes e implantação através de configuração YAML no repositório.
  • Issues e Projects substituem Jira e Trello para equipes pequenas com campos personalizados e quadros kanban.
  • GitHub Pages e Wiki fornecem hospedagem gratuita para documentação e sites estáticos.
  • O ecossistema inclui Copilot (codificação com IA), Codespaces (IDE na nuvem), Packages e Dependabot.
  • Comece criando um repositório e seu primeiro Pull Request — isso cobrirá as necessidades básicas da equipe.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também