// aula 05 · Git & GitHub

GitHub — Repositórios
remotos e Pull Requests


Repositório remoto — conectando ao GitHub

☁️ Local vs Remoto

O repositório local é o .git na sua máquina. O repositório remoto é o que fica no GitHub. Você sincroniza os dois com push (envia) e pull (recebe).

# Conectar um repositório local a um remoto
git remote add origin https://github.com/luciliarosa/notebookon.git

# Ver os remotos configurados
git remote -v

# Trocar a URL do remoto
git remote set-url origin https://github.com/luciliarosa/repo.git

# Enviar para o GitHub (primeiro push)
git push -u origin main

# Enviar nos próximos (já com -u configurado)
git push

# Enviar uma branch específica
git push origin feature/login

# Baixar atualizações do remoto
git pull                     # fetch + merge
git pull --rebase           # fetch + rebase (histórico mais limpo)
git fetch                    # só baixa, não aplica

Clonando repositórios

# Clonar um repositório existente
git clone https://github.com/usuario/repositorio.git

# Clonar em uma pasta com nome diferente
git clone https://github.com/usuario/repositorio.git minha-pasta

# Clonar só a branch específica
git clone -b develop https://github.com/usuario/repositorio.git

Pull Request — o coração do trabalho em equipe

🔀 Pedindo para integrar seu código

Um Pull Request (PR) é uma solicitação para que seu código seja revisado e integrado em outra branch. É a principal forma de colaboração no GitHub — você não faz merge diretamente na main, você pede que alguém revise primeiro. O Guanabara chama isso de "cultura de revisão de código".

1

Cria uma branch nova

Nunca trabalhe direto na main. Crie uma branch com um nome descritivo: feature/adiciona-dark-mode.

2

Faz commits na sua branch

Desenvolve a funcionalidade com commits organizados e com mensagens claras.

3

Envia a branch para o GitHub

git push origin feature/adiciona-dark-mode

4

Abre o Pull Request no GitHub

No site do GitHub, clica em "Compare & pull request". Escreve um título e descrição explicando o que foi feito e por quê.

5

Revisão do código (Code Review)

Outros membros do time analisam o código, deixam comentários, pedem mudanças ou aprovam. Você responde e faz ajustes na mesma branch.

6

Merge do PR

Após aprovado, o PR é mergeado na main pelo botão "Merge pull request" no GitHub. A branch pode ser deletada em seguida.


Fork — contribuindo com projetos de outros

🍴 Uma cópia do repositório na sua conta

Fork é uma cópia completa de um repositório para a sua conta no GitHub. Usado para contribuir com projetos open source — você faz fork, modifica na sua cópia, e abre um PR para o repositório original.

# Após fazer o fork no GitHub, clone o SEU fork
git clone https://github.com/luciliarosa/projeto-original.git

# Adicionar o repositório original como "upstream"
git remote add upstream https://github.com/autor-original/projeto.git

# Sincronizar seu fork com o original
git fetch upstream
git merge upstream/main

📋 Referência rápida — todos os comandos essenciais

ComandoO que faz
git initInicializa um repositório Git na pasta atual
git clone <url>Clona um repositório remoto localmente
git statusMostra o estado atual dos arquivos
git add .Adiciona todos os arquivos ao staging
git commit -m "msg"Salva um snapshot com a mensagem
git log --onelineHistórico de commits resumido
git diffMostra diferenças ainda não no staging
git branchLista as branches locais
git switch -c <nome>Cria e muda para uma nova branch
git merge <branch>Une a branch especificada na atual
git rebase <branch>Reaplica commits em cima de outra base
git stashGuarda alterações não commitadas
git stash popRecupera o último stash guardado
git remote add origin <url>Conecta o repo local ao GitHub
git push -u origin mainEnvia commits e configura o upstream
git pullBaixa e integra mudanças do remoto
git fetchBaixa mudanças sem integrar
git restore <arquivo>Descarta mudanças no working directory
git reset --soft HEAD~1Desfaz o último commit, mantém mudanças
git revert <hash>Cria commit que desfaz outro (seguro)
git tag v1.0.0Marca um commit com uma versão
git config --global ...Configura usuário, e-mail, editor