Todos Desfazer Branches Remoto Stash Histórico Merge

Referência de Situações e Comandos Git

O Git é poderoso, mas sua sintaxe pode ser difícil de memorizar, especialmente para operações menos comuns. Esta ferramenta mapeia situações reais do Git para os comandos exatos, com explicações claras e avisos para operações que não podem ser desfeitas.

Operações Destrutivas vs Seguras no Git

Algumas operações do Git são seguras e reversíveis (commits, branches, stashes). Outras alteram permanentemente o histórico ou podem causar perda de dados se usadas sem cuidado:

  • Seguras: git stash, git branch, git checkout, git merge, git commit
  • Requerem cuidado: git reset --hard, git push --force, git rebase (reescreve o histórico), git clean -fd
  • Nunca faça em branches compartilhadas: force-push para main/master, rebase de commits públicos

Boas Práticas do Git

  • Sempre crie uma branch antes de fazer alterações — nunca trabalhe diretamente na main
  • Faça commits frequentes com mensagens claras e descritivas
  • Use git status e git diff antes de fazer commit
  • Prefira git revert em vez de git reset --hard em branches compartilhadas
  • Use git stash para salvar trabalho em andamento temporariamente

Perguntas Frequentes sobre Git

Como desfazer meu último commit no Git sem perder as alterações?

Use git reset --soft HEAD~1 para desfazer o último commit mantendo todas as alterações na área de staging. Use git reset HEAD~1 (modo mixed, o padrão) para desfazer o commit e remover as alterações do staging, mantendo-as no diretório de trabalho. Use git reset --hard HEAD~1 apenas se quiser descartar permanentemente todas as alterações — essa operação não pode ser desfeita.

Como deletar uma branch local e remota?

Delete uma branch local com git branch -d nome-da-branch (seguro, exige que a branch tenha sido mesclada) ou git branch -D nome-da-branch (forçar exclusão). Delete uma branch remota com git push origin --delete nome-da-branch. Para limpar referências remotas obsoletas, execute git fetch --prune ou git remote prune origin.

Qual é a diferença entre git merge e git rebase?

git merge cria um novo commit de merge unindo duas branches e preservando o histórico completo. git rebase reaplica seus commits sobre outra branch, produzindo um histórico linear mais limpo. Use merge para branches públicas e compartilhadas — é seguro e não destrutivo. Use rebase apenas em branches de feature locais antes de mesclar. Nunca faça rebase de commits já enviados para uma branch remota compartilhada — isso reescreve o histórico e causa problemas para outros colaboradores.

Como ver o que mudou no último commit?

Use git show para ver o diff do commit mais recente, incluindo mensagem, autor, data e patch completo. Para um resumo sem o diff completo, use git show --stat. Para comparar dois commits específicos, use git diff commit1 commit2. Para ver o histórico de um arquivo específico, use git log --follow -p -- nome-do-arquivo.

Ferramentas Relacionadas