2012-06-10 6 views
8

Al intentar extraer de una sucursal remota, aparece un error: Your local changes to the following files would be overwritten by merge: app/..../_shared.scss Git solicita la confirmación del archivo o el alijo. El problema es - Ya he hecho git add . y git commit -am "trying to remove the error". El problema persisteGit pide confirmar o esconder, pero no hay nada que confirmar

git status dice: "nada que cometen (directorio de trabajo limpio)"

¿Alguien sabe cómo deshacerse de él?

RESPUESTA: Mueva el archivo ofensivo a otra ubicación. A continuación, elimine el archivo ofensivo de su árbol. Tirar de nuevo luego difiera los cambios de su archivo ofensivo sobre el archivo que acaba de extraer. piratear, pero funciona

Nota: Encontré la respuesta aquí (Git asks me to commit or stash even those changes are commited), pero como nadie lo votó en el pensamiento original debería volver a publicar. Es un truco, pero es la ruta más rápida para la resolución.

+0

Si ha encontrado la solución usted mismo, debe publicarla como respuesta y aceptarla, ¡es útil para otras personas que tienen el mismo problema! –

+0

Lo tendremos en cuenta. No encontré la solución yo mismo, simplemente encontré la solución en otra pregunta. Sin embargo, parece que el propietario de la otra pregunta no quería aceptar esta solución (perfectamente válida) como la correcta. Por lo tanto, esto parecía una buena manera de compartir. Hará lo que sugirió la próxima vez. ¡Gracias! – Kirill

+0

En cuanto a mí, simplemente renombré el archivo y lo saqué de nuevo y funcionó. A Git ni siquiera le importaba el archivo que faltaba en ese momento. – user276648

Respuesta

6

Si git status informó el directorio de trabajo limpio, apostaría que tiene un archivo ignorado en su directorio de trabajo que alguien más agregó al repositorio remoto. Puede confirmarlo con git diff --stat your-branch remote-name/remote-branch y git ls-files -i --exclude-standard.

La solución sería eliminar el archivo desde el archivo de ignorar (por lo git status muestra como un archivo sin seguimiento), esconderla con la opción --include-untracked, tirar de los cambios desde el mando a distancia, y aplicar el alijo de fusionar sus cambios de nuevo en.

+0

Realmente no puedo confirmar o negar, ahora que he usado la solución alternativa, pero ciertamente intentaré esto la próxima vez. A juzgar por el trabajo que estábamos haciendo, definitivamente estás en lo cierto. ¡Gracias por la respuesta! – Kirill

+0

¡Salvaste mi día! – Darshana

0

He intentado buscar archivos ignorados, como @ellotheth dijo, pero no fue el problema. La única solución para mí fue mover el archivo afectado.

Sin embargo, durante la ejecución hubo muchos "no se pudieron desvincular los archivos, se denegó el permiso" y sé que algunos archivos se movieron/agregaron de forma remota. Probablemente tiene algo que ver con la instalación de windows ... Git Checkout warning: unable to unlink files, permission denied

2

o podría "tirón de fuerza" ya que tienden a llamarlo.

Una advertencia justa: este fragmento destruirá todos los cambios locales.
(incluyendo cambios empujados comprometidos pero no)

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

Las soluciones anteriores no funcionaron para mí. Inserté una línea en blanco en el archivo problemático y usé el comando git update-index --no-assume-unchanged /path/to/file. Luego cometió y lo empujó normalmente.

Cuestiones relacionadas