2013-06-26 13 views
8

Ci scusiamo per il titolo ambiguo. Se qualcuno riesce a trovare qualcosa di meglio, ti preghiamo di modificarlo per farcelo sapere.Correzione del repository git rotto. Nessuna revisione predefinita 'HEAD'

Recentemente, ho rimosso un repository git e controllato una nuova copia dal server. Sfortunatamente, quando ho fatto questo, avevo dimenticato che stavo usando git-new-workdir (pensavo di aver clonato il mio repo controllato due volte). Ora io non posso fare nulla nel mio "workdir":

$ git log 
fatal: bad default revision 'HEAD' 

e git status lascia il posto più cambiamenti di quanto dovrebbe. Qualcuno ha qualche idea su come posso risolvere questo problema?

Maggiori informazioni:

Esecuzione git fsck mi dà il seguente:

$ git fsck 
notice: HEAD points to an unborn branch (dipole_fix) 
missing blob d92f4a4f53c95c375146d9623910d8ec214aa02f 
missing blob 7d81095605082af3252a47b47d81e48d4a78a668 
missing blob f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792 
missing blob 79d3ad61db697ca7e89dbfd089a472dab0a7851b 
missing blob 2cf0e64cbc0a816d7dc1b26fef43c2eb7c4fb6ac 

Per quel che vale, io ho un ramo a distanza con il ramo dipole_fix su di esso. Dovrebbe essere (relativamente) aggiornato.

Aggiornamento 1 - Guardando il contenuto di .git nel workdir, sembra che io abbia alcuni collegamenti simbolici penzolanti.

lrwxrwxrwx 1 mgilson mgilson  39 2012-04-26 10:43 remotes -> /orig_repo/.git/remotes 
lrwxrwxrwx 1 mgilson mgilson  40 2012-04-26 10:43 rr-cache -> /orig_repo/.git/rr-cache 
lrwxrwxrwx 1 mgilson mgilson  35 2012-04-26 10:43 svn -> /orig_repo/.git/svn 

Update 2 - Naievly collega remotes a /orig_repo/refs/remotes sembra sbarazzarsi del problema "cattivo testa", ma ora un git status mi dà:

error: unable to find d92f4a4f53c95c375146d9623910d8ec214aa02f 
error: unable to find d92f4a4f53c95c375146d9623910d8ec214aa02f 
error: unable to find f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792 
error: unable to find f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792 
error: unable to find 79d3ad61db697ca7e89dbfd089a472dab0a7851b 
error: unable to find 79d3ad61db697ca7e89dbfd089a472dab0a7851b 

risposta

2

HEAD è facile da risolvere, basta git checkout qualcosa. (oppure puoi anche modificare .git/HEAD usando un editor, inserendo un ref: o un hash di successo). Oppure creare quel ramo dipolo_fix locale mancante. (è possibile visualizzare il file appena citato per vedere dove punta ...)

I collegamenti penzolanti: risolverli o eliminarli.

1

Controlla la tua filiale corrente:

git branch 

Se non ti mostra alcuna ramo come il ramo corrente quindi provare:

git reset --hard <some branch> 
Problemi correlati