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


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

paul$ git pull 

error: la documentación del archivo de árbol de trabajo sin seguimiento / Android / SwiftKey / buttons.xcf 'se sobrescribirá mediante fusión. Aborto

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)

Las confirmaciones que hice no tocan el archivo del que se queja.

He leído respuestas que sugieren que hago una git reset HEAD --hard, pero no estoy seguro de qué efecto tendrá en los compromisos que he hecho?


32
2017-07-02 12:38


origen


Respuestas:


No son los commits que has hecho los que tocan el archivo, sino los commits que estás realizando. Inspecciona la rama remota que estás rastreando para ver lo que sucedió. Por ejemplo, git log master..origin/master mostrará todos los commits que han sucedido en origen / maestro desde la última vez que tiró. De acuerdo con su resultado anterior, hay 26 de estos. Utilizando el --name-status La opción mostrará qué confirmación 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 nombre del archivo Luego le dirá cómo su copia difiere de la que otra persona se ha comprometido a dominar. A continuación, puede confirmar las diferencias o tirarlas con git checkout nombre del archivo.

Necesitarás usar git pull --rebase para reubicar tus confirmaciones recientes además de las de origin. Una vez git status dice el maestro es adelante más bien que divergido desde el origen / maestro, puedes presionar.


26
2017-07-02 13:14