Como mencionó torek, probablemente no quieras hacer esto. Por lo general, no es una buena idea compartir un repositorio entre sistemas operativos.
Sin embargo, es posible, al igual que es posible compartir un repositorio entre Windows y el Subsistema de Windows para Linux. Es posible que desee intentar configurar core.checkStat
a minimal
, y si eso no es suficiente, core.trustctime
a false
. Eso lleva a que se almacene una cantidad mínima de información en el índice, lo que significa que los datos serán lo más portátiles posible.
Tenga en cuenta, sin embargo, que si su repositorio tiene enlaces simbólicos, es probable que nada de lo que haga impida las actualizaciones. Linux normalmente considera que la longitud de un enlace simbólico es su longitud en bytes, y Windows considera que toma uno o más bloques de disco, por lo que habrá una discrepancia de tamaño entre los sistemas operativos. Esto no se puede evitar, ya que el tamaño es uno de los atributos utilizados en el índice que no se puede desactivar.
Tienes toda la razón aquí:
-
Lo que estás usando aquí, que Git llama de diversas formas el índice , el área de preparación , o el caché , de hecho contiene datos de caché.
-
Los datos de caché que contiene son el resultado de llamadas al sistema.
-
Los datos de llamadas al sistema devueltos por un sistema Linux son diferentes de los datos de llamada del sistema devueltos por un sistema Windows.
Por lo tanto, un cambio de sistema operativo invalida por completo todos los datos de caché.
... ¿cómo puedo configurar el archivo de índice para un sistema diferente?
Su mejor apuesta aquí es no hacer esto en absoluto. Cree dos árboles de trabajo diferentes, o tal vez incluso dos repositorios diferentes. Pero, si eso es más doloroso que esta otra alternativa, prueba estas ideas:
El archivo de índice real que usa Git simplemente predeterminado a .git/index
. Puede especificar un diferente archivo configurando GIT_INDEX_FILE
a alguna otra ruta (relativa o absoluta). Entonces podrías tener .git/index-linux
y .git/index-windows
y establecer GIT_INDEX_FILE
según el sistema operativo que estés usando.
Algunos comandos de Git usan un índice temporal. Lo hacen configurando GIT_INDEX_FILE
ellos mismos. Si ellos un -establecerlo después, pueden usar accidentalmente .git/index
en este punto. Así que otra opción es cambiar el nombre .git/index
fuera del camino al cambiar de sistema operativo. Mantenga un .git/index-windows
y .git/index-linux
como antes, pero cambie el nombre del que esté en uso a .git/index
mientras está en uso, luego cámbiele el nombre a .git/index-name
antes de cambiar al otro sistema.
Una vez más, no recomiendo intentar ninguno de estos métodos, pero es probable que funcionen, más o menos.