MÓDULO 6.2

🐙 GitHub e repositórios

Leve seu repositório local para a nuvem: crie repos, configure SSH, use o gh CLI no terminal, abra PRs e escreva um README que impressiona. O GitHub é sua vitrine profissional.

6
Tópicos
~45
Minutos
Intermediário
🛠️
Prático
1

🏗️ Criar repositório

Web vs gh CLI — dois caminhos para o mesmo destino

1

Via gh CLI (recomendado)

$ gh repo create meu-projeto --public --clone
$ gh repo create meu-projeto --private --add-readme
$ gh repo create           # modo interativo (pergunta tudo)
2

Conectar repo local existente ao GitHub

$ git remote add origin git@github.com:user/repo.git
$ git push -u origin main
$ git remote -v    # confirma remote configurado

✓ Repo público: ideal para portfólio

  • Indexado no Google e GitHub search
  • GitHub Pages gratuito e ilimitado
  • Contribuidores externos podem ajudar

🔒 Repo privado: para projetos internos

  • Código não exposto publicamente
  • Colaboradores precisam de convite
  • GitHub Pages requer plano pago (exceto orgs)
🌐
Público
Portfólio e open source
🔒
Privado
Projetos pessoais/comerciais
🍴
Fork
Cópia de outro projeto
📥
Clone
Baixar para o seu computador
2

📡 Remote e push

Sincronizar local com o GitHub — o loop que vai repetir todo dia

LOCAL seu computador commits git push git pull / fetch 🐙 GITHUB origin/main histórico remoto backup seguro colab A colab B você equipe

Push envia, pull recebe — GitHub é o ponto central de sincronização.

REMOTE E SINCRONIZAÇÃO
$ git push -u origin main    # primeiro push + configura tracking
$ git push                   # pushes seguintes (tracking já configurado)
$ git pull                   # baixa + mescla mudanças remotas
$ git fetch                  # baixa SEM mesclar (mais seguro)
$ git remote -v              # lista remotes configurados
$ git remote set-url origin URL  # muda a URL do remote

💡 push --force-with-lease: o jeito seguro

Nunca use git push --force em branch compartilhada — destrói o trabalho de outros. Use --force-with-lease: só força se ninguém pushinou antes de você.

⬆️
git push
Envia commits locais
⬇️
git pull
Baixa + mescla
🔄
git fetch
Baixa sem mesclar
📡
origin
Nome padrão do remote
3

🔑 SSH vs HTTPS

Autenticar uma vez, trabalhar para sempre sem digitar senha

SSH — recomendado para uso diário

  • Par de chaves: pública fica no GitHub, privada no seu computador
  • Sem digitação de senha a cada push/pull
  • URL: git@github.com:user/repo.git
  • Funciona perfeitamente com Claude Code em automação

HTTPS — mais simples de configurar

  • Token pessoal (PAT) no lugar de senha
  • URL: https://github.com/user/repo.git
  • Credential helper cacheia token
  • Mais fácil atrás de firewalls corporativos
CONFIGURAR SSH — PASSO A PASSO
# 1. Gerar chave
$ ssh-keygen -t ed25519 -C "seu@email.com"
# pressione Enter para aceitar o caminho padrão (~/.ssh/id_ed25519)

# 2. Copiar a chave pública
$ cat ~/.ssh/id_ed25519.pub
# copie todo o output e cole em GitHub → Settings → SSH keys → New SSH key

# 3. Testar conexão
$ ssh -T git@github.com
Hi usuario! You've successfully authenticated, but GitHub does not provide shell access.

# 4. Mudar remote existente de HTTPS para SSH
$ git remote set-url origin git@github.com:user/repo.git
🔐
ed25519
Algoritmo recomendado
🗝️
~/.ssh/
Pasta das chaves
📋
PAT
Token pessoal HTTPS
💾
Credential helper
Cacheia credenciais
4

⚡ gh CLI

GitHub no terminal — criar repos, PRs, releases e muito mais sem abrir browser

🤖 Claude Code usa gh extensivamente

Ao pedir para Claude Code criar PRs, verificar CI/CD, fazer releases ou abrir issues, ele usa gh nos bastidores. Entender os comandos permite auditar o que foi feito e customizar o comportamento.

