GNU/Linux >> Znalost Linux >  >> Linux

git vynutí obnovení indexu po přepnutí mezi okny a linuxem

Jak se zmínil torek, pravděpodobně to nechcete dělat. Obecně není dobrý nápad sdílet úložiště mezi operačními systémy.

Je však možné, podobně jako je možné sdílet repo mezi Windows a Windows Subsystem pro Linux. Můžete zkusit nastavit core.checkStat do minimal , a pokud to nestačí, core.trustctimefalse . To vede k minimálnímu množství informací uložených v indexu, což znamená, že data budou maximálně přenosná.

Všimněte si však, že pokud má vaše úložiště symbolické odkazy, je pravděpodobné, že nic, co uděláte, nezabrání obnovování. Linux obvykle považuje délku symbolického odkazu za délku v bajtech a Windows za to, že zabírá jeden nebo více diskových bloků, takže mezi operačními systémy dojde k nesouladu ve velikosti. Tomu se nelze vyhnout, protože velikost je jedním z atributů používaných v indexu, který nelze zakázat.


Zde máte úplnou pravdu:

  • Věc, kterou zde používáte a kterou Git různě nazývá index , předváděcí oblast nebo mezipaměť , ve skutečnosti obsahuje data mezipaměti.

  • Data mezipaměti, která obsahuje, jsou výsledkem systémových volání.

  • Data systémového volání vrácená systémem Linux jsou jiná z dat systémových volání vrácených systémem Windows.

Přepínač OS tedy zcela zruší platnost všech dat mezipaměti.

... jak mohu použít soubor indexu nastavení pro jiný systém?

Nejlepším řešením je nedělat to vůbec. Vytvořte dva různé pracovní stromy nebo možná dokonce dvě různá úložiště. Ale pokud je to bolestivější než tato jiná alternativa, vyzkoušejte tyto nápady:

Skutečný indexový soubor, který Git používá, je pouze výchozí .git/index . Můžete zadat jiný soubor nastavením GIT_INDEX_FILE na nějakou jinou (relativní nebo absolutní) cestu. Takže byste mohli mít .git/index-linux a .git/index-windows a nastavte GIT_INDEX_FILE podle toho, který operační systém používáte.

Některé příkazy Git používají dočasný index. Dělají to nastavením GIT_INDEX_FILE oni sami. Pokud ne -nastavte jej později, mohou omylem použít .git/index v tomto bodě. Další možností je tedy přejmenování .git/index z cesty při přepínání OS. Udržujte .git/index-windows a .git/index-linux jako dříve, ale přejmenujte to, co se používá, na .git/index dokud se používá, pak jej přejmenujte na .git/index-name před přepnutím na jiný systém.

Opět nedoporučuji zkoušet žádnou z těchto metod, ale pravděpodobně budou fungovat, víceméně.


Linux
  1. Jak nastavit Wifi-Direct připojení mezi Androidem a Linuxem

  2. Jaký je rozdíl mezi voláním knihovny a voláním systému v Linuxu?

  3. Binární kompatibilita mezi Mac OS X a Linuxem

  1. Jak nakonfigurovat server SAMBA a přenášet soubory mezi Linuxem a Windows

  2. Windows – sdílená složka mezi hostem Qemu Windows a hostitelem Linuxu?

  3. Linux – sdílení souborů mezi hostitelem Linuxu a hostem Windows?

  1. Vytvořte SSH spojení mezi Windows a Linuxem

  2. Sdílejte soubory mezi počítači se systémem Linux a Windows

  3. Jaký souborový systém použít mezi OSX a Linuxem