Git & GitHub Guide

Guia Completo de Git e GitHub

Domine o controle de versão com Git e colabore efetivamente usando GitHub. Do básico ao avançado, aprenda tudo sobre versionamento de código.

Conceitos Fundamentais

Entenda os conceitos essenciais do Git e GitHub

O que é Git?

Git é um sistema de controle de versão distribuído que permite rastrear mudanças no código-fonte durante o desenvolvimento de software.

O que é GitHub?

GitHub é uma plataforma de hospedagem de código que utiliza Git. Permite colaboração, revisão de código e gerenciamento de projetos.

Repositório

Um repositório (repo) é um diretório que contém todos os arquivos do seu projeto e o histórico completo de alterações.

Commit

Um commit é um snapshot do estado do seu projeto em um momento específico. É como uma "fotografia" do seu código.

Branch

Uma branch é uma linha independente de desenvolvimento. Permite trabalhar em features sem afetar o código principal.

Merge

Merge é o processo de combinar mudanças de diferentes branches em uma única branch, geralmente a main ou master.

Instalação e Configuração

Configure o Git no seu ambiente de desenvolvimento

Windows

  1. Baixe o Git em git-scm.com
  2. Execute o instalador
  3. Siga as instruções do assistente
  4. Verifique a instalação: git --version

Linux / macOS

# Ubuntu/Debian
sudo apt-get install git
# macOS (com Homebrew)
brew install git

Configuração Inicial

# Configure seu nome
git config --global user.name "Seu Nome"
# Configure seu email
git config --global user.email "seu@email.com"
# Configure o editor padrão
git config --global core.editor "code --wait"
# Verifique as configurações
git config --list

Comandos Essenciais

Comandos Git que todo desenvolvedor precisa conhecer

Inicializar Repositório

# Criar novo repositório
git init
# Clonar repositório existente
git clone https://github.com/usuario/repo.git

Adicionar e Commitar

# Ver status dos arquivos
git status
# Adicionar arquivo específico
git add arquivo.txt
# Adicionar todos os arquivos
git add .
# Criar commit
git commit -m "Mensagem do commit"

Trabalhar com Branches

# Listar branches
git branch
# Criar nova branch
git branch nome-da-branch
# Mudar de branch
git checkout nome-da-branch
# Criar e mudar de branch
git checkout -b nova-branch

Sincronizar com Remoto

# Adicionar repositório remoto
git remote add origin https://github.com/usuario/repo.git
# Enviar commits
git push origin main
# Baixar alterações
git pull origin main
# Ver repositórios remotos
git remote -v

Workflow com GitHub

Fluxo de trabalho profissional usando GitHub

1. Criar Branch

Crie uma branch para sua feature ou correção

git checkout -b feature/nova-funcionalidade

2. Fazer Commits

Faça commits frequentes com mensagens claras

git add .
git commit -m "Adiciona nova funcionalidade"

3. Push e Pull Request

Envie sua branch e crie um Pull Request

git push origin feature/nova-funcionalidade

Boas Práticas

Dicas para usar Git e GitHub de forma profissional

Mensagens de Commit
  • Use mensagens descritivas e claras
  • Comece com verbo no imperativo
  • Mantenha a primeira linha curta (até 50 caracteres)
  • Exemplo: "Adiciona autenticação de usuário"
Estratégia de Branches
  • Use branches para features isoladas
  • Mantenha a branch main sempre estável
  • Delete branches após merge
  • Use nomes descritivos: feature/, fix/, hotfix/
.gitignore

Sempre use um arquivo .gitignore para evitar commitar arquivos desnecessários:

# Dependências
node_modules/
venv/

# Arquivos de ambiente
.env

# Logs
*.log
Frequência de Commits
  • Faça commits pequenos e frequentes
  • Cada commit deve representar uma mudança lógica
  • Evite commits muito grandes
  • Commite apenas código funcional

Comandos Avançados

Recursos avançados do Git para desenvolvedores experientes

Histórico e Logs
# Ver histórico completo
git log

# Histórico resumido
git log --oneline

# Histórico com gráfico
git log --graph --oneline --all

# Ver mudanças em arquivo
git log -p arquivo.txt
Desfazer Mudanças
# Desfazer mudanças não commitadas
git checkout -- arquivo.txt

# Desfazer último commit (mantém mudanças)
git reset --soft HEAD~1

# Desfazer último commit (remove mudanças)
git reset --hard HEAD~1

# Reverter commit específico
git revert <commit-hash>
Stash
# Salvar mudanças temporariamente
git stash

# Listar stashes
git stash list

# Aplicar último stash
git stash apply

# Aplicar e remover stash
git stash pop
Buscar e Filtrar
# Buscar em commits
git log --grep="palavra"

# Buscar por autor
git log --author="Nome"

# Buscar arquivo removido
git log --diff-filter=D --summary

# Buscar conteúdo em histórico
git log -S "texto"