2015-03-06 30 views
11

Ho salvato il mio repository in dropbox e un giorno (vedi la data sotto) è impazzito. Ora ho questi avviso ogni volta che provo a completare automaticamente un nome ramorimozione di nomi danneggiati in Git (copia in conflitto in dropbox)

warning: ignoring ref with broken name refs/heads/develop (MacBook Pro's conflicted copy 2015-02-28) 
warning: ignoring ref with broken name refs/heads/master (MacBook Pro's conflicted copy 2015-02-28) 
warning: ignoring ref with broken name refs/remotes/origin/develop (MacBook Pro's conflicted copy 2015-02-28) 
warning: ignoring ref with broken name refs/remotes/origin/master (MacBook Pro's conflicted copy 2015-02-28) 
warning: ignoring ref with broken name refs/remotes/production/master (MacBook Pro's conflicted copy 2015-02-28) 

Come faccio a risolvere questi avvertimento?

Nota: per tutte le persone che fanno il doppio scatto - questo non è un dup! Voglio solo rimuovere i riferimenti sopra per smettere di ricevere l'avviso. Il repository git è intatto

+0

possibile duplicato del [repository Git rotto dopo del computer è morto] (http://stackoverflow.com/questions/15317072/git-repository-broken-after-computer-died) – cmbuckley

+0

questo non è un duplicato! Non ho il problema in questa domanda. il repository git è intatto. Voglio solo rimuovere quei riferimenti –

+3

Come commento generale: cose come questa mostrano perché Dropbox non è una soluzione perfetta per ospitare un repo Git. Dai un'occhiata a qualcosa come BitBucket, che offre repository Git privati ​​gratuiti. Questo potrebbe adattarsi meglio ed eviterà problemi come sopra. – nwinkler

risposta

21

quando Dropbox trova file in conflitto, li rinomina in filename (conflicted copy) (come forse saprai). Quindi devi solo rinominare nuovamente quei file:

Questo potrebbe essere un esercizio piuttosto delicato dato che ti troverai nella cartella git; meglio prendere prima una copia dell'intero repository. Ora vai in questa directory

cd <repo>/.git/refs/heads 

dove si trovano quei file rinominati male. Dovrai controllare quale mantenere (la copia normale o in conflitto) e rimuovere gli indesiderati, rinominando le copie in conflitto come necessarie. Dovrete fare lo stesso nelle altre directory:

  • /.git/refs/remotes

EDIT ognuno dei file che troverete solo contiene l'hash del impegno che stanno indicando. Quindi se vuoi controllare quale mantenere; controlla quale dei commit esiste realmente e dove vuoi che quei riferimenti puntino a.

+0

grazie, sembra funzionare senza problemi –

+1

Non si è reso conto che questi file sono stati aggiunti da Google Drive/software di sincronizzazione file. Dopo aver rimosso i file con [Conflict] nel nome, ero a posto. –

+0

Potrei baciarti. Grazie. – Andrew

1

ho potati i rami che non erano più sul mio telecomando eseguendo

git remote prune origin 

e che ha risolto il problema per me.

+0

Ho provato questo e ho ancora l'avviso – Pavlos

1

Ho ricevuto questo avviso dopo aver aggiornato la mia versione git (ubuntu 15.04-15.10) e avevo bisogno solo di rimuovere le directory in .git/refs/remotes per vecchi telecomandi penzolanti che non avevo più configurato.