2013-05-08 25 views
49

Sto cercando di fare un git tirare e ottenere il messaggio di errore:non può fare un git pull

error: The following untracked working tree files would be overwritten by merge: 
<myFileName> 
Please move or remove them before you can merge. 

Quindi, cerco di rimuovere il file utilizzando il git rm comando - Cache che genera l'errore:

fatal: pathspec 
<myFileName> 
did not match any files 

a questo punto mi sono bloccato. Non riesco a tirare fino a quando non rimuovo il file. Ma mi dice che non riesco a rimuovere il file.

Cosa posso fare per risolvere questo problema?

risposta

21

Hai file non tracciati nel modo di tirare. Non puoi rimuoverli con git rm --cached perché non sono tracciati. Non appaiono nell'indice. È necessario rimuoverli con plain old rm

4

Quel file non è ancora nel ramo attuale, quindi non è possibile rimuoverlo con git rm --cache. Basta usare rm.

+0

sarebbe preferibile spostare solo il file corrente, nel caso di modifiche ci sono stati in questo file. Quindi, utilizzare il semplice comando console mv per spostare il file o rm se si desidera cancellare quel file. – abletterer

2

Come indicato nel messaggio di errore originale, il file è non registrato. Ciò significa che lo git non ne sa nulla. Basta rimuoverlo dal filesystem usando rm. Se ti interessano i contenuti, spostali da qualche altra parte.

4

Sono d'accordo con altri utenti, il problema è che il file non viene tracciato da git. il comando git rm funziona sui file tracciati. rm rimuoverà il file dal tuo computer. In alternativa puoi aggiungere il file al tuo elenco di file ignorati o tipi di file se questo è conveniente. Puoi anche usare uno degli strumenti della GUI come git tartaruga per eliminare rapidamente tutti i file non tracciati.

102

Questa è un'opportunità per il comando 'git clean'. Se non ti interessa i file non tracciati ... git clean -n per vedere cosa verrà rimosso e git clean -f per andare avanti e rm file non tracciati.

Aggiungi -d per i comandi per operare anche su directory:

git clean -dn 
    git clean -df 
+1

Mi ha davvero aiutato. :) – Adnan

+2

ooooh uomo; è fantastico come il paradiso; love ur explanation – DJphy

+0

Questo è certamente utile, ma c'è un modo per far sì che git sovrascriva i file? Ho alcuni file che preferisco mantenere che non hanno nulla a che fare con la collisione, e non voglio andare manualmente e trovare i file incriminati per rimuoverli solo in modo che possano essere sostituiti. Sicuramente dovrebbe esserci un'opzione "forza di attrazione" o qualcosa del genere? –