2011-06-07 11 views
5

Al momento de la extracción (en un repositorio de producción limpio) todos los conjuntos de cambios encuentran y hacen que los archivos aparezcan modificados y requieran confirmación. El registro de git no muestra los commits que deberían haber causado estos cambios ... los cambios solo se extraen sin las notas de registro, por lo que cree que no están sincronizados.Resultados de extracción de Git en "necesita actualización" y archivos mostrados como modificados

El resultado de la extracción muestra los mensajes "necesita actualizar" para cada archivo.

+2

¿Está utilizando Git en Windows? Por lo general, estas cosas suceden cuando la conversión entre lineendings (crlf/lf) no funciona correctamente. ¿Cuál es la salida de git diff? Si solo se reemplazan las líneas por líneas idénticas, lo más probable es que cambie la terminación de la línea. –

+0

No. Encendido en mac. También debería haber provisto que este es un maestro simple para dominar el tirón. He estado trabajando con este repositorio por un tiempo. – doublejosh

+0

He visto este comportamiento cuando hay un conflicto. Git intenta (y falla) fusionar los cambios remotos, y en su lugar muestra TODOS los cambios (incluidos los cambios remotos antes mencionados) como un gran cambio local. –

Respuesta

3

cómo llegué a salir del lío:

medida que seguí tirando a prueba mis soluciones que tenía que hacer uso de ...

git reset --hard que se mueve de nuevo a la más reciente comprometerse en el registro.

git clean -fd que elimina los archivos no rastreados desde la confirmación más reciente en el registro.

Eventualmente decidí que necesitaba cambiar el archivo de configuración ofensivo a chmod 777 y confirmar el cambio de permiso. Otra opción hubiera sido cambiar Git en modo independiente del permiso con git config core.filemode false Leer más aquí: How do I make Git ignore file mode (chmod) changes?

Entonces hice un tirón para combinar los cambios y tienen la actualización de registro junto con los archivos, cambió el permiso del archivo problemático volver a 644 y cometer eso ... y lo devolvió al maestro trabajador (me alegro de que esté permitido)

Parece que esto es un error que al tener un error de permiso permite fusionar los conjuntos de archivos, pero el historial de registros no funciona t refleja los compromisos !!!

Por cierto: Mi git --version es git version 1.5.6.5

+0

BTW: esto relacionado con los permisos de archivos. Cree que a veces Git no cree que tenga permisos y puestos, incluso pensó que el cambio real tuvo lugar ... por lo que entra en un estado incorrecto. – doublejosh

5

Como se ilustra en este Git project, esto puede suceder cuando Git intenta adaptar el estilo de EOL para proyectos desarrollados en Unix, y se clonó en Windows:

via msysgit Troubleshooting

run command in git bash: git config --global core.autocrlf false if this is not done then git svn rebase reports "needs update" thinking that changes have been made to the source May run into troubles with the commit

ver este SO answer for more.

+0

Lo siento y gracias, pero no creo que sea esto. Estoy en un Mac y los cambios que se producen son los cambios reales en los archivos (ediciones reales), pero el registro de git no se actualiza con el historial, por lo que se queja de estar fuera de sincronización. OOORRR quizás aún no entiendo tu respuesta :) – doublejosh

+0

@doublejosh: no, parece que has entendido bien mi respuesta. ¿Tal vez el comentario de Chris ayudará? – VonC

Cuestiones relacionadas