image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Otávio Guedes
Otávio Guedes29/09/2025 10:32
Compartilhe

Git Cheat Sheet - Guia Completo de Comandos

  • #GitHub
  • #Git

O Git é o sistema de controle de versão mais utilizado no mundo, essencial para desenvolvedores que trabalham em projetos individuais ou em equipe. Ele permite rastrear mudanças no código, colaborar com outros desenvolvedores e manter um histórico completo do projeto.

Este cheat sheet foi criado para ser sua referência rápida, reunindo desde comandos básicos até operações avançadas. Seja você um iniciante dando seus primeiros passos ou um desenvolvedor experiente que precisa relembrar um comando específico, aqui você encontrará o que precisa.

Como usar este guia:

  • Utilize o índice de seções para navegar rapidamente
  • Os exemplos incluem a sintaxe exata de cada comando
  • Comandos marcados com "CUIDADO!" podem causar perda de dados se usados incorretamente
  • Consulte as dicas ao final para boas práticas

Agora, vamos aos comandos!

Configuração Inicial:

Configurar Identidade

git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

Verificar Configurações

git config --list
git config user.name
git config user.email

Configurações Úteis

git config --global core.editor "code"  # Define editor padrão
git config --global init.defaultBranch main  # Define branch padrão
git config --global color.ui auto  # Habilita cores

Criando Repositórios

git init  # Inicializa novo repositório
git init nome-do-projeto  # Cria diretório e inicializa
git clone <url>  # Clona repositório remoto
git clone <url> nome-pasta  # Clona em pasta específica

Trabalhando com Arquivos:

Verificar Status

git status  # Status completo
git status -s  # Status resumido
git status -sb  # Status com branch

Adicionar Arquivos

git add arquivo.txt  # Adiciona arquivo específico
git add .  # Adiciona todos os arquivos
git add *.js  # Adiciona por extensão
git add pasta/  # Adiciona pasta inteira
git add -A  # Adiciona tudo (inclusive exclusões)
git add -p  # Adiciona interativamente

Remover Arquivos

git rm arquivo.txt  # Remove arquivo
git rm -r pasta/  # Remove pasta
git rm --cached arquivo.txt  # Remove do stage, mantém no disco
git rm -f arquivo.txt  # Força remoção

Mover/Renomear Arquivos

git mv arquivo-antigo.txt arquivo-novo.txt

Commits:

Criar Commits

git commit -m "Mensagem do commit"
git commit -am "Mensagem"  # Add + commit (apenas arquivos rastreados)
git commit --amend  # Modifica último commit
git commit --amend -m "Nova mensagem"  # Altera mensagem do último commit
git commit --amend --no-edit  # Adiciona ao último commit sem alterar mensagem

Visualizar Commits

git log  # Histórico completo
git log --oneline  # Uma linha por commit
git log --graph  # Visualização gráfica
git log --all --graph --decorate --oneline  # Log visual completo
git log -n 5  # Últimos 5 commits
git log --author="Nome"  # Commits de autor específico
git log --since="2 weeks ago"  # Commits recentes
git log --until="2024-01-01"  # Commits até data
git log --grep="palavra"  # Busca em mensagens
git log arquivo.txt  # Histórico de arquivo específico
git log -p  # Mostra diferenças em cada commit
git log --stat  # Estatísticas de mudanças

Mostrar Commits

git show  # Mostra último commit
git show <hash>  # Mostra commit específico
git show HEAD~2  # Mostra commit 2 posições antes

Branches (Ramificações):

Criar e Listar

git branch  # Lista branches locais
git branch -a  # Lista todas as branches (local + remoto)
git branch -r  # Lista branches remotas
git branch nome-branch  # Cria nova branch
git branch -d nome-branch  # Deleta branch (seguro)
git branch -D nome-branch  # Força deleção de branch
git branch -m novo-nome  # Renomeia branch atual
git branch -m antigo novo  # Renomeia branch específica

Trocar de Branch

git checkout nome-branch  # Troca para branch existente
git checkout -b nova-branch  # Cria e troca para nova branch
git checkout -b branch origin/branch  # Cria branch local a partir de remota
git switch nome-branch  # Troca de branch (comando moderno)
git switch -c nova-branch  # Cria e troca (comando moderno)

