Como posso voltar ao commit do Git?


4

Comecei a usar o Git no Windows e tenho uma pequena pergunta. Quando digo git commitjunto com uma mensagem, percebo que o git confirma o arquivo. Mas onde exatamente ele armazena o arquivo confirmado?

Digamos que eu faça algumas alterações e queira voltar ao meu terceiro commit usando a GUI do Git. Como exatamente eu faço isso?


O ponto do Git é que você não precisa saber como o Git está armazenando os backups e o histórico. Git lida com tudo isso para você
Kolob Canyon

Além disso, essa pergunta deve ser migrada para o Stackoverflow
Kolob Canyon

Respostas:


6

O commit do Git apenas o salva no palco, que está localmente no seu computador. Use Push para atualizá-lo para um servidor remoto (como o github).

Use git revert <ID>para reverter para uma confirmação anterior. cada confirmação possui um código de identificação.

Veja aqui para mais detalhes sobre reverter


18

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 resetalterará 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!


depois de redefinir como faço para confirmarYour branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
Omar

desde que mudamos nosso código para commit mais antigo, para forçá-lo, devemos forçá-lo com este comando git push -f origin <branch_name>. Caso contrário, o git sempre solicitará que você puxe primeiro e depois empurre.
Gaurav Rajdeo

git push -f NUNCA é uma boa coisa a fazer!
MikeW 27/06
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.