Recupere um repositório git que foi substituído por uma versão mais antiga

2

Acabei de executar tar x por engano em vez de tar c e sobrescrevi meu repositório do git com alguns dias de versão mais antiga. Isso terá deixado todos os arquivos que eu criei, incluindo objetos em .git . Como posso recuperar o máximo possível?

    
por sourcejedi 10.11.2017 / 15:19

1 resposta

2

Faça uma cópia de toda a bagunça primeiro, apenas no caso.

git fsck mostrará objetos pendentes e confirmações. Encontre o mais novo commit pendente. Eu alimentei todos os hashes de commit para gitk , e isso mostra o mais "recente" no topo. Além de ter apenas alguns commits para lidar, eu só tinha uma única ramificação para recuperar - isso seria mais complexo se houvesse mais de uma cabeça.

Em seguida, git stash para guardar alterações atualmente não confirmadas para inspeção.

Eu consegui então git reset --hard para o hash de confirmação determinado acima.

git stash pop também se fundiu de maneira bastante clara. Eu acho que tenho praticamente tudo que eu queria de volta.

    
por 10.11.2017 / 15:19