Merge (Mesclar)

git merge nome-branch  # Mescla branch na atual
git merge --no-ff nome-branch  # Merge sem fast-forward
git merge --squash nome-branch  # Mescla com squash
git merge --abort  # Cancela merge em conflito

Rebase

git rebase nome-branch  # Reaplica commits sobre outra branch
git rebase -i HEAD~3  # Rebase interativo dos últimos 3 commits
git rebase --continue  # Continua rebase após resolver conflitos
git rebase --abort  # Cancela rebase
git rebase --skip  # Pula commit no rebase

Repositórios Remotos:

Gerenciar Remotos

git remote  # Lista remotos
git remote -v  # Lista com URLs
git remote add origin <url>  # Adiciona remoto
git remote remove origin  # Remove remoto
git remote rename antigo novo  # Renomeia remoto
git remote show origin  # Detalhes do remoto
git remote set-url origin <nova-url>  # Altera URL

Enviar (Push)

git push origin main  # Envia para branch remota
git push  # Envia para branch rastreada
git push -u origin main  # Envia e configura upstream
git push --all  # Envia todas as branches
git push --tags  # Envia todas as tags
git push origin --delete nome-branch  # Remove branch remota
git push -f  # Força push (CUIDADO!)

Buscar (Fetch)

git fetch  # Busca mudanças do remoto
git fetch origin  # Busca de remoto específico
git fetch --all  # Busca de todos os remotos
git fetch --prune  # Remove referências de branches deletadas

Puxar (Pull)

git pull  # Fetch + merge
git pull origin main  # Pull de branch específica
git pull --rebase  # Pull com rebase ao invés de merge
git pull --all  # Pull de todas as branches

Desfazendo Mudanças:

Reverter Arquivos

git checkout -- arquivo.txt  # Descarta mudanças não commitadas
git checkout .  # Descarta todas as mudanças
git restore arquivo.txt  # Restaura arquivo (comando moderno)
git restore --staged arquivo.txt  # Remove do stage

Reset

git reset arquivo.txt  # Remove arquivo do stage
git reset  # Remove todos do stage
git reset --soft HEAD~1  # Desfaz commit, mantém mudanças no stage
git reset --mixed HEAD~1  # Desfaz commit, mudanças unstaged (padrão)
git reset --hard HEAD~1  # Desfaz commit e descarta mudanças (CUIDADO!)
git reset --hard origin/main  # Reseta para estado remoto

Revert

git revert <hash>  # Cria commit que desfaz outro commit
git revert HEAD  # Reverte último commit
git revert --no-commit HEAD~3..HEAD  # Reverte múltiplos commits

Clean

git clean -n  # Mostra arquivos não rastreados que serão removidos
git clean -f  # Remove arquivos não rastreados
git clean -fd  # Remove arquivos e diretórios não rastreados
git clean -fx  # Remove incluindo arquivos ignorados

Stash (Armazenar Temporariamente)

git stash  # Salva mudanças temporariamente
git stash save "descrição"  # Stash com descrição
git stash list  # Lista stashes
git stash show  # Mostra último stash
git stash show -p  # Mostra diferenças do stash
git stash apply  # Aplica último stash (mantém na lista)
git stash apply stash@{2}  # Aplica stash específico
git stash pop  # Aplica e remove último stash
git stash drop  # Remove último stash
git stash drop stash@{1}  # Remove stash específico
git stash clear  # Remove todos os stashes
git stash branch nome-branch  # Cria branch a partir de stash

Tags

git tag  # Lista tags
git tag v1.0.0  # Cria tag leve
git tag -a v1.0.0 -m "Versão 1.0.0"  # Cria tag anotada
git tag -a v1.0.0 <hash>  # Tag em commit específico
git show v1.0.0  # Mostra detalhes da tag
git push origin v1.0.0  # Envia tag específica
git push origin --tags  # Envia todas as tags
git tag -d v1.0.0  # Remove tag local
git push origin --delete v1.0.0  # Remove tag remota
git checkout v1.0.0  # Vai para tag específica