gh CLI — COMANDOS ESSENCIAIS
# Autenticação
$ gh auth login                          # autentica com GitHub
$ gh auth status                         # verifica autenticação

# Repositórios
$ gh repo create nome --public --clone    # cria e clona
$ gh repo view                           # detalhes do repo atual
$ gh repo clone user/repo                # clona repo

# Pull Requests
$ gh pr create --title "feat: X" --body "Descrição"
$ gh pr list                             # lista PRs abertos
$ gh pr merge --squash --delete-branch   # merge com squash

# Issues
$ gh issue create --title "Bug: X" --label bug
$ gh issue list --label "good first issue"

# Releases
$ gh release create v1.0.0 --generate-notes
$ gh release list

# GitHub Actions / CI
$ gh run list                            # lista execuções recentes
$ gh run watch                           # monitora execução em tempo real

Instalar gh CLI

# macOS: brew install gh

# Ubuntu/Debian: sudo apt install gh

# Windows: winget install GitHub.cli

🔑
gh auth login
Uma vez, para sempre
📁
gh repo create
Repo novo em segundos
🔀
gh pr create
PR sem abrir browser
📊
gh run watch
CI em tempo real
5

🔀 Pull Requests

Colaboração estruturada — revisão antes do merge

1

Criar branch + commit + push

git checkout -b feature/nova-funcao
git add . && git commit -m "feat: adiciona nova funcão"
git push -u origin feature/nova-funcao
2

Abrir o PR via gh CLI

gh pr create \
  --title "feat: adiciona nova funcão" \
  --body "## O que faz\n- Item 1\n\n## Como testar\n- Passo 1" \
  --base main
3

Revisar, aprovar e mesclar

gh pr review --approve       # aprovar
gh pr merge --squash --delete-branch  # merge com squash
gh pr checks                  # verificar CI
📝
Draft PR
WIP visível para equipe
Approve
Sinal verde para merge
🗜️
Squash merge
1 commit limpo na main
🤖
PR template
.github/pull_request_template
6

📖 README eficaz

Primeira impressão do projeto — a diferença entre ignorado e estrelado

README.md — ESTRUTURA RECOMENDADA
# 🚀 Nome do Projeto

> Uma linha descrevendo o que faz e para quem.

![Status](https://img.shields.io/badge/status-ativo-success)
![License](https://img.shields.io/badge/license-MIT-blue)

## ✨ O que faz
Lista rápida com os principais benefícios.

## 🛠️ Tecnologias
- Lista de tecnologias usadas

## 🚀 Como usar
```bash
git clone ...
npm install
npm start
```

## 📸 Preview
[screenshot ou GIF aqui]

## 📄 Licença
MIT — veja LICENSE para detalhes.

✓ README que funciona

  • Primeira frase: explica o projeto em 10 segundos
  • Screenshot ou GIF acima da dobra
  • Instalação em menos de 3 comandos
  • Badges visuais de status, licença, versão

✗ README que afasta

  • README vazio ou "TODO"
  • Sem instruções de instalação
  • Paredes de texto sem formatação
  • Não atualizado após mudanças no projeto

🤖 Claude Code gera README

Peça: "Analise este projeto e gere um README.md completo com badges, instalação, uso e exemplos reais." Claude lê o código e gera documentação precisa em segundos.

🏷️
Badges
shields.io
📸
Screenshot
Vale mais que 1000 palavras
⚖️
LICENSE
MIT para projetos abertos
🤝
CONTRIBUTING
Como colaborar

🎯 Resumo do módulo

O que você aprendeu

  • Criar repositório via gh CLI ou web
  • Configurar remote e fazer push/pull
  • SSH com ed25519 — autenticação sem senha
  • gh CLI: repos, PRs, issues, releases
  • Fluxo de Pull Request completo
  • README estruturado que impressiona

Próximo módulo

Com o repositório no GitHub, o próximo passo é publicá-lo de graça com GitHub Pages — e colocar seu projeto acessível para o mundo inteiro em minutos.

Módulo 6.3 — GitHub Pages