2011-09-11 9 views
14

La mia batteria è morta sul mio macbook quando si spinge il mio repository. Ora non posso correre git statusimpossibile correggere l'errore HEAD dell'oggetto errato con lo stato git

$ git status 
fatal: bad object HEAD 
fatal: git status --porcelain failed 

Ho provato alcuni suggerimenti Ive ha trovato per correggere gli errori oggetto cattivo.

$ git fsck --full 
dangling tree 65e856976b7aa7c73f15cd71defedb8a3d622a10 

Ho provato git prune e git prune-packed

posso ancora commettere, scorta, spinta, sembra essere solo colpisce git status

Andy idee?

Grazie

+0

Ho avuto esattamente lo stesso problema. Grazie per la soluzione! – Mauren

risposta

2

Se il .git/HEAD è corrotto o fa riferimento a un oggetto danneggiato, è possibile modificare manualmente o tramite git checkout.

+0

Ciao provato, non fa alcuna differenza. HEAD punta a refs/heads/master – Rob

+0

sebbene, refs/heads/master non esistano. – Rob

+0

Quindi è necessario eseguire il checkout di un ramo reale (e/o ripristinare 'refs/heads/master' se esiste). Nota però, che i ref sono di solito in ".git/packed-refs" ora. – wRAR

0

Provare a aggiungere tutti i file modificati con git add filepath/file.ext prima dello stato git.

28

Credo che si risolto questo problema già, ma ho avuto questo e potrebbe risolvere il problema semplicemente run

git pull 

Questo ha portato in una condizione di lavoro. Se i file sono intatti, è necessario eseguire il backup della directory git locale e quindi eseguire git pull. dopodiché dovresti tornare in attività.

Se ci sono file cancellati (non dovrebbe succedere) è possibile copiarli su un checkout funzionante e commetterli da lì.

+1

Correzione facile, ha funzionato bene pure. Grazie per il consiglio! –

+1

Questo ha funzionato per me, ma prima ho dovuto "git stash" le modifiche locali prima che mi permettesse di tirare. Grazie. –

2

Questo è successo a me quando ho accidentalmente aggiunto il mio cestino/cartella in un progetto Java Eclipse.

L'utilizzo di "git pull" non ha funzionato per me.

ho riparato da:

  1. chiusura Eclipse
  2. rm-rf bin
  3. git rm bin

Poi sono stato in grado di 'git commit' e continuare normalmente.

1

questo ha funzionato per me:

git fetch origin 
git reset --hard origin/master 
0

git checkout -f *branchname* ha lavorato per me.

Problemi correlati