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~1Isso 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.
Desafio
MédioA pasta contém doc.md. Inicialize o repositório e crie três commits em ordem:
- Adicione
doc.mdcom a mensagemAdd doc. - Adicione
secondao final dedoc.md, faça o commit com a mensagemSecond draft. - Adicione
thirdao final dedoc.md, faça o commit com a mensagemThird 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 commitsAviso: Nunca use --hard em commits que outros já tenham baixado (pulled).
Experimente você mesmo
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
4Inspecionando Alterações
Git DiffDiff das Alterações no StageGit ShowRecapitulação - Trabalho de Detetive2Primeiros Passos
Inicializar um RepositórioA Pasta .gitConfigurar sua IdentidadeGit StatusRecapitulação - Primeiro Repositório5Ignorando Arquivos
Por que ignorar arquivosPadrões do .gitignoreVerificar regras de ignoreRecapitulação - Repositório limpo3Rastreando Alterações
A Área de PreparaçãoGit AddGit CommitModificando um Arquivo RastreadoGit LogRecapitulação - Primeiros Commits6Projeto Site de Receitas
Visão Geral do ProjetoInicializar e Ignorar9Desfazendo Alterações
Descartar Alterações Não PreparadasRemover um Arquivo do StageCorrigir o Último CommitReverter um CommitResetar um BranchRecapitulação - Máquina do Tempo