Menu
Coddy logo textTech

Resetar um Branch

Parte da seção Controle de Versão do Journey de Terminal da Coddy — lição 44 de 58.

git reset move o ponteiro da branch atual para um commit diferente. O uso mais comum é desfazer commits recentes que você ainda não compartilhou.

git reset --hard HEAD~1

Isso move o main um commit para trás e sobrescreve o diretório de trabalho para corresponder. O commit que você pulou não é mais acessível a partir da sua branch (o Git o mantém por um tempo caso você mude de ideia, mas espere que ele desapareça).

Existem três tipos de reset:

  • --soft: move o ponteiro da branch; mantém as alterações no stage
  • --mixed (padrão): move o ponteiro; remove do stage, mas mantém os arquivos de trabalho
  • --hard: move o ponteiro; descarta as alterações dos arquivos de trabalho também

--hard é a forma mais destrutiva. É ótimo para limpar erros locais, mas nunca o use em commits que outras pessoas já tenham feito o pull.

challenge icon

Desafio

Médio

A pasta contém doc.md. Inicialize o repositório e crie três commits em ordem:

  1. Adicione doc.md com a mensagem Add doc.
  2. Adicione second ao final de doc.md, faça o commit com a mensagem Second draft.
  3. Adicione third ao final de doc.md, faça o commit com a mensagem Third draft.

Faça um hard-reset do branch de volta para o primeiríssimo commit usando HEAD~2. Imprima o conteúdo de doc.md.

Folha de consulta

git reset move o ponteiro do branch atual para um commit diferente. Três variações:

  • --soft: move o ponteiro; mantém as alterações no stage (staged)
  • --mixed (padrão): move o ponteiro; remove do stage mas mantém os arquivos de trabalho
  • --hard: move o ponteiro; descarta as alterações nos arquivos de trabalho
git reset --hard HEAD~1  # desfazer o último commit, descartar alterações
git reset --hard HEAD~2  # desfazer os últimos 2 commits

Aviso: Nunca use --hard em commits que outros já tenham baixado (pulled).

Experimente você mesmo

Terminal
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Controle de Versão