A resposta acima não está correta - git revert <ID>
não define seu repositório para esse commit - git revert <ID>
cria um novo commit que desfaz as alterações introduzidas pelo commit <ID>
. É mais ou menos uma maneira de 'desfazer' uma confirmação e salvá-la no seu histórico como uma nova confirmação.
Se você deseja definir sua ramificação para o estado de uma confirmação específica (conforme implícita no OP), você pode usar 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 inalterados como se você tivesse feito as edições, mas ainda não os cometeu. Com a opção --hard, ele substitui o conteúdo do seu diretório de trabalho pelo que estava ativo <commit>
.
Uma nota de aviso que git reset
alterará o histórico - se eu fiz várias confirmações e reconfigurar para a primeira confirmação, as confirmações subsequentes não estarão mais no histórico de confirmação. Isso pode causar algumas sérias dores de cabeça se qualquer uma dessas confirmações perdidas tiver sido enviada para um repositório público. Certifique-se de usá-lo apenas para se livrar de confirmações que não foram enviadas para outro repositório!