Git suele adivinar correctamente si un blob contiene texto o datos binarios examinando el principio del contenido. Sin embargo, a veces es posible que desee anular su decisión, ya sea porque un blob contiene datos binarios más adelante en el archivo o porque el contenido, aunque técnicamente compuesto de caracteres de texto, es opaco para un lector humano. Por ejemplo, muchos archivos postscript contienen sólo caracteres ascii, pero producen diffs ruidoso y sin sentido. La manera más sencilla de marcar un archivo como binario es desactivar el atributo diff en el archivo. gitattributes: Esto hará que git genere archivos binarios diferentes (o un parche binario, si los parches binarios están habilitados) en lugar de un diff regular. En resumen: especifique - diff en. gitattributes. Respondió 18 de diciembre a las 16:59 diff sólo controla si git intenta mostrar una diferencia textual para el archivo, no es el atributo que controla la conversión de final de línea. El texto es el atributo correcto. Ndash Charles Bailey Dic 18 11 at 17:04 Mientras que el texto en. gitattributes no funcionó, respondió 30 de mayo a las 18:44 Binario es una abreviatura para - crlf - diff ndash dtech 20 de diciembre a las 15:38 ¿Cuál es la diferencia entre Esto y - texto. Ndash Flimm May 8 15 at 14:32 Su respuesta 2016 Stack Exchange, IncOut de la caja, git puede agregar fácilmente archivos binarios a su índice, y también almacenarlos de una manera eficiente a menos que hagas actualizaciones frecuentes en grandes archivos no comprimibles. Los problemas comienzan cuando git necesita generar diffs y fusionar: git no puede generar diferencias significativas, ni fusionar archivos binarios de ninguna manera que pueda tener sentido. Así que todas las fusiones, rebases o cherrypicks que implican un cambio en un archivo binario implicarán que usted haga una resolución manual del conflicto en ese archivo binario. Debe decidir si los cambios en los archivos binarios son lo suficientemente raros como para poder vivir con el trabajo manual adicional que generan en el flujo de trabajo normal de git, que incluye fusiones, rebases y cherrypicks. No sé de las herramientas que tratan de almacenar diffs de archivos binarios para el control de versiones, pero vale la pena señalar que Git doesnt hacer esto, incluso para los archivos de texto. Git almacena archivos como blobs, y hace una diferencia entre ellos cuando lo necesita. Si usted está mirando para hacer el control de versión en algo como los documentos de Photoshop / Illustrator, GridIron Flow podría hacer el truco para usted. Si estás tratando de mantenerlos sincronizados entre máquinas, Dropbox o Rsync pueden manejarlo, pero no van a hacer diferencias inteligentes. Respondió Jan 15 11 at 0: 157.2 Herramientas Git - Interactive Staging Interactive Staging Git viene con un par de secuencias de comandos que facilitan algunas tareas de la línea de comandos. Aquí, usted verá algunos comandos interactivos que pueden ayudarle a crear fácilmente sus compromisos para incluir sólo ciertas combinaciones y partes de archivos. Estas herramientas son muy útiles si modifica un montón de archivos y, a continuación, decide que desea que los cambios estén en varios compromisos centrados en lugar de un commit grande desordenado. De esta manera, puede asegurarse de que sus compromisos son conjuntos de cambios lógicamente separados y pueden ser revisados fácilmente por los desarrolladores que trabajan con usted. Si ejecuta git add con la opción - i o --interactive, Git entra en un modo de shell interactivo, mostrando algo como esto: Puede ver que este comando le muestra una vista muy diferente de su área de puesta en escena básicamente la misma información que obtiene Con el estado git pero un poco más sucinto e informativo. Enumera los cambios que ha realizado en los cambios a la izquierda y los no modificados a la derecha. Después de esto viene una sección de Comandos. Aquí puede hacer varias cosas, incluyendo archivos de ensayo, descomposición de archivos, puesta en escena de partes de archivos, adición de archivos sin seguimiento y visualización de diffs de lo que se ha realizado. Si escribe 2 o u en el indicador What nowgt, la secuencia de comandos le pedirá los archivos que desea colocar: Para clasificar los archivos TODO e index. html, puede escribir los números: El siguiente de cada archivo significa que el archivo está seleccionado A ser puesta en escena. Si pulsa Enter después de escribir nada en el indicador Updategtgt, Git tomará todo lo seleccionado y lo pondrá en escena para usted: Ahora puede ver que los archivos TODO e index. html están en escena y que el archivo simplegit. rb todavía está sin marcar. Si desea deshabilitar el archivo TODO en este punto, utilice la opción 3 o r (para revertir): Mirando su estado Git de nuevo, puede ver que ha desestabilizado el archivo TODO: Para ver la diferencia de lo que ha realizado, Puede utilizar el comando 6 o d (para diff). Le muestra una lista de sus archivos en escena y puede seleccionar aquellos para los que desea ver la diferencia escalonada. Esto se parece mucho a la especificación de git diff --cached en la línea de comandos: Con estos comandos básicos, puede utilizar el modo de adición interactivo para tratar con su área de puesta en escena un poco más fácilmente. También es posible que Git escenifique ciertas partes de archivos y no el resto. Por ejemplo, si realiza dos cambios en su archivo simplegit. rb y desea organizar uno de ellos y no el otro, hacerlo es muy fácil en Git. En el indicador interactivo, escriba 5 o p (para el parche). Git te preguntará qué archivos te gustaría particionar parcialmente, entonces, para cada sección de los archivos seleccionados, mostrará hunks del archivo diff y te preguntará si te gustaría montarlos uno por uno: Tienes muchas opciones en este punto. Mecanografía. Muestra una lista de lo que usted puede hacer: Generalmente, youll tipo y o n si desea organizar cada uno de los trozos, pero la puesta en escena de todos ellos en ciertos archivos o saltarse una decisión más tarde hasta puede ser útil también. Si usted escoge una parte del archivo y deja otra parte sin marcar, su salida de estado se verá así: El estado del archivo simplegit. rb es interesante. Te muestra que un par de líneas están en escena y una pareja no están marcadas. Has organizado parcialmente este archivo. En este punto, puede salir del script de adición interactivo y ejecutar git commit para validar los archivos parcialmente en etapas. Tampoco necesitas estar en el modo interactivo para hacer la partición parcial, puedes iniciar el mismo script usando git add - p o git add --patch en la línea de comandos. Además, puede usar el modo de revisión para restaurar parcialmente los archivos con el comando reset --patch, para revisar partes de los archivos con el comando checkout --patch y para almacenar partes de archivos con el comando stash save --patch. Bueno entrar en más detalles sobre cada uno de estos como llegar a usos más avanzados de estos comandos. Este sitio de código abierto está alojado en GitHub. Los parches, sugerencias y comentarios son bienvenidos.
No comments:
Post a Comment