GNU/Linux >> LINUX-Kenntnisse >  >> Linux

git erzwingt eine Indexaktualisierung nach dem Wechsel zwischen Windows und Linux

Wie Torek erwähnt hat, möchten Sie dies wahrscheinlich nicht tun. Es ist im Allgemeinen keine gute Idee, ein Repo zwischen Betriebssystemen zu teilen.

Es ist jedoch möglich, ähnlich wie es möglich ist, ein Repo zwischen Windows und dem Windows-Subsystem für Linux zu teilen. Sie können versuchen, core.checkStat einzustellen bis minimal , und wenn das nicht ausreicht, core.trustctime bis false . Das führt dazu, dass die minimale Menge an Informationen im Index gespeichert wird, was bedeutet, dass die Daten so portabel wie möglich sind.

Beachten Sie jedoch, dass, wenn Ihr Repository symbolische Links enthält, es wahrscheinlich ist, dass nichts, was Sie tun, Aktualisierungen verhindern wird. Linux betrachtet die Länge eines Symlinks normalerweise als seine Länge in Bytes, und Windows betrachtet es als einen oder mehrere Festplattenblöcke, sodass es zu Größenunterschieden zwischen den Betriebssystemen kommt. Dies lässt sich nicht vermeiden, da die Größe eines der Attribute ist, die im Index verwendet werden und nicht deaktiviert werden können.


Hier sind Sie vollkommen richtig:

  • Das Ding, das Sie hier verwenden, das Git auf unterschiedliche Weise den Index nennt , der Bereitstellungsbereich , oder den Cache , enthält tatsächlich Cache-Daten.

  • Die darin enthaltenen Cache-Daten sind das Ergebnis von Systemaufrufen.

  • Die von einem Linux-System zurückgegebenen Systemaufrufdaten sind anders aus den von einem Windows-System zurückgegebenen Systemaufrufdaten.

Daher macht ein Wechsel des Betriebssystems alle Cache-Daten vollständig ungültig.

... wie kann ich die Indexdatei für verschiedene Systeme setzen?

Ihre beste Wette hier ist, dies überhaupt nicht zu tun. Erstellen Sie zwei verschiedene Arbeitsbäume oder vielleicht sogar zwei verschiedene Repositories. Aber wenn das schmerzhafter ist als diese andere Alternative, probieren Sie diese Ideen aus:

Die eigentliche Indexdatei, die Git verwendet, ist lediglich standardmäßig .git/index . Sie können einen anderen angeben Datei durch Setzen von GIT_INDEX_FILE zu einem anderen (relativen oder absoluten) Pfad. Sie könnten also .git/index-linux haben und .git/index-windows , und setzen Sie GIT_INDEX_FILE basierend auf dem Betriebssystem, das Sie verwenden.

Einige Git-Befehle verwenden einen temporären Index. Sie tun dies, indem sie GIT_INDEX_FILE setzen sich. Wenn sie un - setzen Sie es später, sie könnten versehentlich .git/index verwenden an dieser Stelle. Eine weitere Option ist also das Umbenennen .git/index aus dem Weg, wenn Betriebssysteme gewechselt werden. Behalten Sie eine .git/index-windows bei und .git/index-linux wie zuvor, aber benennen Sie den verwendeten um in .git/index während es verwendet wird, dann benennen Sie es in .git/index-name um bevor Sie zum anderen System wechseln.

Auch hier empfehle ich nicht, eine dieser Methoden auszuprobieren, aber sie werden wahrscheinlich mehr oder weniger funktionieren.


Linux
  1. So konfigurieren Sie den SAMBA-Server und übertragen Dateien zwischen Linux und Windows

  2. Windows – Freigegebener Ordner zwischen Qemu Windows Guest und Linux Host?

  3. So richten Sie eine Wifi-Direct-Verbindung zwischen Android und Linux ein

  4. Welches Dateisystem soll zwischen OSX und Linux verwendet werden?

  5. Was ist der Unterschied zwischen einem Bibliotheksaufruf und einem Systemaufruf in Linux?

So installieren und verwenden Sie Git in einem Linux-System

Mit NitroShare können Sie Dateien ganz einfach zwischen Linux, Windows und Mac austauschen

Beheben Sie, dass Grub für Windows- und Linux-Dual-Boot-Systeme nicht angezeigt wird

So teilen Sie Steam-Spieldateien zwischen Linux und Windows

So installieren und verwenden Sie den Ack-Befehl im Linux-System

Freigabe von Dateien zwischen Linux Mint und Windows 10