git pull falla con "file de tree de trabajo sin seguimiento 'blah' se sobrescribirá mediante fusión", pero el tree está limpio

Revisé algunos cambios en mi repository local que deseo enviar, pero cuando hago un jalón, obtengo:

paul$ git pull 

error: la documentation del file de tree de trabajo sin seguimiento / Android / SwiftKey / buttons.xcf se sobrescribirá mediante fusión. Aborto

Mi tree de trabajo no contiene files 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) 

Las confirmaciones que hice no tocan el file del 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 hecho.

No son los commits que has hecho los que tocan el file, sino los commits que estás realizando. Inspecciona la twig remota que estás rastreando para ver lo que sucedió. Por ejemplo, git log master..origin/master mostrará todas las confirmaciones que han sucedido en el 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 file.

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

Necesitarás usar git pull --rebase para reubicar tus confirmaciones recientes sobre las de origin . Una vez que el git status dice que el maestro está adelantado en lugar de desviarse del origen / maestro, puede presionar.