2012-06-10 11 views
8

Durante il tentativo di estrazione da un ramo remoto viene visualizzato un messaggio di errore: Your local changes to the following files would be overwritten by merge: app/..../_shared.scss Git sta chiedendo di salvare il file o di memorizzare.Git chiede di eseguire il commit o lo stash, ma non c'è nulla da commettere

Il problema è: ho già eseguito git add . e git commit -am "trying to remove the error". Il problema persiste.

git status dice: "niente a commettere (directory di lavoro pulito)"

Qualcuno sa come sbarazzarsi di esso?

ANSWER: sposta il file incriminato in un'altra posizione. Quindi elimina il file incriminato dal tuo albero. Tirare di nuovo. quindi diff i cambiamenti dal file incriminato sul file appena estratto. hack, ma funziona.

Nota: ho trovato la risposta qui (Git asks me to commit or stash even those changes are commited), ma dal momento che nessuno ha votato nel pensiero originale, dovrei ripubblicare. È un hack, ma è il percorso più veloce per la risoluzione.

+0

Se hai trovato la soluzione da solo, dovresti postarla come risposta e accettarla - è utile ad altre persone che hanno lo stesso problema! –

+0

Lo terrò a mente. Non ho trovato la soluzione da solo, ho semplicemente trovato la soluzione su un'altra domanda. Tuttavia, sembra che il proprietario dell'altra domanda non volesse accettare questa soluzione (perfettamente valida) come quella corretta. Quindi, questo sembrava un buon modo per condividere. Farà quello che hai suggerito la volta successiva. Grazie! – Kirill

+0

Per quanto riguarda me, ho semplicemente rinominato il file e poi tirato di nuovo e ha funzionato. A Git non importava nemmeno il file attualmente mancante. – user276648

risposta

6

Se git status ha segnalato la directory di lavoro pulita, scommetto che nella directory di lavoro è presente un file ignorato che qualcun altro ha aggiunto al repository remoto. Potresti confermarlo con git diff --stat your-branch remote-name/remote-branch e git ls-files -i --exclude-standard.

La soluzione potrebbe essere quella di rimuovere il file dal file ignorare (in modo git status mostra come un file non monitorate), riporre con l'opzione --include-untracked, tirare le modifiche dal telecomando, e applicare la scorta di unire le modifiche indietro in.

+0

Non posso davvero confermare o negare, ora che ho usato la soluzione alternativa, ma sicuramente la proverò la prossima volta. A giudicare dal lavoro che stavamo facendo, sei assolutamente corretto. Grazie per il feedback! – Kirill

+0

Hai salvato la mia giornata! – Darshana

0

Ho provato a verificare la presenza di file ignorati, come ha affermato @ellotheth, ma non era questo il problema. L'unica soluzione per me era spostare il file interessato.

Tuttavia durante il commit ci sono stati molti "impossibilità di scollegare file, autorizzazione negata" e so che in remoto alcuni file sono stati spostati/aggiunti. Probabilmente ha qualcosa a che fare con l'installazione di Windows ... Git Checkout warning: unable to unlink files, permission denied

2

Oppure si potrebbe "forza di trazione" come tendo a chiamarlo.

Un avvertimento equo: questo frammento di codice distrugge tutte le modifiche locali.
(compresi i cambiamenti spinto commessi, ma non)

git fetch origin master 
git reset --hard FETCH_HEAD 
git clean -df 
0

Le soluzioni di cui sopra non ha funzionato per me. Ho inserito una riga vuota nel file problematico e ho utilizzato il comando git update-index --no-assume-unchanged /path/to/file. Quindi impegnato e spinto normalmente.

Problemi correlati