🚀 Git Cheat Sheet

Comandos essenciais para dominar o Git

Básicos Commits Branches Remote Histórico Avançados
💡 Dica: Sempre use git status para verificar o estado atual do seu repositório antes de executar outros comandos.

📋 Comandos Básicos

BÁSICO
git init
Inicializa um novo repositório Git
Cria um repositório Git vazio no diretório atual. Use este comando quando começar um novo projeto.
BÁSICO
git clone <url>
Clona um repositório remoto
Cria uma cópia local de um repositório remoto. Baixa todo o histórico e arquivos do projeto.
BÁSICO
git status
Mostra o estado atual do repositório
Exibe arquivos modificados, arquivos em staging e arquivos não rastreados. Use frequentemente!
BÁSICO
git add <arquivo>
Adiciona arquivos ao staging
Prepara arquivos para commit. Use git add . para adicionar todos os arquivos modificados.
BÁSICO
git add -A
Adiciona todos os arquivos
Adiciona todas as mudanças (modificações, adições e remoções) ao staging area.
BÁSICO
git diff
Mostra diferenças nos arquivos
Exibe as mudanças que ainda não foram adicionadas ao staging. Use git diff --staged para ver mudanças em staging.

💾 Commits

BÁSICO
git commit -m "mensagem"
Cria um commit com mensagem
Salva as mudanças do staging area no histórico do repositório com uma mensagem descritiva.
INTERMEDIÁRIO
git commit -am "mensagem"
Adiciona e faz commit em um comando
Adiciona automaticamente arquivos modificados ao staging e faz commit. Não funciona com arquivos novos.
INTERMEDIÁRIO
git commit --amend
Modifica o último commit
Permite alterar a mensagem ou adicionar arquivos ao último commit. Use apenas em commits que não foram enviados.
AVANÇADO
git commit --amend --no-edit
Adiciona arquivos ao último commit
Adiciona novos arquivos ao último commit sem alterar a mensagem. Útil quando esqueceu de adicionar um arquivo.

🌳 Branches

BÁSICO
git branch
Lista todas as branches
Mostra todas as branches locais. A branch atual é marcada com asterisco (*).
BÁSICO
git branch <nome>
Cria uma nova branch
Cria uma nova branch baseada na branch atual, mas não muda para ela automaticamente.
BÁSICO
git checkout <branch>
Muda para uma branch
Alterna para a branch especificada. Todos os arquivos são atualizados para refletir o estado da branch.
BÁSICO
git checkout -b <nome>
Cria e muda para nova branch
Cria uma nova branch e automaticamente muda para ela. Atalho para criar e trocar em um comando.
INTERMEDIÁRIO
git merge <branch>
Faz merge de uma branch
Incorpora as mudanças de outra branch na branch atual. Pode criar conflitos que precisam ser resolvidos.
INTERMEDIÁRIO
git branch -d <nome>
Deleta uma branch
Remove uma branch que já foi mergeada. Use -D para forçar a remoção de branches não mergeadas.

🌐 Repositórios Remotos

BÁSICO
git remote -v
Lista repositórios remotos
Mostra todos os repositórios remotos configurados e suas URLs.
BÁSICO
git remote add origin <url>
Adiciona repositório remoto
Conecta seu repositório local a um repositório remoto. "origin" é o nome padrão para o remoto principal.
BÁSICO
git push origin <branch>
Envia commits para o remoto
Envia suas mudanças locais para o repositório remoto. Use git push após configurar upstream.
BÁSICO
git pull
Baixa e integra mudanças
Baixa as últimas mudanças do repositório remoto e automaticamente faz merge com sua branch atual.
INTERMEDIÁRIO
git fetch
Baixa mudanças sem fazer merge
Baixa as mudanças do repositório remoto mas não integra automaticamente. Permite revisar antes do merge.
INTERMEDIÁRIO
git push -u origin <branch>
Envia e configura upstream
Envia a branch e configura o tracking, permitindo usar apenas git push nas próximas vezes.

📚 Histórico e Logs

BÁSICO
git log
Mostra histórico de commits
Exibe todos os commits com hash, autor, data e mensagem. Use q para sair.
INTERMEDIÁRIO
git log --oneline
Log resumido em uma linha
Mostra cada commit em uma linha com hash abreviado e mensagem. Mais fácil de ler.
INTERMEDIÁRIO
git log --graph
Log com gráfico ASCII
Exibe o histórico com um gráfico mostrando branches e merges. Combine com --oneline.
INTERMEDIÁRIO
git show <commit>
Mostra detalhes de um commit
Exibe as mudanças introduzidas por um commit específico, incluindo diff completo.
AVANÇADO
git blame <arquivo>
Mostra quem modificou cada linha
Exibe linha por linha quem foi o último a modificar e em qual commit. Útil para debugging.
AVANÇADO
git reflog
Histórico de referências
Mostra um log de todas as ações que moveram o HEAD. Útil para recuperar commits "perdidos".

⚡ Comandos Avançados

AVANÇADO
git stash
Salva mudanças temporariamente
Guarda mudanças não commitadas em uma pilha temporária. Útil para trocar de branch rapidamente.
AVANÇADO
git stash pop
Restaura mudanças do stash
Aplica as mudanças mais recentes do stash e remove da pilha. Use git stash apply para manter no stash.
AVANÇADO
git rebase <branch>
Reaplica commits em nova base
Move commits para uma nova base, criando um histórico linear. Mais limpo que merge, mas reescreve histórico.
AVANÇADO
git reset --hard <commit>
Reseta para commit específico
⚠️ CUIDADO: Remove permanentemente commits e mudanças. Use --soft para preservar mudanças.
AVANÇADO
git cherry-pick <commit>
Aplica commit específico
Pega um commit de outra branch e aplica na branch atual. Útil para aplicar correções específicas.
AVANÇADO
git revert <commit>
Reverte um commit
Cria um novo commit que desfaz as mudanças de um commit anterior. Método seguro para desfazer mudanças.
🎯 Workflow Recomendado:
  1. git status - Verificar estado atual
  2. git add . - Adicionar mudanças ao staging
  3. git commit -m "mensagem" - Fazer commit
  4. git push - Enviar para repositório remoto