Diferenças (Diff)

git diff  # Mudanças não staged
git diff --staged  # Mudanças staged
git diff HEAD  # Todas as mudanças
git diff branch1 branch2  # Diferença entre branches
git diff <hash1> <hash2>  # Diferença entre commits
git diff --stat  # Estatísticas de mudanças
git diff arquivo.txt  # Diferenças em arquivo específico

Blame e Log Avançado

git blame arquivo.txt  # Mostra quem modificou cada linha
git blame -L 10,20 arquivo.txt  # Blame de linhas específicas
git log --follow arquivo.txt  # Histórico incluindo renomeações
git log -S "texto"  # Busca por conteúdo nos commits
git shortlog  # Log agrupado por autor
git shortlog -sn  # Contagem de commits por autor

Cherry Pick

git cherry-pick <hash>  # Aplica commit específico na branch atual
git cherry-pick <hash1> <hash2>  # Aplica múltiplos commits
git cherry-pick --continue  # Continua após resolver conflitos
git cherry-pick --abort  # Cancela cherry-pick

Bisect (Busca Binária)

git bisect start  # Inicia busca
git bisect bad  # Marca commit atual como ruim
git bisect good <hash>  # Marca commit como bom
git bisect reset  # Finaliza busca

Submódulos

git submodule add <url> pasta/  # Adiciona submódulo
git submodule init  # Inicializa submódulos
git submodule update  # Atualiza submódulos
git submodule update --init --recursive  # Inicializa e atualiza recursivamente
git clone --recurse-submodules <url>  # Clone com submódulos

Worktree

git worktree add ../path branch-name  # Cria worktree
git worktree list  # Lista worktrees
git worktree remove ../path  # Remove worktree
git worktree prune  # Limpa worktrees inválidos

Reflog

git reflog  # Histórico de referências
git reflog show HEAD  # Reflog da HEAD
git reset --hard HEAD@{2}  # Restaura para estado anterior

Aliases Úteis

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual 'log --all --graph --decorate --oneline'

.gitignore

Crie um arquivo .gitignore na raiz do projeto:

# Arquivos do sistema
.DS_Store
Thumbs.db

# Dependências
node_modules/
vendor/

# Ambiente
.env
.env.local

# Build
dist/
build/
*.log

# IDEs
.vscode/
.idea/
*.swp

Comandos de Ajuda

git help  # Ajuda geral
git help comando  # Ajuda de comando específico
git comando --help  # Ajuda detalhada
git comando -h  # Ajuda resumida

Dicas Importantes:

  1. Sempre faça pull antes de push para evitar conflitos
  2. Use branches para novas funcionalidades
  3. Commits pequenos e frequentes são melhores que commits grandes
  4. Escreva mensagens claras nos commits
  5. Nunca use --force em branches compartilhadas
  6. Revise mudanças antes de commitar com git diff
  7. Use .gitignore para não versionar arquivos desnecessários

Nota: Este cheat sheet cobre os comandos mais utilizados do Git. Para situações específicas, consulte a documentação oficial em git-scm.com

Compartilhe
Recomendados para você
Microsoft 50 Anos - GitHub Copilot
Microsoft AI for Tech - GitHub Copilot
PcD Tech Bradesco - Java & QA Developer
Comentários (2)
DIO Community
DIO Community - 29/09/2025 14:51

Excelente, Otávio! Que guia incrível e super completo sobre Git Cheat Sheet - Guia Completo de Comandos! É fascinante ver como você aborda o Git não apenas como um sistema de controle de versão, mas como a espinha dorsal para desenvolvedores que trabalham em projetos individuais ou em equipe.

Você demonstrou que o Git permite rastrear mudanças, colaborar com outros desenvolvedores e manter um histórico completo do projeto. Sua análise dos comandos de Configuração Inicial, Commits, Branches, Merge e Rebase é um guia fundamental para qualquer profissional.

Thayso Guedes
Thayso Guedes - 29/09/2025 12:47

muito top esse seu mapeamento, cara! Eu tava mesmo querendo um conteúdo desses. Vou salvar para consultar e anotar no meu caderno