Cheat Sheet do Git — Comandos Prontos para Copiar

Todos os comandos do Git que você usa no dia a dia — e os que precisa quando algo dá errado — explicados em uma linha. Digite uma vez os nomes do seu branch, remote e arquivos e copie comandos prontos para executar.

Atualizado em
Seus valoresTodos os exemplos abaixo são atualizados enquanto você digita

Configuração

7
git config --global user.name "Ada Lovelace"

Define o nome do autor registrado nos seus commits.

git config --global user.email "ada@example.com"

Define o e-mail registrado nos seus commits — use o mesmo vinculado à sua conta do GitHub ou GitLab.

git config --global init.defaultBranch main

Nomeia o primeiro branch de todo repositório novo.

git config --global pull.rebase true

Faz o git pull aplicar rebase nos seus commits locais em vez de criar commits de merge.

git config --global core.editor "code --wait"

Usa o VS Code para mensagens de commit e rebases interativos.

git config --global alias.lg "log --oneline --graph --decorate --all"

Adiciona o atalho git lg para um grafo compacto do histórico.

git config --list --show-origin

Mostra todas as configurações e o arquivo de onde cada uma vem — útil quando uma configuração “não funciona”.

Iniciar um repositório

6
git init

Transforma a pasta atual em um repositório Git.

git clone git@github.com:acme/app.git

Baixa um repositório com todo o histórico.

git clone --depth 1 git@github.com:acme/app.git

Clone raso com apenas o último commit — bem mais rápido para repositórios grandes e CI.

git remote add origin git@github.com:acme/app.git

Conecta um repositório local a um remote.

git remote -v

Lista os remotes e suas URLs de fetch e push.

git remote set-url origin git@github.com:acme/app.git

Altera a URL de um remote, por exemplo de HTTPS para SSH.

Stage e commit

12
git status -sb

Status resumido com o nome do branch e quantos commits você está à frente ou atrás do remote.

git add src/app.js

Adiciona um arquivo ao stage para o próximo commit.

git add -p

Revisa e adiciona as mudanças trecho por trecho — a melhor forma de fazer commits focados.

git add -A

Adiciona tudo ao stage: arquivos novos, modificados e excluídos.

git commit -m "Add login form"

Faz commit das mudanças no stage com uma mensagem.

git commit --amend --no-edit

Adiciona as mudanças no stage ao último commit e mantém a mensagem. Evite em commits que você já enviou.

git commit --amend -m "Better message"

Reescreve a mensagem do último commit.

git diff

Mostra as mudanças que ainda não foram adicionadas ao stage.

git diff --staged

Mostra exatamente o que o próximo commit vai conter.

git restore --staged src/app.js

Remove um arquivo do stage, mas mantém suas edições.

git restore src/app.js

destrutivo Descarta edições não commitadas de um arquivo e o devolve ao último commit.

git rm --cached src/app.js

Para de rastrear um arquivo (por exemplo, depois de adicioná-lo ao .gitignore), mantendo-o no disco.

Branches

9
git branch -a

Lista os branches locais e remotos.

git switch -c feature/login

Cria um novo branch e muda para ele.

git switch feature/login

Muda para um branch existente.

git switch -

Volta para o branch em que você estava antes.

git branch -m feature/login

Renomeia o branch atual.

git branch --merged main

Lista os branches já mesclados no branch principal — seguro para excluir.

git branch -d feature/login

Exclui um branch local que já foi mesclado.

git branch -D feature/login

destrutivo Força a exclusão de um branch local, mesmo que os commits dele não estejam mesclados em lugar nenhum.

git push origin --delete feature/login

destrutivo Exclui o branch no remote.

Sincronizar com o remote

6
git fetch --all --prune

Baixa novos commits e remove as referências de branches remotos que foram apagados.

git pull

Faz o fetch e integra o branch upstream ao atual.

git pull --rebase origin main

Reaplica seus commits locais sobre o main mais recente.

git push -u origin feature/login

Envia um novo branch e o define como upstream, para que os próximos git push não precisem de argumentos.

git push --force-with-lease

destrutivo Faz force push depois de um rebase, mas recusa se alguém tiver enviado algo nesse meio tempo. Bem mais seguro que --force.

git push origin --tags

Envia todas as tags locais.

Merge e rebase

