2010-07-02 16 views
32

He comprobado algunos cambios en mi repositorio local que quiero enviar, pero cuando hago un git pull , me sale:git pull falla con "árbol de trabajo sin seguimiento archivo 'blah' se sobrescribirá mediante fusión", pero el árbol está limpio

paul$ git pull 

error: Untracked working tree file 'documentation/Android/SwiftKey/buttons.xcf' would be overwritten by merge. Aborting

Mi árbol de trabajo no contiene archivos sin seguimiento:

paul$ git status 
# On branch master 
# Your branch and 'origin/master' have diverged, 
# and have 2 and 26 different commit(s) each, respectively. 
# 
nothing to commit (working directory clean) 

el cometa que he hecho no toque el archivo que se queja.

He leído las respuestas que sugieren que hago un git reset HEAD --hard, pero no estoy seguro de qué efecto tendrá en las confirmaciones que he realizado.

Respuesta

26

No son las confirmaciones que ha realizado las que tocan el archivo, sino las confirmaciones que está realizando. Inspecciona la rama remota que estás rastreando para ver lo que sucedió. Por ejemplo, git log master..origin/master mostrará todas las confirmaciones que ocurrieron en origen/maestro desde la última vez que pulsó. De acuerdo con su resultado anterior, hay 26 de estos. El uso de la opción --name-status mostrará qué cometido agregó el archivo.

Tendrá que cambiar el nombre del archivo ofensivo, hacer el pull y luego moverlo hacia atrás (sobrescribiendo la copia del repositorio). git diff filename le dirá cómo su copia difiere de la que alguien más se ha comprometido a dominar. A continuación, puede confirmar las diferencias o tirarlas con git checkout filename.

Deberá usar git pull --rebase para volver a establecer sus confirmaciones recientes encima de las que están en origin. Una vez que git status dice que el maestro es adelante en lugar de divergió del origen/principal, puede presionar.

+6

Gracias Neil - justo antes de recibir su respuesta, me las arreglé para resolver que el problema era que el directorio "Swiftkey" había sido renombrado como "SwiftKey" por otro usuario. Debido a que el sistema de archivos de OSX no distingue entre mayúsculas y minúsculas, eso es lo que estaba causando mi problema :-( –

+3

Para el registro, superé el problema eliminando esa parte de mi árbol local (seguro, porque ninguno de mis cambios lo tocó), y luego git pull seguido de pago - en el árbol que eliminé previamente. Eugh. –

+1

La insensibilidad de mayúsculas/minúsculas puede ser la fuente de muchos problemas. He tenido el mismo problema con svn y puede ser difícil detectar lo que está pasando Intenté usar un volumen raíz sensible a mayúsculas y minúsculas en mi Mac al mismo tiempo, pero se rompieron muchas aplicaciones. Adobe CS, en particular, se rehúsa a instalar en un volumen sensible a mayúsculas y la compañía se niega a corregir sus aplicaciones. –

Cuestiones relacionadas