Aula 05 - Plataformas de Colaboração 🤝
!!! tip "Objetivo" Objetivo: Entender o papel das plataformas de hospedagem de código, conectar seu repositório local com a nuvem e compreender o fluxo de colaboração via Pull Requests.
1. Do Local para a Nuvem ☁️
Até agora, trabalhamos apenas na nossa máquina. Para colaborar com outras pessoas e garantir a segurança do nosso código, usamos plataformas como GitHub, GitLab ou Bitbucket.
🧠 Conceito: Repositório Remoto (Remote)
=== "Segurança" O repositório remoto atua como um porto seguro contra desastres. Se o seu computador local (Working Directory e Local Repo) for destruído, seu código ainda vive nas nuvens do GitHub/GitLab.
=== "Sincronização" O Git distribui esse poder. Você "empurra" (push) os seus snapshots em lote para o repô remoto para a sua equipe, e "puxa" (pull) as fotos de outros colegas para se atualizar.
2. GitHub: O Padrão de Mercado 🐙
O GitHub é a maior plataforma de desenvolvedores do mundo. Além de hospedar o código, ele oferece ferramentas sociais e de automação.
Comandos de Conexão
| Comando | Ação |
|---|---|
git remote add origin <URL> |
Conecta seu repo local a um link remoto. |
git push -u origin main |
Envia seus commits para o servidor pela primeira vez. |
git pull origin main |
Traz as novidades do servidor para sua máquina. |
git clone <URL> |
Baixa um projeto completo da internet. |
3. O Fluxo de Colaboração Profissional 🔄
Em equipes profissionais, ninguém mexe direto no código "oficial" (main). Usamos um fluxo chamado GitHub Flow:
- Branch: Você cria uma "cópia" segura para trabalhar.
- Commit: Faz suas alterações.
- Pull Request (PR): Você pede permissão para unir suas mudanças ao código oficial.
- Code Review: Outros devs revisam seu código e sugerem melhorias.
- Merge: Se tudo estiver ok, o código é unido.
Visualização do Fluxo de PR (Mermaid)
graph LR
Main([Main Branch]) -- git checkout -b feature --> Feature([Sua Branch])
Feature -- git commit --> Feature
Feature -- Pull Request --> Review{Revisão}
Review -- Aprovado --> Main
Review -- Pedido de ajuste --> Feature
4. Praticando a Sincronização 💻
$ git remote add origin https://github.com/usuario/meu-projeto.git
$ git push -u origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 220 bytes | 220.00 KiB/s, done.
To https://github.com/usuario/meu-projeto.git
* [new branch] main -> main
5. Mini-Projeto: Meu Portfólio no Ar 🚀
Sua missão é subir um de seus códigos para o GitHub:
- Crie um novo repositório Público no GitHub chamado
ads-ferramentas-desafio. - No seu terminal, dentro de uma pasta com código, execute o comando para adicionar o
origin. - Faça o
pushdo seu código. - Verifique no navegador se os arquivos apareceram lá.
- Desafio: Peça para um colega (ou use outra conta) fazer um "Fork" do seu projeto.
6. Exercício de Fixação 📝
- Básico: Qual a principal diferença entre o Git (software) e o GitHub (plataforma)?
- Básico: Para que serve o comando
git clone? - Intermediário: Por que o Code Review é uma etapa fundamental em grandes empresas de tecnologia?
- Intermediário: Explique o que acontece se duas pessoas alterarem a mesma linha de código e tentarem enviar para o GitHub.
- Desafio: Pesquise o que é um "Fork" e em qual situação ele é mais utilizado do que uma "Branch".
Próxima Aula: Vamos falar sobre onde os dados moram: Bancos de Dados Relacionais e Clientes GUI! 💾