2009-05-18 14 views
10

Di tanto in tanto, quando faccio la seguente ...Perché a volte vedo un "nome file" non aggiornato. Impossibile unire. " dopo un 'git reset --hard' e un 'git pull'?

git reset --hard 
HEAD is now at 0123abde comment is here
git pull 
Updating 0123abde..456789fa

ottengo l'errore ...

error: Entry 'filename' not uptodate. Cannot merge.

L'unica soluzione che ho trovato è quello di 'git azzerare --hard ', cancella i file incriminati, quindi esegui' git pull '. Non mi sembra giusto. Non dovrebbe un hard reset rimuovere qualsiasi e tutte le modifiche locali, permettendomi così di tirare le ultime senza problemi di unione? Sto usando git sbagliato? :)

Questo è su una macchina di CI quindi eventuali modifiche qui non sono volute. Sto usando git versione 1.6.1.9.g97c34 su Windows Vista.

risposta

10

L'idea generale dietro "Entry 'filename' not uptodate. Cannot merge." è:

Hai le modifiche ai file nella directory di lavoro che verranno sovrascritti, rimossi o altrimenti persi se il checkout e passare alla nuova filiale dovesse procedere.

E has been reported che questo messaggio potrebbe essere "spuria" al momento, (potenzialmente perché "git pull" did not refresh the index prima di tentare di unire), ma la correzione era in Git1.6.1.
Tuttavia, potrebbe ancora essere in mSysGit 1.6.1, quindi si vede lo stesso errore con una versione più recente di mSysGit? (come 1.6.3)

+0

Aggiornerò all'ultima mSysGit. Grazie per la risposta rapida e compiacente! –

+0

Volevo solo aggiungere che dopo aver aggiornato mSysGit su una versione più recente, questo specifico problema non si è più verificato. Quindi, in effetti, questa è stata la causa principale del mio problema. –

+0

@James: grazie per il feedback. – VonC

6

Stavo avendo lo stesso problema e ho rinominato il file che stava causando questo e ha fatto un tiro GIT. Ha tirato quel file mancante e risolto il problema.

+0

Questo ha funzionato! :-) –

+0

pazzo trucco, ma ha funzionato! – cleric

Problemi correlati