GNU/Linux >> Linux Esercitazione >  >> Linux

git forza l'aggiornamento dell'indice dopo il passaggio da Windows a Linux

Come ha detto torek, probabilmente non vorrai farlo. Generalmente non è una buona idea condividere un repository tra sistemi operativi.

Tuttavia, è possibile, proprio come è possibile condividere un repository tra Windows e il sottosistema Windows per Linux. Potresti provare a impostare core.checkStat a minimal , e se ciò non è sufficiente, core.trustctime a false . Ciò porta alla quantità minima di informazioni memorizzate nell'indice, il che significa che i dati saranno il più portabili possibile.

Nota, tuttavia, che se il tuo repository ha collegamenti simbolici, è probabile che nulla di ciò che fai impedirà gli aggiornamenti. Linux in genere considera la lunghezza di un collegamento simbolico come la sua lunghezza in byte e Windows considera che prenda uno o più blocchi del disco, quindi ci sarà una discrepanza di dimensioni tra i sistemi operativi. Ciò non è evitabile, poiché la dimensione è uno degli attributi utilizzati nell'indice che non può essere disabilitato.


Hai completamente ragione qui:

  • La cosa che stai usando qui, che Git chiama in vari modi index , l'area di sosta o la cache , contiene infatti i dati della cache.

  • I dati della cache che contiene sono il risultato di chiamate di sistema.

  • I dati della chiamata di sistema restituiti da un sistema Linux sono diversi dai dati della chiamata di sistema restituiti da un sistema Windows.

Quindi, un cambio di sistema operativo invalida completamente tutti i dati della cache.

... come posso utilizzare l'impostazione del file indice per un sistema diverso?

La soluzione migliore qui è non farlo affatto. Crea due diversi alberi di lavoro, o forse anche due diversi repository. Ma, se questo è più doloroso di quest'altra alternativa, prova queste idee:

L'effettivo file di indice che Git utilizza semplicemente ha come valore predefinito .git/index . Puoi specificare un diverso file impostando GIT_INDEX_FILE a qualche altro percorso (relativo o assoluto). Quindi potresti avere .git/index-linux e .git/index-windows e imposta GIT_INDEX_FILE in base al sistema operativo in uso.

Alcuni comandi Git usano un indice temporaneo. Lo fanno impostando GIT_INDEX_FILE loro stessi. Se non -set in seguito, potrebbero usare accidentalmente .git/index a questo punto. Quindi un'altra opzione è rinominare .git/index fuori mano quando si cambia sistema operativo. Mantieni un .git/index-windows e .git/index-linux come prima, ma rinomina quello in uso in .git/index mentre è in uso, quindi rinominalo in .git/index-name prima di passare all'altro sistema.

Ancora una volta, non consiglio di provare nessuno di questi metodi, ma è probabile che funzionino, più o meno.


Linux
  1. Come configurare il server SAMBA e trasferire file tra Linux e Windows

  2. Windows:cartella condivisa tra Qemu Windows Guest e Linux Host?

  3. Come impostare una connessione Wi-Fi Direct tra Android e Linux

  4. Quale file system usare tra OSX e Linux

  5. Compatibilità binaria tra Mac OS X e Linux

Come installare e utilizzare Git nel sistema Linux

Condividi facilmente i file tra Linux, Windows e Mac utilizzando NitroShare

Risolto il problema con Grub che non veniva visualizzato per il sistema di avvio doppio di Windows e Linux

Come condividere file di giochi Steam tra Linux e Windows

Come installare e utilizzare il comando Ack nel sistema Linux

Condivisione di file tra Linux Mint e Windows 10