2013-07-18 15 views
6

Mi stavo commettendo e poi la mia macchina Windows (.. :() si è bloccata e mi ha presentato il delizioso e famigerato Blue Screen of Death. Ho riavviato e sono tornato al lavoro, solo per scoprire che qualcosa di seriamente sbagliato con il mio repo git localeFatale: non un repository git - dopo BSoD

"Fatal: non un repository git"..

... Beh, che ha intensificato rapidamente

ho letto su questo tema (anche qui su StackOverflow), ma non ho ancora trovato una soluzione. Le cose che ho fatto includono:

  • git init (dice entro 0.1s: Reinitialized repository Git esistente)
  • git status (dà lo stesso errore fatale)
  • origine git push sviluppare (lo stesso errore fatale)

Il. la cartella git è ancora lì e sembra normale (anche se non rileverei direttamente eventuali anomalie).

Sembra che non ci sia nulla che possa fare sulla riga di comando per far rivivere il mio repository.

Ho trovato this reference, ma non ho idea di come "modificare HEAD in un ref/hash valido".

C'è qualcuno che sa dove andare da qui?

(So che questa domanda si presenta più volte su SO, ma nessuno di questi problemi ha la stessa origine e le loro soluzioni non funzionano. Assicurati che questa domanda sia davvero un duplicato se la contrassegni come tale.)

+3

Se le cose che stavi commettendo non sono troppo complesse, potresti semplicemente creare un nuovo clone del repository di origine, trasferire le modifiche locali a quel repository e continuare a lavorare da lì? –

+0

Questa è sicuramente un'opzione, anche se sono piuttosto curioso di sapere come risolvere questo "nel modo giusto". :) – Sherlock

+3

è possibile eliminare la cartella .git se si dispone di un clone da qualche parte (ad es. Su github), quindi riavviare la cartella locale e prelevare dall'altro repository. –

risposta

3

(io sono il richiedente.)

Purtroppo non ha avuto il tempo di risolvere questo problema in tempo. La pressione in questo progetto è iniziata e avevo bisogno di continuare. Ho deciso di fare un nuovo checkout completo. Tutto funziona di nuovo bene.

Lezione appresa: non ottenere mai una BSD durante l'operazione.

+1

La lezione non dovrebbe essere "effettuare backup più frequenti"? – CharlesB

+1

Forse potresti anche aver scritto qualcosa come "ref: refs/heads/master" in ".git/HEAD" per renderlo nuovamente rilevabile come repository Git. Sul mio sistema posso creare manualmente un repository Git creando solo 2 directory vuote ("objects" e "refs") e un piccolo file HEAD con il contenuto 'ref: refs/heads/something'. –

+0

@CharlesB no, non ho perso nulla. Ho spinto anche i minuti prima. – Sherlock

Problemi correlati