Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Systémy souborů Windows a macOS jsou ve výchozím nastavení nerozlišující malá a velká písmena (ale zachovávají jejich původní podobu). Většina souborových systémů Linuxu rozlišuje malá a velká písmena. Git byl původně vytvořen jako systém správy verzí pro jádro Linuxu, takže není divu, že rozlišuje malá a velká písmena.
I když se mnoho problémů s operačním systémem, který nerozlišuje velká a malá písmena, řeší v Git pro Windows, zůstává několik nedostatků.
Názvy souborů a složek
Na Linuxu klonování úložiště Git, které obsahuje jak "File.txt", tak "file.txt", není problém. Jedná se o odlišné názvy souborů. V systému Windows a macOS povede stažení obou souborů k tomu, že druhý přepíše první. Pokud se dvě složky liší jenom v jednotlivých případech, jejich obsah se splete na systémech souborů bez rozlišování malých a velkých písmen.
Oprava konfliktů případů
Jedním ze způsobů, jak opravit úložiště s tímto problémem, je vyzkoušet ho v prostředí citlivém na malá a velká písmena.
Přejmenujte soubory a složky, aby už nebyly v konfliktu, a pak tyto změny nasdílejte do úložiště.
subsystém Windows pro Linux je jedním z takových prostředí.
Dalším přístupem je použít příkaz git mv -f <conflicting name> <non-conflicting name>
pro každý konflikt, přičemž buďte opatrní při použití přesného velká písmena u obou názvů souborů.
Předcházení konfliktům případů
Je dobré se vyhnout tomu, aby se tato situace vytvářela v prvé řadě. Azure Repos nabízí nastavení vynucování případů, aby se zabránilo pushům, které by k této situaci vedly. Vývojářům pomůže také používání funkce dokončování pomocí tabulátoru k potvrzení souborů. Vzhledem k tomu, že Windows i macOS zachovávají velikost písmen, zajistí se tím, že interní systém Git uvidí stejný způsob zápisu písmen jako systém souborů.
Názvy větví a štítků
Můžete vytvořit dvě větve nebo značky (označované jako odkazy), které se liší pouze v velikostech.
Interní mechanismy Gitu i Azure DevOps Services/TFS s nimi budou zacházet jako se dvěma samostatnými refy.
Git na počítači uživatele používá systém souborů k ukládání refs.
Načítání a další operace začnou selhávat kvůli nejednoznačnosti.
Každý odkaz je reprezentován malým souborem a pokud název odkazu obsahuje /
znaky, části před konečným /
jsou reprezentovány složkami.
Jedním z jednoduchých způsobů, jak se vyhnout problémům, je vždy používat názvy větví a značek malými písmeny. Pokud jste už vytvořili dvě větve nebo značky s tímto problémem, můžete je opravit ve webovém uživatelském rozhraní Azure Repos.
Oprava názvů větví
Na stránce větví přejděte na související commit. V místní nabídce zvolte "Nová větev". Dejte větvi nový název, který nemá konflikt velkých a malých písmen. Vraťte se na stránku větví a odstraňte konfliktní větev.
Oprava názvů značek
Postup opravy názvu značky je podobný větvím. Na stránce značek přejděte na označený commit. V místní nabídce zvolte Vytvořit značku. Dejte značce nový název, který nemá konflikt písmen. Vraťte se na stránku značek a odstraňte konfliktní značku.