Aula 04 - Repositórios Remotos e GitHub 👥
Objetivo
Objetivo: Entender o papel do GitHub como plataforma de colaboração, aprender a trabalhar com repositórios remotos, dominar o fluxo de Pull Requests e o Git Flow simplificado.
1. O que é o GitHub? ☁️
Enquanto o Git é o software que controla as versões na sua máquina, o GitHub é um serviço de nuvem que hospeda esses repositórios. Pense nele como uma "Rede Social para Programadores", mas com ferramentas poderosas de automação.
Por que usar?
- Backup: Seu código está seguro na nuvem.
- Colaboração: Muitos desenvolvedores podem contribuir no mesmo projeto.
- Portfólio: Uma vitrine para empresas verem o que você sabe fazer.
- Automação (DevOps): Onde os pipelines de CI/CD (GitHub Actions) acontecem.
2. Trabalhando com Remotos 📡
Para conectar seu Git local ao GitHub, usamos os comandos de "sincronização":
git remote add origin [URL]: Conecta sua pasta local a um repositório no GitHub.git push -u origin main: Envia seus commits locais para o GitHub.git pull: Traz as novidades que seus colegas enviaram para o GitHub.git clone [URL]: Baixa um projeto inteiro para sua máquina.
3. Fluxo de Trabalho: Pull Requests (PR) 📥
No DevOps, nunca enviamos código diretamente para a branch prinicipal (main) sem revisão. Usamos o fluxo de Pull Request:
- Você cria uma Branch para sua tarefa (
feature-login). - Faz os commits e o Push.
- No GitHub, você abre um Pull Request.
- Seus colegas revisam seu código, fazem comentários e sugerem mudanças.
- Quando tudo estiver OK, o código é "mergeado" na
main.
4. Git Flow Simplificado 🌊
O Git Flow é uma estratégia de organização de branches. Para iniciantes, usamos este modelo simples:
- main: Código estável que está rodando para o usuário (em "produção").
- develop: Onde as funcionalidades novas são integradas antes de irem para a main.
- features/: Branches temporárias para criar algo novo (ex:
feature/ajuste-fonte).
graph LR
Main(["main"]) --- Develop(["develop"])
Develop --- F1(["feature/A"])
Develop --- F2(["feature/B"])
F1 -- "PR" --> Develop
Develop -- "Release" --> Main
Comandos de Sincronização (Termynal) 💻
git remote add origin https://github.com/usuario/repo.git git push -u origin main Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Writing objects: 100% (5/5), 450 bytes | 450.00 KiB/s, done. To https://github.com/usuario/repo.git * [new branch] main -> main branch 'main' set up to track 'origin/main'.
5. Colaboração Profissional 🤝
- Issues: Para relatar bugs ou pedir novas funcionalidades.
- Code Review: O ato de ler o código do colega para garantir qualidade e aprender.
- README.md: O arquivo mais importante! Explica o que o projeto faz e como rodar.
6. Prática Sugerida 🚀
- Crie um repositório público no seu GitHub chamado
lab-devops-01. - Suba os arquivos que criamos na aula anterior (
git push). - Crie um arquivo chamado
README.mddireto pelo site do GitHub. - Dê um
git pullna sua máquina para ver o arquivo aparecer lá. - Crie uma branch, mude algo e abra seu primeiro Pull Request para você mesmo.
7. Exercício de Fixação 🧠
- Diferencie Git de GitHub.
- O que é um Pull Request e por que ele é vital para a cultura DevOps?
- Qual o comando para baixar um repositório existente do GitHub pela primeira vez?
Fim do Módulo 1! Você agora entende a cultura e a base técnica. No próximo módulo, iniciaremos a Integração Contínua e Automação! ⚙️