A resposta acima não está correta - git revert <ID>
não define seu repositório para essa confirmação - git revert <ID>
cria uma nova confirmação que desfaz as alterações introduzidas por commit <ID>
. É mais ou menos uma maneira de "desfazer" um commit e salvar o desfazer em seu histórico como um novo commit.
Se você quiser definir sua ramificação para o estado de uma confirmação específica (conforme implícito no OP), use git reset <commit>
ou git reset --hard <commit>
. A primeira opção atualiza apenas o INDEX, deixando os arquivos em seu diretório de trabalho. inalterado como se você tivesse feito as edições, mas ainda não as tenha cometido. Com a opção --hard, ele substitui o conteúdo do seu diretório de trabalho pelo que estava em <commit>
.
Uma nota de aviso de que git reset
alterará o histórico - se eu tiver feito vários commits e depois redefinir para o primeiro commit, os commits subsequentes não estarão mais no histórico de commits. Isso pode causar algumas dores de cabeça graves se qualquer um desses commits perdidos for enviado para um repositório público. Certifique-se de usá-lo apenas para se livrar de commits que não foram enviados para outro repositório!