2011-01-03 14 views
9

El informe de estado actualmente muestra lo siguiente:¿Por qué git confunde la eliminación con el cambio de nombre/copia?

http://gyazo.com/29176f171b2cdd21ba6a929799b45358.png

Sin embargo, cuando lo haga

git rm include/oogl/Buffer.hpp

los siguientes casos:

http://gyazo.com/6c33678bbe4afa2e3ec2cf4a382b637f.png

Cómo hacer yo solo hacerlo eliminar th en el archivo y dejar el resto solo?

+0

_So que guardar texto en la imagen es más fácil que pegarlo, ¿cómo es? _ –

+1

Cuando hice esta pregunta, no sabía cómo copiar desde la consola de Windows. – Overv

Respuesta

14

Git es simplemente eliminando el archivo. Los renombrados se detectan heurísticamente en función de la cantidad de contenido idéntico en los dos archivos, pero esta información no se almacena en la confirmación. Cuando busca la confirmación más tarde, Git volverá a determinar heurísticamente si se cambió el nombre basándose únicamente en los archivos nuevos y eliminados. Entonces no te preocupes por eso

(Véase el Git FAQ, sección Why does git not "track" renames?, y en particular este texto:. "Git tiene un comando de cambio de nombre git mv, pero eso es sólo por conveniencia El efecto es indistinguible de la eliminación del archivo y la adición de otro con diferente nombre y el mismo contenido. ")

+1

Mi memoria me falla, pero creo que hay una configuración para determinar qué tan cerca deben estar los archivos para que se considere un cambio de nombre. –

+0

@Martinho: No puedo encontrar una configuración de este tipo en la página de '' git config', aunque encontré una que afecta la cantidad de archivos que examinará para cambiar el nombre. – cdhowie

+0

50% es el límite predeterminado de qué tan bajo puede ser el parecido antes de que ya no se considere un "cambio de nombre con modificaciones", sino un "eliminar-agregar". – user502515

Cuestiones relacionadas