Jhonatan Pinheiro
Carregando página...
Jhonatan Pinheiro
Carregando página...
Jhonatan Pinheiro
Carregando página...
A diferença entre Git e GitHub, o fluxo com branches e Pull Requests, issues, Actions, releases, segurança e como usar a plataforma como portfólio.
Muita gente aprende Git e GitHub como se fossem a mesma coisa. Não são — e entender a diferença é o primeiro passo para usar os dois bem.
Dá para usar Git a vida toda sem GitHub. O que você perde é tudo que acontece entre pessoas.
Git resolve o versionamento, mas deixa três perguntas em aberto:
format-patch e e-mail — funciona, mas é do tempo em que o Linux era desenvolvido por lista de discussão.O GitHub responde às três: repositório remoto como fonte da verdade, pull request como forma padronizada de propor mudança e Actions para automatizar verificação e deploy.
Um repositório ("repo") é o projeto: código, histórico, documentação e configuração.
Três arquivos definem a primeira impressão do seu repositório:
README.md # o que é, como rodar, como contribuir — vira a capa do repositório
.gitignore # o que nunca deve ser versionado (node_modules, .env, build)
LICENSE # sem licença, "público" não significa "livre para usar"Repositório público sem licença é, juridicamente, "todos os direitos reservados". Se você quer que usem seu código, escolha uma licença — MIT e Apache 2.0 são as mais comuns.
E o aviso que vale por todos: nunca commite segredo. Token, senha e chave privada em repositório público são varridos por bots em minutos. Se aconteceu, revogue a credencial antes de qualquer outra coisa — apagar o commit não basta, porque ela já foi lida.
O ciclo que praticamente toda equipe usa:
# 1. Traga o estado atual da branch principal
git switch main
git pull
# 2. Crie uma branch para a sua tarefa
git switch -c feat/filtro-por-assunto
# 3. Trabalhe em commits pequenos e descritivos
git add .
git commit -m "feat(blog): filtro por assunto na listagem"
# 4. Publique a branch
git push -u origin feat/filtro-por-assunto
# 5. Abra o Pull Request (pelo site ou pelo gh CLI)
gh pr create --fillPor que branch em vez de commitar direto na main? Porque a main deveria estar sempre publicável. Toda mudança passa por um lugar onde pode ser revisada, testada e desfeita sem afetar quem depende dela.
O GitHub tem um cliente de linha de comando que evita ficar indo ao navegador:
gh auth login # autentica a máquina
gh repo create meu-projeto --private # cria o repositório
gh repo clone usuario/projeto
gh pr create --fill # abre PR com título/corpo dos commits
gh pr list
gh pr checkout 42 # baixa o PR de outra pessoa para testar
gh pr review 42 --approve
gh pr merge 42 --squash --delete-branch
gh issue create --title "Bug no filtro" --body "Passos para reproduzir..."
gh run list # execuções do Actions
gh run watch # acompanha a execução atualO Pull Request (PR) é o coração do GitHub. Ele diz: "tenho estas mudanças nesta branch e quero integrá-las naquela; revisem".
Um PR reúne em um só lugar:
O que faz um bom PR:
| Prática | Por quê |
|---|---|
| Pequeno (menos de ~400 linhas) | PR gigante recebe "LGTM" sem leitura de verdade |
| Um assunto por PR | Facilita revisar, reverter e entender depois |
| Título e descrição claros | O revisor precisa saber o porquê, não só o o quê |
| Print ou vídeo quando é visual | Economiza rodadas de "não entendi o que mudou" |
| CI verde antes de pedir revisão | Não gaste o tempo de outra pessoa com erro de lint |
Três formas de mesclar, e quando usar cada uma:
main. O padrão da maioria das equipes: histórico limpo, um commit por funcionalidade.Nas configurações do repositório você define as regras da main:
É o que transforma boa intenção em processo. Sem isso, o "combinamos de sempre abrir PR" dura até a primeira sexta-feira apertada.
Issues são as tarefas, bugs e ideias do projeto — cada uma com discussão, responsável, rótulos e marco.
# No corpo do commit ou do PR, isto fecha a issue automaticamente ao mesclar:
git commit -m "fix: corrige contraste do tema claro
Closes #42"Recursos que valem conhecer:
bug, enhancement, good first issue. O último é o convite clássico para novos contribuidores..github/ISSUE_TEMPLATE e PULL_REQUEST_TEMPLATE.md padronizam o que você precisa receber.Actions roda tarefas automaticamente quando algo acontece no repositório: um push, um PR aberto, uma tag criada, um horário do dia.
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
verificar:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run lint
- run: npm test
- run: npm run buildCom isso, todo PR chega ao revisor já com lint, teste e build verificados. Os usos mais comuns:
main.on: schedule) — rotinas periódicas, como checar links quebrados ou atualizar dependências.Duas dicas que evitam dor: use secrets para credenciais (nunca escreva token no YAML) e fixe a versão das actions (@v4, ou melhor, o hash do commit) para não ser surpreendido por uma atualização de terceiro.
gh release create v1.2.0 --generate-notes
gh release upload v1.2.0 ./dist/app.zipO GitHub embute várias camadas de proteção — e a maioria é só ligar:
E do seu lado: use SSH ou token com escopo mínimo, nunca senha; e prefira fine-grained tokens, que dão acesso a repositórios específicos em vez de à conta inteira.
# Chave SSH: gere, adicione ao agente e cadastre a pública no GitHub
ssh-keygen -t ed25519 -C "voce@email.com"
ssh-add ~/.ssh/id_ed25519
gh ssh-key add ~/.ssh/id_ed25519.pub
ssh -T git@github.com # testa a conexãoPara quem está construindo carreira, o perfil no GitHub costuma ser lido antes do currículo. O que realmente pesa:
Sobre o "quadradinho verde": consistência é boa, mas ninguém sério contrata por causa dele. Commit diário sem substância é fácil de identificar.
| Plataforma | Se destaca em |
|---|---|
| GitHub | Maior comunidade, melhor ecossistema, Actions e integrações |
| GitLab | CI/CD muito completo e opção auto-hospedada madura |
| Bitbucket | Integração forte com Jira e o restante da Atlassian |
| Azure DevOps | Ambientes corporativos Microsoft, com boards e pipelines |
| Gitea / Forgejo | Leve e auto-hospedado — o "GitHub de casa" |
Para projeto pessoal, open source e portfólio, GitHub é a escolha padrão pelo alcance. Para empresa com exigência de dado on-premise, GitLab e Gitea auto-hospedados costumam entrar na conversa.
Git guarda a história do seu código. GitHub é onde essa história encontra outras pessoas — para revisar, automatizar, publicar e colaborar.
Se você está começando, o caminho mais curto para tirar proveito real:
good first issue em um projeto que você usa e mande seu primeiro PR.O quinto passo é o que muda de patamar: é quando o GitHub deixa de ser um backup do seu código e vira o lugar onde você trabalha com o resto do mundo.