10
git merge feature/login

Mescla outro branch no atual.

git merge --no-ff feature/login

Sempre cria um commit de merge, para que o branch continue visível no histórico.

git merge --squash feature/login

Coloca todas as mudanças de um branch em uma única alteração, pronta para um único commit.

git rebase main

Move os commits do seu branch para o topo do main mais recente, para um histórico linear.

git rebase -i HEAD~3

destrutivo Faz squash, reordena, reescreve ou remove interativamente os últimos N commits. Reescreve o histórico.

git rebase --continue

Continua um rebase depois de resolver os conflitos e adicionar os arquivos ao stage.

git rebase --abort

Cancela um rebase e volta ao ponto de partida.

git merge --abort

Cancela um merge que tem conflitos.

git checkout --theirs src/app.js

Durante um conflito, aceita a versão recebida de um arquivo (--ours mantém a sua).

git cherry-pick a1b2c3d

Aplica um único commit de outro branch no atual.

Desfazer e corrigir erros

9
git reset --soft HEAD~1

Desfaz o último commit, mas mantém as mudanças no stage.

git reset HEAD~1

Desfaz o último commit e mantém as mudanças como edições fora do stage.

git revert a1b2c3d

Cria um novo commit que desfaz um anterior — a forma segura de desfazer em branches compartilhados.

git reset --hard HEAD~1

destrutivo Exclui o último commit e todas as suas mudanças.

git reset --hard origin/main

destrutivo Deixa seu branch local exatamente igual ao remote, descartando commits e edições locais.

git reflog

Lista todos os commits para os quais o HEAD apontou recentemente — é assim que você encontra commits “perdidos” depois de um reset ou rebase malfeito.

git reset --hard HEAD@{1}

destrutivo Volta ao ponto em que o HEAD estava antes do último reset, rebase ou checkout.

git clean -nd

Mostra uma prévia dos arquivos e pastas não rastreados que o git clean excluiria.

git clean -fd

destrutivo Exclui arquivos e pastas não rastreados. Rode antes a prévia com -nd.

Stash

6
git stash push -m "wip: feature/login"

Guarda as mudanças não commitadas com um rótulo.

git stash -u

Stash incluindo arquivos não rastreados.

git stash list

Lista todos os stashes.

git stash pop

Reaplica o stash mais recente e o remove da lista.

git stash apply stash@{0}

Reaplica um stash, mas mantém ele na lista.

git stash drop stash@{0}

destrutivo Exclui um stash permanentemente.

Histórico e inspeção

9
git log --oneline --graph --all

Grafo compacto de todos os branches.

git log -p -- src/app.js

Histórico de um arquivo com o diff de cada mudança.

git log --author="Ada Lovelace" --since="2 weeks ago"

Commits de um autor em um intervalo de tempo.

git log -S "functionName"

Encontra commits que adicionaram ou removeram uma string — ótimo para descobrir “quando isso sumiu?”.

git blame -w src/app.js

Mostra quem alterou por último cada linha, ignorando mudanças que são só de espaços em branco.

git show a1b2c3d

Mostra a mensagem e o diff de um commit.

git diff main...feature/login

Mudanças feitas em um branch desde que ele se separou do main — o que um pull request mostraria.

git shortlog -sn

Número de commits por autor.

git bisect start
git bisect bad
git bisect good v1.2.0

Busca binária no histórico pelo commit que introduziu um bug. Marque cada passo como good ou bad e depois rode git bisect reset.

Tags e releases

4
git tag -a v1.2.0 -m "Release v1.2.0"

Cria uma tag anotada para uma release.

git push origin v1.2.0

Envia uma tag.

git describe --tags --abbrev=0

Mostra a tag mais recente.

git tag -d v1.2.0

destrutivo Exclui uma tag local.

Worktrees e extras

4
git worktree add ../feature/login feature/login

Faz checkout de outro branch em uma pasta separada — trabalhe em dois branches sem usar stash.

git worktree list

Lista os worktrees vinculados.

git submodule update --init --recursive

Baixa e faz checkout de todos os submódulos depois do clone.

git archive --format=zip -o release.zip HEAD

Exporta a árvore atual como ZIP, sem a pasta .git.

Seus dados nunca saem do seu computador. Todo o processamento acontece localmente no navegador.

Como usar: Cheat Sheet do Git

  1. Digite seus próprios valores (branch, remote, arquivo, commit) nos campos no topo — todos os exemplos da página são atualizados na hora.
  2. Pesquise ou pule para uma seção para encontrar o comando que você precisa.
  3. Clique em Copiar para copiar uma linha pronta para executar, ou em Copiar seção para um bloco comentado.
  4. Comandos marcados como destrutivos excluem ou sobrescrevem dados — leia a observação antes de executá-los.

O fluxo do Git em um minuto

A maioria do trabalho segue o mesmo ciclo: crie um branch com git switch -c, faça as alterações, revise com git diff, adicione ao stage com git add -p, faça o commit e envie com git push -u. Antes de abrir um pull request, atualize seu branch com git pull --rebase origin main para que ele seja aplicado sem conflitos.

Comandos que reescrevem o histórico

commit --amend, rebase, reset e push --force alteram commits existentes. Tudo bem em um branch que só você usa, mas em branches compartilhados isso obriga todo mundo a consertar suas cópias. Em branches compartilhados, desfaça com git revert e, se precisar mesmo fazer force push, use --force-with-lease.

Nada se perde por 30 dias

Mesmo depois de um reset --hard ou rebase malfeito, o trabalho commitado continua no repositório. git reflog lista por onde o HEAD passou, então você pode voltar a qualquer estado recente. As mudanças não commitadas são a exceção — faça commit ou stash com frequência.

Gere comandos para situações específicas com o Gerador de comandos Git e inicie novos repositórios com o gerador de .gitignore.

Também pesquisado como: cheat sheet git, comandos git, lista de comandos git, referência git, desfazer commit git, git rebase, git stash, comandos git com exemplos.

Ferramentas que combinam com: Cheat Sheet do Git

  • Cheat Sheet Docker — Os comandos do Docker e Docker Compose que você usa toda semana, explicados em uma linha.
  • Cheat Sheet de Comandos Linux — Os comandos Linux e bash que desenvolvedores usam em servidores e notebooks: arquivos, busca, permissões, processos, logs, rede e SSH.
  • Prompts de IA para Devs — Prompts testados na prática para as tarefas de código que você faz todo dia — debug, revisões, testes, refatoração, SQL, mensagens de commit e documentação.
  • Cheat Sheet PowerShell — Os comandos de PowerShell que devs e admins usam todo dia no Windows — e no PowerShell 7 no macOS e Linux — explicados em uma linha cada.

Perguntas frequentes

Qual é a diferença entre git fetch e git pull?
git fetch baixa novos commits do remote, mas não altera o seu branch. git pull faz o fetch e depois mescla (ou faz rebase) desses commits no branch atual.
Como desfazer o último commit?
Use git reset --soft HEAD~1 para desfazer o commit e manter as mudanças no stage. Se o commit já foi enviado para um branch compartilhado, use git revert <commit>, para que o histórico de ninguém seja reescrito.
Devo usar merge ou rebase?
Faça rebase do seu branch de funcionalidade sobre o main para manter o histórico linear e fácil de ler. Use merge (ou squash merge) ao trazer um trabalho finalizado para um branch compartilhado. Nunca faça rebase de commits que outras pessoas já puxaram.
Como recuperar um commit que perdi depois de um reset?
Rode git reflog, encontre a linha de antes do reset e execute git reset --hard HEAD@{n} ou crie um branch a partir do hash desse commit.
Posso instalar o Cheat Sheet do Git como um aplicativo da web e usá-lo offline?
Sim. O Cheat Sheet do Git é um aplicativo da web instalável (PWA) — instalado a partir do seu navegador, não baixado de uma loja de aplicativos. Clique em “Instalar aplicativo” na parte superior desta página no Chrome ou no Edge (Windows, macOS, Linux, ChromeOS) ou, no Android, use “Compartilhar” → “Adicionar à tela inicial” no iPhone e no iPad, ou “Arquivo” → “Adicionar ao Dock” no Safari 17+ em um Mac. Em seguida, ela se abre em uma janela própria com seu próprio ícone e, como é executada inteiramente no seu navegador, continua funcionando offline. O Firefox no desktop não permite a instalação de aplicativos da web. Como funciona a instalação.

Ferramentas relacionadas