2014-08-31 14 views
18

sto cercando di tirare le modifiche dal ramo remoto ma ottenere un errore che non ha sensoGit errore di tiro: Le modifiche locali alle seguenti file sarebbe stato sovrascritto da fusione:

quando faccio

git pull 

torno

error: Your local changes to the following files would be overwritten by merge: 
file/name/path 
some/more/filenamepath 
Please, commit your changes or stash them before you can merge. 
Aborting 

problema è che io non ho le modifiche che devono essere impegnati Quando faccio git status

# On branch master 
# Your branch and 'origin/master' have diverged, 
# and have 2 and 7 different commits each, respectively. 
# 
nothing to commit (working directory clean) 

there are no working changes 

Ho provato git reset --hard HEAD ma che non ha aiutato

tutte le idee?

I file sono nel file system NFS, forse questo ha qualcosa a che fare con. Questo è su OSX

Grazie


UPDATE: Questo problema ha a che fare qualcosa con NFS, perché quando sono andato alla fonte originale e fatto git pull da lì tutto ha funzionato bene, il che è stato risolto per questo esempio, ma ancora non sono sicuro del motivo per cui causa problemi con NFS.

+1

Hai provato a lasciare fuori HEAD nel tuo ripristino git --hard? Provalo prima. –

+0

@DylanCorriveau 'HEAD' è in realtà l'impostazione predefinita. – musiKk

+0

Potete clonare il repository sul disco rigido del sistema e fare il vostro lavoro lì? Quindi è possibile ignorare completamente il problema NFS .... – Yawar

risposta

5

Si dovrebbe:

  • fetch (aggiornamento di tutti i rami di monitoraggio a distanza, come origine/master)
  • rebase la filiale corrente sulla parte superiore di origine/master, al fine di riprodurre le 2 commit sulla parte superiore del 7 commit aggiornati che hai appena recuperato.

Quello sarebbe:

git checkout master 
git fetch 
git rebase origin/master 

Una versione più breve del set di comandi sarebbe il seguente comando singolo sopra:

git pull --rebase 
+1

Che non ha funzionato, ottengo '' 'Impossibile rebase: hai modifiche non previste. Si prega di commetterli o riporli. '' Ma non ci sono in realtà cambiamenti non modificati – darkgaro

+0

Prima di tutto, è necessario unire il file precedente, ad esempio se il file README.md deve essere unificato, è necessario eseguire il seguente comando: -git fondono README.md -git aggiungere README.md Dopo la fine del processo si dovrebbe eseguire -git commit -m "Aggiungi commento" spinta -git –

18

Ho avuto questo stesso problema, e il recupero/la risposta a rebase non ha funzionato per me. Ecco come ho risolto:

Ho eliminato il file che stava causando il problema, l'ho verificato e poi tirato con successo.

  1. di file rm/nome/percorso/alcuni/più/filenamepath
  2. di file git checkout/nome/percorso/alcuni/più/filenamepath
  3. git pull
+0

perché u rimuovere il file ?? se ti basta il checkout dal file ti permetterà di tirare – Affan

0

avuto lo stesso problema. Risolto ri-clonando il repository. Ma ora penso che il motivo fossero le terminazioni di linea in questi file. Ho giocato con loro prima.

Suppongo che la differenza di fine riga non contrassegni i file come modificati, ma potrebbe portare a questo messaggio.Quando i tuoi file sono rm e li checkout, le terminazioni di riga devono essere impostate su "buono stato" e pull va bene.

6
  1. Eliminare i file problematici.
  2. Run git reset --hard.

Questo dovrebbe risolvere il problema.

+0

Grazie! Ran in questo problema oggi e questo ha risolto il problema. Totalmente strano! –

Problemi correlati