Treinamento Git Github
Treinamento essencial para profissionais de TI e IA que precisam versionar projetos.
🚀 Treinamento Prático: Git + GitHub
para Times de Desenvolvimento
"Amadores escrevem código. Profissionais versionam código."
#VÍDEO NO YOUTUBE
https://www.youtube.com/watch?v=VPu6xm3W8H0
#🎯 Objetivo
Ao final deste treinamento, todos os participantes serão capazes de:
- Entender a diferença entre Git e GitHub
- Criar e versionar projetos localmente
- Trabalhar com Branches
- Realizar Commits de forma profissional
- Ignorar arquivos com
.gitignore - Sincronizar código com GitHub
- Criar Pull Requests (PR)
- Fazer Code Review
- Resolver conflitos simples
- Entender como Git e GitHub potencializam o uso de IA no desenvolvimento moderno
#📑 Sumário
| # | Tópico | # | Tópico |
|---|---|---|---|
| 1 | O que é Git | 16 | Push |
| 2 | O que é GitHub | 17 | Clone |
| 3 | Git vs GitHub | 18 | Pull |
| 4 | Fluxo de trabalho | 19 | Fetch |
| 5 | Instalando o Git | 20 | Fluxo de branches |
| 6 | Primeiros passos | 21 | Padrão de commits |
| 7 | Primeiro repositório | 22 | Pull Request |
| 8 | Ciclo do Git | 23 | Fluxo completo de PR |
| 9 | Primeiro commit | 24 | Boas práticas de PR |
| 10 | .gitignore 🆕 | 25 | Git + IA |
| 11 | Principais comandos | 26 | Como usar IA com Git |
| 12 | Branches | 27 | GitHub Trending |
| 13 | Merge | 28 | Por que olhar o Trending |
| 14 | Conflitos | 29 | Laboratório prático |
| 15 | Conectando ao GitHub | 30 | Resumo final |
#1. O QUE É GIT?
Git é um Sistema de Controle de Versão Distribuído.
Em termos simples:
Git é uma máquina do tempo para código.
Ele permite:
- Salvar versões do projeto
- Voltar para versões anteriores
- Trabalhar em equipe
- Criar funcionalidades sem quebrar produção
- Auditar quem alterou o quê
#Exemplo
Imagine um arquivo sistema.php.
Você altera o arquivo hoje. Amanhã ele quebra.
Com Git você consegue voltar exatamente para o estado anterior (antes da quebra).
#2. O QUE É GITHUB?
GitHub é uma plataforma online que hospeda repositórios Git.
GitHub NÃO substitui Git. GitHub utiliza Git.
#Analogia
| Git | GitHub |
|---|---|
| Microsoft Word | OneDrive ou Google Drive |
| Banco de Dados | Servidor onde o banco está hospedado |
#3. DIFERENÇA ENTRE GIT VS GITHUB
| Git | GitHub |
|---|---|
| Ferramenta | Plataforma |
| Funciona offline | Funciona online |
| Controle de versão | Compartilhamento |
| Instalado na máquina | Hospedado na nuvem |
| Gratuito e Open Source | Serviço baseado em Git |
#4. FLUXO PROFISSIONAL DE TRABALHO
flowchart TD
A([Desenvolvedor]) --> B[Cria Branch]
B --> C[Desenvolve]
C --> D[Commit]
D --> E[Push]
E --> F[Pull Request]
F --> G[Code Review]
G --> H[Merge]
H --> I([Produção])
#5. INSTALANDO O GIT
O git está disponível através do site https://git-scm.com/install/.
Verificar instalação:
git --version
Exemplo de saída:
git version 2.52.0
#6. PRIMEIROS PASSOS
Configurar nome:
git config --global user.name "Seu Nome" git config --global user.name # verificar
Configurar email:
git config --global user.email "email@empresa.com" git config --global user.email # verificar
Listar todas as configurações:
git config --list
#7. CRIANDO O PRIMEIRO REPOSITÓRIO
mkdir projeto-git # criar pasta cd projeto-git # entrar git init # inicializar Git
Resultado:
Initialized empty Git repository
#8. ENTENDENDO O CICLO DO GIT
flowchart LR
A[Working Directory] -->|git add| B[Staging Area]
B -->|git commit| C[(Repositório Local)]
C -->|git push| D[(GitHub)]
#9. PRIMEIRO COMMIT
Criar arquivo e verificar status:
touch README.md git status
Adicionar ao staging:
git add README.md # arquivo específico git add . # tudo
Criar o commit:
git commit -m "Primeiro commit"
#10. .GITIGNORE
Nem todo arquivo deve ir para o repositório.
O arquivo .gitignore diz ao Git quais arquivos e pastas devem ser ignorados — ou seja, nunca rastreados nem enviados ao GitHub.
#Por que usar?
Evita versionar:
- Dependências →
node_modules/,vendor/ - Segredos →
.env, senhas, tokens, chaves - Arquivos gerados →
build/,dist/,*.log - Configuração de IDE →
.vscode/,.idea/ - Arquivos do sistema →
.DS_Store,Thumbs.db
#Criando o arquivo
touch .gitignore
#Sintaxe dos padrões
| Padrão | Significado |
|---|---|
arquivo.log |
Ignora um arquivo específico |
*.log |
Ignora todos os arquivos .log |
pasta/ |
Ignora uma pasta inteira |
!importante.log |
Exceção: não ignora este arquivo |
# comentário |
Linha de comentário |
#Exemplos por tecnologia
Node.js
node_modules/ .env dist/ *.log
PHP / Laravel
/vendor/ .env storage/*.log
Python
__pycache__/ *.pyc venv/ .env
#⚠️ Atenção: arquivo já rastreado
Se o arquivo já foi commitado, adicioná-lo ao .gitignore não o remove. É preciso tirá-lo do versionamento:
git rm --cached arquivo.env git commit -m "chore: remove arquivo do versionamento"
#.gitignore global
Para ignorar arquivos em todos os projetos da máquina:
git config --global core.excludesfile ~/.gitignore_global
#💡 Dica
Use modelos prontos por linguagem/framework:
#11. PRINCIPAIS COMANDOS GIT
#git status
Mostra o estado atual. Uso diário.
git status
#git add
Adiciona alterações ao staging.
git add . # tudo git add arquivo.php # específico
#git commit
Cria um snapshot.
git commit -m "Cadastro de clientes"
#git log
Histórico.
git log git log --oneline # modo resumido
#git diff
Mostra alterações.
git diff
#git restore
Desfaz alterações.
git restore arquivo.php
#git rm
Remove arquivo.
git rm arquivo.php
#git mv
Renomeia arquivo.
git mv antigo.php novo.php
#12. BRANCHES
Uma branch é uma linha paralela de desenvolvimento.
git branch # listar git branch feature/login # criar git checkout feature/login # trocar git checkout -b feature/login # criar e trocar git switch -c feature/login # alternativa moderna git checkout main # voltar para main
#13. MERGE
Unir duas branches.
git merge feature/login
gitGraph commit commit branch feature/login checkout feature/login commit commit checkout main merge feature/login
#14. CONFLITOS
Ocorrem quando duas pessoas alteram a mesma linha.
<<<<<<< HEAD Nome Atual ======= Novo Nome >>>>>>> feature
Como resolver:
- Editar manualmente o arquivo
- Salvar
- Commitar
git add . git commit
#15. CONECTANDO AO GITHUB
- Criar repositório no GitHub
- Copiar a URL, por exemplo:
https://github.com/empresa/projeto.git
git remote add origin URL # adicionar remoto git remote -v # verificar
#16. PUSH
Enviar para o GitHub.
git push -u origin main # primeira vez git push # próximas vezes
#17. CLONE
Baixar um projeto existente.
git clone https://github.com/empresa/projeto.git
#18. PULL
Baixar e aplicar alterações.
git pull
git pull origin main # fluxo recomendado
#19. FETCH
Buscar alterações sem aplicar. Muito utilizado antes de um merge.
git fetch
#20. FLUXO PROFISSIONAL DE BRANCHES
Padrão recomendado:
main develop feature/* hotfix/* release/*
Exemplos: feature/login, feature/cadastro-cliente, hotfix/correcao-pix, release/v1.3.0.
gitGraph commit branch develop checkout develop commit branch feature/login checkout feature/login commit commit checkout develop merge feature/login checkout main merge develop tag: "v1.3.0"
#21. PADRÃO DE COMMITS
❌ Evite:
ajustes correção teste update
✅ Prefira:
feat: adiciona login por Google fix: corrige cálculo de comissão refactor: simplifica regra de descontos docs: atualiza README test: adiciona testes de integração
#22. PULL REQUEST (PR)
Uma solicitação de merge. Permite:
- Revisão
- Discussão
- Auditoria
- Aprovação
#23. FLUXO COMPLETO DE PR
flowchart TD
A[Atualizar main] --> B[Criar branch]
B --> C[Desenvolver]
C --> D[Commit]
D --> E[Push]
E --> F[Abrir Pull Request]
F --> G[Code Review]
G --> H{Aprovado?}
H -->|Não| C
H -->|Sim| I[Merge]
I --> J[Deletar branch]
Passo a passo:
# 1. Atualizar main git checkout main git pull # 2. Criar branch git checkout -b feature/login # 3. Desenvolver # ... # 4. Commit git add . git commit -m "feat: adiciona autenticação" # 5. Push git push origin feature/login
- Abrir Pull Request no GitHub (Compare & Pull Request)
- Code Review — analisar código, performance, segurança e padrões
- Approve Changes
- Merge Pull Request
- Delete Branch
#24. BOAS PRÁTICAS DE PR
| Tamanho da PR | Recomendação |
|---|---|
| Até 150 linhas | ✅ Ideal |
| Até 300 linhas | 🟡 Aceitável |
| Acima disso | 🔴 Quebrar em PRs menores |
Sempre incluir: Objetivo, Impacto, Evidências e Screenshots.
#25. GIT E IA
A IA aumentou a velocidade de geração de código. Mas também aumentou:
- Bugs
- Código duplicado
- Dívida técnica
Por isso, Git se tornou ainda mais importante.
flowchart TD
A[IA gera código] --> B[Desenvolvedor valida]
B --> C[Commit pequeno]
C --> D[Pull Request]
D --> E[Code Review]
E --> F[Merge seguro]
#26. COMO USAR IA COM GIT
Ferramentas populares:
Copilot · ChatGPT · Claude · Gemini · Cursor · Windsurf
Fluxo ideal:
IA gera → Você revisa → Commit pequeno → PR pequeno → Merge seguro
#27. GITHUB TRENDING
O GitHub Trending mostra:
- Projetos populares
- Novas tecnologias
- Frameworks emergentes
- Ferramentas promissoras
Atalhos úteis:
- Python: https://github.com/trending/python?since=daily
- PHP: https://github.com/trending/php?since=daily
#28. POR QUE OLHAR O TRENDING?
Para aprender arquitetura, padrões e descobrir antes do mercado:
- Frameworks e bibliotecas
- Ferramentas DevOps
- Agentes de IA
- MCP Servers
- SDKs
#29. LABORATÓRIO PRÁTICO
| # | Exercício | Objetivo |
|---|---|---|
| 1 | Criar repositório local | git init → git add → git commit |
| 2 | Criar branch | git checkout -b feature/nome |
| 3 | Criar .gitignore |
Ignorar .env e node_modules/ |
| 4 | Realizar merge | git merge |
| 5 | Criar conflito proposital | Resolver manualmente |
| 6 | Repositório no GitHub | push · pull · clone |
| 7 | Criar Pull Request real | Branch → Commit → Push → PR → Review → Approve → Merge |
#30. RESUMO FINAL
Todo desenvolvedor deve dominar:
✅ git init |
✅ git status |
✅ git add |
✅ git commit |
✅ git log |
✅ git diff |
✅ .gitignore |
✅ git branch |
✅ git checkout |
✅ git merge |
✅ git clone |
✅ git pull |
✅ git push |
✅ Pull Request | ✅ Code Review |
| ✅ Resolução de Conflitos | ✅ GitHub Trending |
"Amadores escrevem código. Profissionais versionam código."
#👨💻 Autor
Autor do Treinamento: Icaro William
Especialidade: Arquiteto de Software (há mais de 20 anos)
Assunto: Git vs GitHub
Mais sobre: https://youtube.com/@tiojobs