Tengo un disco externo FAT en el que almaceno mis repositorys GIT y uso esas repeticiones tanto en Mac como en Windows. Como FAT no tiene permissions, cuando he copydo files del disco local al disco FAT externo tuve git diffs debido a los cambios en el modo file. Lo he solucionado con la opción git usando esto :
git config core.fileMode false
Ahora en Mac no tengo git diff, es decir, git diff es limpio. Pero cuando voy a Windows y hago git diff, veo esto:
Recuerdo que tuve problemas al vincular mis proyectos usando Xcode 6 después de actualizar el Xcode. Mis frameworks, los mismos frameworks que ves en la image de arriba, estaban en Xcode pero no fueron reconocidos ni vinculados. Así que los eliminé y los re-agregué y resolví el problema. Supongo que esta es la razón por la que tengo diff. Aquí hay un ejemplo de una diferencia:
Estaba:
Volverse:
¿Por qué no veo esta diferencia en Mac? ¿Por qué tengo diferencias en los files de frameworks de iOS y lo que significa la diferencia (XSym, número [0022], código hash)?
EDITAR: Parece que de alguna manera está conectado con enlaces simbólicos en FAT: http://www.tucuxi.org/os-x-vfat/ pero no estoy seguro de cómo resolver mi problema de usar el mismo repository en Windows y Mac simultáneamente.
Aquí hay una explicación del problema: http://www.tucuxi.org/os-x-vfat/ En dos palabras, FAT no entiende los enlaces simbólicos y, por lo tanto, cuando copie el enlace simbólico en FAT, intenta imitar con agregar el contenido mención es la diferencia en las imágenes de arriba.
Aquí está la solución: https://www.kernel.org/pub/software/scm/git/docs/git-config.html En palabras core.symlinks
configuration de git core.symlinks
debe establecerse en falso, de modo que se comprueben los enlaces simbólicos como pequeños files simples que contienen el text del enlace:
git config core.symlinks false
Y como resultado, la diferencia en Mac también estará presente. Y por cierto, la diferencia en los files de frameworks es lo que hace que no funcionen en Xcode.
Entonces, en general, usando GIT en FAT, recomendaría establecer esta configuration global para GIT:
git config --global core.fileMode false git config --global core.symlink false git config --global core.ignorecase true
Verifique si está configurado correctamente usando:
git config -l
Muestra todos los valores henetworkingados de: sistema, global y local.
¡Importante! Incluso si usas git config --global core.symlink false
, git config --global core.symlink false
otro repo para ti OSX y Windows para que la opción surta efecto. Entonces, básicamente, debe tener 2 repositorys en su disco duro externo, uno para OSX y otro para Windows. De lo contrario, todavía obtienes diffs.