Cheatsheet Git: Comandos Essenciais para o Dia a Dia
Referência rápida e completa com os comandos Git mais usados no dia a dia, desde configuração inicial, branches e merge até stash, tags, SSH e boas práticas de versionamento.

Configuração Inicial
git --version
Verifica a versão do Git instalada.
git config --global user.name "Seu Nome"
Define o nome do usuário para todos os repositórios.
git config --global user.email "seu@email.com"
Define o e-mail do usuário.
git config --list
Lista todas as configurações ativas do Git.
Repositório
git init
Inicializa um novo repositório Git no diretório atual.
git clone https://github.com/user/repo.git
Clona um repositório remoto para a máquina local.
Status e Histórico
git status
Mostra o status dos arquivos (modificados, staged, untracked).
git log
Exibe o histórico completo de commits.
git log --oneline --graph --all
Histórico resumido e visual com grafo de branches.
git blame arquivo.ts
Mostra quem alterou cada linha de um arquivo.
git bisect start
git bisect bad
git bisect good <commit-hash>
Busca binária para encontrar o commit que introduziu um bug.
Adicionar Arquivos
git add arquivo.txt
Adiciona um arquivo específico ao staging.
git add .
Adiciona todos os arquivos modificados ao staging.
git add -p
Adiciona alterações de forma interativa (por hunks).
git restore arquivo.txt
Descarta alterações não adicionadas ao staging.
Commit
git commit -m "feat: adicionar autenticação JWT"
Cria um commit com mensagem descritiva.
git commit --amend -m "nova mensagem"
Edita o último commit (antes do push).
git commit --allow-empty -m "trigger deploy"
Cria um commit vazio, útil para disparar pipelines de CI/CD.
Branches
git branch
Lista todas as branches locais.
git branch -a
Lista branches locais e remotas.
git branch nova-branch
Cria uma nova branch.
git checkout nova-branch
Troca para a branch especificada.
git checkout -b feature/nova-funcionalidade
Cria e troca para uma nova branch em um único comando.
git switch main
Troca de branch usando a forma moderna.
git branch -d feature/concluida
Remove uma branch local já mergeada.
git push origin --delete feature/concluida
Remove uma branch do repositório remoto.
Merge e Rebase
git merge feature/login
Mescla uma branch na branch atual.
git rebase main
Reaplica os commits da branch atual sobre outra branch, reescrevendo o histórico.
git rebase -i HEAD~3
Rebase interativo para reorganizar, squash ou reword dos últimos 3 commits.
git add .
git rebase --continue
Resolve conflitos durante o rebase e continua o processo.
Repositório Remoto
git remote -v
Lista os repositórios remotos configurados.
git remote add origin https://github.com/user/repo.git
Adiciona um repositório remoto.
git push origin main
Envia commits locais para o repositório remoto.
git push -u origin main
Envia e define o upstream (tracking) da branch.
git pull
Busca e mescla as alterações do remoto na branch local.
git pull --rebase
Busca alterações e reaplica os commits locais sobre elas, evitando merge commits desnecessários.
git fetch
Busca alterações do remoto sem mesclar automaticamente.
Stash
git stash
Guarda alterações temporariamente sem fazer commit.
git stash push -m "WIP: refatoração do service"
Guarda alterações com uma mensagem descritiva.
git stash list
Lista todos os stashes salvos.
git stash pop
Aplica o último stash e o remove da lista.
git stash apply stash@{0}
Aplica um stash específico sem removê-lo da lista.
Desfazer Alterações
git reset --soft HEAD~1
Desfaz o último commit mantendo os arquivos no staging.
git reset HEAD~1
Desfaz o último commit e o staging, mantendo as alterações nos arquivos.
git reset --hard HEAD~1
Remove o último commit e todas as alterações. Cuidado: essa ação é irreversível.
git revert <commit-hash>
Cria um novo commit que reverte as alterações de um commit específico, preservando o histórico.
Tags
git tag
Lista todas as tags do repositório.
git tag v1.0.0
Cria uma tag leve na HEAD atual.
git tag -a v1.0.0 -m "Release versão 1.0.0"
Cria uma tag anotada com mensagem.
git push origin v1.0.0
Envia uma tag específica para o repositório remoto.
git push origin --tags
Envia todas as tags locais para o remoto.
SSH (GitHub)
ssh-keygen -t ed25519 -C "email@exemplo.com"
Gera um par de chaves SSH usando o algoritmo Ed25519.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Inicia o agente SSH e adiciona a chave privada.
ssh -T git@github.com
Testa a conexão SSH com o GitHub.
Boas Práticas
- Faça commits pequenos e descritivos seguindo Conventional Commits (
feat:,fix:,chore:,refactor:) - Use branches para cada feature ou correção
- Evite
--forceem branches compartilhadas - Prefira
git pull --rebasepara manter o histórico linear - Versione o
.gitignoredesde o início do projeto - Revise alterações com
git diffantes de commitar - Use tags para marcar releases e versões estáveis



