Skip to content

icarojobs/treinamento-git-github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

🚀 Treinamento Prático: Git + GitHub

para Times de Desenvolvimento

Git GitHub License GPLv3

"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])
Loading

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)]
Loading

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ênciasnode_modules/, vendor/
  • Segredos.env, senhas, tokens, chaves
  • Arquivos geradosbuild/, 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
Loading

14. CONFLITOS

Ocorrem quando duas pessoas alteram a mesma linha.

<<<<<<< HEAD
Nome Atual
=======
Novo Nome
>>>>>>> feature

Como resolver:

  1. Editar manualmente o arquivo
  2. Salvar
  3. Commitar
git add .
git commit

15. CONECTANDO AO GITHUB

  1. Criar repositório no GitHub
  2. 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"
Loading

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]
Loading

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
  1. Abrir Pull Request no GitHub (Compare & Pull Request)
  2. Code Review — analisar código, performance, segurança e padrões
  3. Approve Changes
  4. Merge Pull Request
  5. 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]
Loading

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:


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 initgit addgit 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

About

Treinamento essencial para profissionais de TI e IA que precisam versionar projetos.

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors