Pular para o conteúdo principal
DevTools by Decussi
  • Ferramentas
  • Dados
  • Segurança
  • Rede
  • Texto
  • Data
  • Web
  • Dev
  • SEO
  • Brasil
Ferramentas
DevTools

Ferramentas para desenvolvedores, em português. Sem cadastro e sem instalação.

Criado e mantido por Decussi

Ferramentas

  • Todas as ferramentas
  • Dados
  • Segurança
  • Rede
  • Texto
  • Data
  • Web
  • Dev
  • SEO
  • Brasil

Referência

  • Consulta rápida
  • Guias
  • Códigos HTTP
  • Cron
  • Checagens de SEO

Desenvolvedores

  • API e devs
  • llms.txt
  • ai.txt
  • Sitemap

Newsletter

Receba novidades e novas ferramentas no seu email.

Sugira uma ferramenta

Tem uma ideia? Envie sua sugestão.

  1. Início
  2. /Consulta rápida
  3. /Comandos Git

Comandos Git

Os comandos do dia a dia, e principalmente os de emergência — desfazer, recuperar e reescrever — que são justamente os que ninguém decora.

36 itens em 6 seções

Dia a diaBranchesDesfazerRecuperar o que sumiuConflitos e integraçãoInvestigar

Dia a dia

git status -sb
Estado do repositório em formato curto, com a branch e o rastreamento
git add -p
Escolhe trecho por trecho o que entra no commit
git commit -m "mensagem"
Cria o commit com o que está no stage
git commit --amend --no-edit
Acrescenta o stage ao último commit sem mudar a mensagem
git log --oneline --graph --all
Histórico compacto com o desenho das ramificações
git diff --staged
Mostra o que já está no stage, e não o que falta adicionar

Branches

git switch -c nova-branch
Cria e entra numa branch nova (substitui o antigo checkout -b)
git switch -
Volta para a branch anterior
git branch -vv
Lista as branches com o último commit e o remoto rastreado
git branch -d antiga
Apaga a branch já mesclada; -D força mesmo sem merge
git push -u origin minha-branch
Publica a branch e passa a rastreá-la
git fetch --prune
Atualiza as referências e remove as branches remotas que já não existem

Desfazer

git restore arquivo.txt
Descarta as alterações não commitadas do arquivo
git restore --staged arquivo.txt
Tira o arquivo do stage sem perder a alteração
git reset --soft HEAD~1
Desfaz o último commit e mantém tudo no stage
git reset --mixed HEAD~1
Desfaz o último commit e mantém as alterações fora do stage
git reset --hard HEAD~1
Desfaz o último commit e apaga as alterações — não tem volta pelo reset
git revert abc1234
Cria um commit que desfaz outro; é o certo em branch compartilhada

Recuperar o que sumiu

git reflog
Histórico de tudo que HEAD apontou; é aqui que mora o commit que você acha que perdeu
git reset --hard abc1234
Volta para um commit encontrado no reflog
git stash
Guarda as alterações e limpa a árvore de trabalho
git stash pop
Traz de volta o último stash e o remove da pilha
git stash list
Lista o que está guardado
git fsck --lost-found
Procura objetos órfãos quando nem o reflog ajuda

Conflitos e integração

git merge --no-ff outra-branch
Mescla criando um commit de merge, preservando o histórico da branch
git rebase main
Reaplica seus commits em cima da main; nunca faça isso em branch já publicada
git rebase --continue
Segue o rebase depois de resolver um conflito
git rebase --abort
Cancela o rebase e volta ao estado anterior
git checkout --ours arquivo
Em conflito, fica com a versão da branch atual
git checkout --theirs arquivo
Em conflito, fica com a versão que está chegando

Investigar

git blame -L 10,20 arquivo
Quem alterou por último cada linha do intervalo
git log -S "texto"
Encontra os commits que adicionaram ou removeram aquele texto
git log --follow arquivo
Histórico do arquivo mesmo depois de renomeações
git bisect start
Inicia a busca binária pelo commit que introduziu um bug
git show abc1234
Mostra o conteúdo completo de um commit
git diff main...minha-branch
Diferença desde o ponto em que as duas divergiram

Perguntas frequentes

Qual a diferença entre reset e revert?
O reset move o ponteiro da branch e reescreve o histórico; o revert cria um commit novo que desfaz o anterior. Em branch compartilhada, use revert — o reset obriga todo mundo a corrigir o histórico local.
Apaguei um commit com reset --hard. Perdi mesmo?
Quase certamente não. Rode git reflog: ele lista tudo que HEAD apontou nos últimos dias, inclusive o commit descartado. Basta um git reset --hard para o identificador que aparecer ali.
Quando usar rebase em vez de merge?
Rebase para manter linear o histórico da sua branch local antes de abrir o pull request. Merge quando a branch já foi publicada — reescrever commits que outras pessoas já baixaram cria divergência para todo o time.

Outras consultas rápidas

  • Comandos Docker
  • Sintaxe de regex
  • Tabela chmod
  • Comandos curl
  • Comandos SQL
  • Comandos Linux
  • Sintaxe Markdown