GNU/Linux >> Tutoriels Linux >  >> Linux

git force l'actualisation de l'index après le basculement entre Windows et Linux

Comme Torek l'a mentionné, vous ne voulez probablement pas faire cela. Ce n'est généralement pas une bonne idée de partager un référentiel entre les systèmes d'exploitation.

Cependant, il est possible, tout comme il est possible de partager un dépôt entre Windows et le sous-système Windows pour Linux. Vous pouvez essayer de définir core.checkStat à minimal , et si cela ne suffit pas, core.trustctime à false . Cela conduit à la quantité minimale d'informations stockées dans l'index, ce qui signifie que les données seront aussi portables que possible.

Notez cependant que si votre référentiel contient des liens symboliques, il est probable que rien de ce que vous ferez n'empêchera les actualisations. Linux considère généralement que la longueur d'un lien symbolique est sa longueur en octets, et Windows considère qu'il prend un ou plusieurs blocs de disque, il y aura donc une différence de taille entre les systèmes d'exploitation. Cela n'est pas évitable, car la taille est l'un des attributs utilisés dans l'index qui ne peut pas être désactivé.


Vous avez tout à fait raison :

  • La chose que vous utilisez ici, que Git appelle de diverses manières l'index , la zone de préparation , ou le cache , contient en fait des données de cache.

  • Les données de cache qu'il contient sont le résultat d'appels système.

  • Les données d'appel système renvoyées par un système Linux sont différentes à partir des données d'appel système renvoyées par un système Windows.

Par conséquent, un changement de système d'exploitation invalide complètement toutes les données du cache.

... comment puis-je utiliser définir le fichier d'index pour un système différent ?

Votre meilleur pari ici est de ne pas le faire du tout. Créez deux arbres de travail différents, ou peut-être même deux référentiels différents. Mais, si c'est plus douloureux que cette autre alternative, essayez ces idées :

Le fichier d'index réel que Git utilise simplement par défaut .git/index . Vous pouvez spécifier un différent fichier en définissant GIT_INDEX_FILE vers un autre chemin (relatif ou absolu). Vous pourriez donc avoir .git/index-linux et .git/index-windows , et définissez GIT_INDEX_FILE en fonction du système d'exploitation que vous utilisez.

Certaines commandes Git utilisent un index temporaire. Ils le font en définissant GIT_INDEX_FILE eux-mêmes. S'ils un -réglez-le après, ils peuvent accidentellement utiliser .git/index À ce point. Donc une autre option est de renommer .git/index à l'écart lors du changement de système d'exploitation. Gardez un .git/index-windows et .git/index-linux comme avant, mais renommez celui qui est utilisé en .git/index pendant son utilisation, puis renommez-le en .git/index-name avant de passer à l'autre système.

Encore une fois, je ne recommande pas d'essayer l'une ou l'autre de ces méthodes, mais elles sont susceptibles de fonctionner, plus ou moins.


Linux
  1. Comment configurer le serveur SAMBA et transférer des fichiers entre Linux et Windows

  2. Windows - Dossier partagé entre l'invité Windows Qemu et l'hôte Linux ?

  3. Quel système de fichiers utiliser entre OSX et Linux

  4. Quelle est la différence entre un appel Library et un appel System sous Linux ?

  5. Compatibilité binaire entre Mac OS X et Linux

Comment installer et utiliser Git dans le système Linux

Partagez facilement des fichiers entre Linux, Windows et Mac à l'aide de NitroShare

Correction de Grub ne s'affichant pas pour le système à double démarrage Windows et Linux

Comment partager des fichiers de jeu Steam entre Linux et Windows

Comment installer et utiliser la commande Ack dans le système Linux

Partage de fichiers entre Linux Mint et Windows 10