O que é o GitHub?
O GitHub é uma plataforma baseada em nuvem para hospedar repositórios Git e colaborar com outros desenvolvedores. Ele pega tudo o que o Git faz localmente — rastrear alterações, gerenciar branches, fazer merge de código — e adiciona uma interface web com ferramentas para code review, rastreamento de issues, automação e gerenciamento de projetos.
Pense no Git como o motor e no GitHub como o painel de controle. O Git roda na sua máquina, cuidando do controle de versão. O GitHub hospeda seu repositório online, permitindo que outras pessoas vejam seu código, sugiram melhorias, reportem bugs e contribuam com funcionalidades através de um workflow estruturado.
Com mais de 100 milhões de desenvolvedores e 330 milhões de repositórios, o GitHub é onde o mundo constrói software. Projetos open source, startups, empresas e desenvolvedores individuais o utilizam como sua principal plataforma de colaboração. Se você está aprendendo a programar, ter um perfil no GitHub é tão importante quanto ter um portfólio.
Por que o GitHub é importante
O controle de versão na sua máquina é útil, mas a colaboração exige um espaço compartilhado. O GitHub oferece esse espaço com funcionalidades que tornam o trabalho em equipe estruturado e transparente:
- Hospedagem centralizada — seu código fica na nuvem, acessível de qualquer lugar e com um backup que nunca se perde.
- Pull requests — proponha alterações, revise o código linha por linha e faça o merge apenas quando todos estiverem de acordo.
- Issues e quadros de projeto — rastreie bugs, gerencie funcionalidades e organize o trabalho com labels, milestones e quadros kanban.
- Automação de CI/CD — o GitHub Actions executa testes, builds e faz o deploy do seu código automaticamente a cada push.
- Comunidade — descubra projetos open source, contribua com eles e construa sua reputação como desenvolvedor.
- Segurança — a varredura de dependências, a detecção de secrets e os fluxos de code review identificam vulnerabilidades precocemente.
O GitHub não é apenas um serviço de hospedagem de código. É uma plataforma de desenvolvimento que abrange todo o ciclo de vida do software, da ideia ao deployment.
Configurando o GitHub
Criando uma conta
Acesse github.com e cadastre-se com seu e-mail. Escolha o plano gratuito — ele inclui tudo o que você precisa para começar.
Configurando o Git
Após criar sua conta, configure o Git para trabalhar com o GitHub:
# Set your identity
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# Set the default branch name
git config --global init.defaultBranch main
Conectando via SSH
Chaves SSH permitem que você se autentique sem precisar digitar sua senha todas as vezes:
# Generate a new SSH key
ssh-keygen -t ed25519 -C "[email protected]"
# Start the SSH agent
eval "$(ssh-agent -s)"
# Add your key to the agent
ssh-add ~/.ssh/id_ed25519
# Copy the public key to add to GitHub
cat ~/.ssh/id_ed25519.pub
Vá em GitHub Settings > SSH and GPG keys > New SSH key, cole sua chave pública e salve. Agora você pode clonar, fazer push e pull usando URLs SSH.
Recursos principais do GitHub
Repositórios
Um repositório é um projeto no GitHub. Ele contém seu código, arquivos de configuração, documentação e o histórico completo do Git. Todo repositório possui:
- Uma aba de código para navegar pelos arquivos
- Uma aba de issues para acompanhar o trabalho
- Uma aba de pull requests para revisão de código
- Uma wiki para documentação
- Uma aba de configurações para controle de acesso
Crie um novo repositório a partir da página inicial do GitHub ou pela linha de comando:
# Create a new repo on GitHub, then clone it
gh repo create my-project --public --clone
Issues
As issues são a forma de acompanhar o trabalho. Use-as para relatórios de bugs, solicitações de funcionalidades, tarefas e discussões:
# Create an issue from the command line
gh issue create --title "Fix login bug" --body "Users cannot log in with empty email"
Cada issue pode ter:
- Labels — categorize por tipo (bug, melhoria, documentação)
- Assignees — quem é o responsável
- Milestones — agrupe issues em versões ou sprints
- Pull requests vinculados — mostre quais PRs resolvem a issue
Pull requests
Os pull requests são o coração da colaboração no GitHub. Eles permitem propor alterações, revisar código e fazer o merge quando estiver pronto:
# Create a branch, make changes, push, then open a PR
git checkout -b fix-login-bug
# make changes
git add .
git commit -m "Fix null check in login handler"
git push origin fix-login-bug
gh pr create --title "Fix login bug" --body "Adds null check for empty email"
Os pull requests incluem ferramentas de revisão de código, verificações automatizadas, threads de discussão e controles de merge. Eles são a maneira padrão de integrar código a uma base de código compartilhada.
GitHub Actions
As Actions automatizam seu fluxo de desenvolvimento. Escreva arquivos YAML que definem o que acontece quando eventos ocorrem:
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
Usos comuns incluem a execução de testes a cada push, deploy em produção ao fazer merge na main e a construção de imagens Docker em cada release.
GitHub Pages
Hospede sites estáticos diretamente do seu repositório:
# Enable Pages in your repo settings, then push to the gh-pages branch
git checkout -b gh-pages
git push origin gh-pages
O Pages é perfeito para sites de documentação, portfólios, blogs e landing pages. Ele suporta domínios personalizados, HTTPS e geradores de sites estáticos como Jekyll e Astro.
Trabalhando com equipes
Forking de repositórios
Fazer um fork cria sua própria cópia do repositório de outra pessoa. Você pode fazer alterações sem afetar o original:
# Fork a repo using the GitHub CLI
gh repo fork owner/repo --clone
# Or fork and add a remote
git remote add fork https://github.com/your-username/repo.git
O forking é a maneira padrão de contribuir para projetos open source. Você faz o fork do repositório, realiza as alterações no seu fork e abre um pull request de volta para o original.
Code review
As ferramentas de code review do GitHub permitem comentar em linhas específicas, sugerir alterações e solicitar modificações:
- Comentários inline — discuta linhas específicas de código
- Sugestões de alteração — proponha edições que os autores podem aceitar com um clique
- Aprovações de review — aprove, solicite alterações ou comente no PR como um todo
- Code owners — atribua revisores automaticamente com base nos arquivos alterados
Proteção de branches
Proteja branches importantes contra alterações acidentais ou não autorizadas:
- Exigir reviews de pull request antes do merge
- Exigir que as verificações de status passem (a CI deve estar verde)
- Exigir histórico linear (sem merge commits)
- Restringir quem pode fazer push para a branch
- Exigir commits assinados
Gestão de projetos
O GitHub Projects oferece quadros kanban, tabelas e roadmaps para gerenciar o trabalho:
- Crie colunas como “To Do”, “In Progress” e “Done”
- Vincule issues e pull requests a cartões
- Automatize a movimentação de cartões com base em eventos
- Acompanhe o progresso com insights e gráficos
Melhores práticas
- Escreva arquivos README descritivos — explique o que seu projeto faz, como instalá-lo e como contribuir.
- Use templates de issue — padronize os relatos de bugs e as solicitações de novas funcionalidades.
- Ative a proteção de branch — exija revisões e a aprovação da CI antes de realizar o merge.
- Escreva descrições de PR significativas — explique o que mudou, por que mudou e como testar.
- Use GitHub Actions — automatize os testes e o deployment em vez de fazê-los manualmente.
- Mantenha os repositórios focados — um projeto por repo, evitando monólitos de código não relacionado.
- Tagueie as releases — use versionamento semântico e GitHub Releases para marcar versões estáveis.
- Contribua para open source — faça fork, corrija bugs e envie pull requests para construir sua experiência e reputação.
Erros comuns
- Enviar dados sensíveis, como API keys ou senhas, para um repositório público.
- Não escrever um README, deixando os visitantes confusos sobre o que o projeto faz.
- Criar pull requests sem descrição ou contexto para os revisores.
- Ignorar issues e deixá-las se acumularem sem triagem.
- Não utilizar branch protection, permitindo pushes diretos para a main.
- Comitar node_modules, .env ou outros arquivos que deveriam estar no .gitignore.
- Usar o GitHub como um serviço de backup sem entender o Git localmente primeiro.
O que aprender a seguir
Agora você compreende os recursos principais do GitHub: repositórios, issues, pull requests e Actions. A partir daqui, o próximo passo natural é Git para dominar o sistema de controle de versão que sustenta tudo isso, incluindo branching, merging e rebasing. Escolha um projeto, contribua com ele e deixe a prática acumular.