Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
Os sistemas de ficheiros do Windows e do macOS, por padrão, ignoram a diferenciação entre maiúsculas e minúsculas (mas preservam o formato original). A maioria dos sistemas de arquivos Linux diferencia maiúsculas de minúsculas. O Git foi construído originalmente para ser o sistema de controle de versão do kernel Linux, portanto, sem surpresa, é sensível a maiúsculas e minúsculas.
Embora muitos dos problemas com um sistema operacional que não diferencia maiúsculas de minúsculas tenham sido resolvidos no Git para Windows, algumas peculiaridades permanecem.
Nomes de ficheiros e pastas
No Linux, verificar um repositório Git que contém "File.txt" e "file.txt" não é problema. Esses são nomes de arquivos distintos. No Windows e macOS, o check-out de ambos os arquivos resultará na substituição do primeiro pelo segundo. Se duas pastas diferirem apenas por maiúsculas e minúsculas, seu conteúdo acabará misturado em sistemas de arquivos que não diferenciam maiúsculas de minúsculas.
Corrigindo conflitos de casos
Uma maneira de corrigir um repositório com esse problema é verificá-lo em um ambiente que diferencia maiúsculas de minúsculas.
Renomeie arquivos e pastas para que não entrem mais em conflito e, em seguida, envie essas alterações para o repositório.
Subsistema Windows para Linux é um desses ambientes.
Outra abordagem é usar o comando git mv -f <conflicting name> <non-conflicting name> para cada conflito, tendo o cuidado de usar maiúsculas exatas em ambos os nomes de arquivo.
Evitar conflitos de casos
É bom evitar criar essa situação em primeiro lugar. O Azure Repos oferece uma configuração de imposição de caso para evitar pushes que levariam a essa situação. Para os desenvolvedores, adotar o hábito de usar o preenchimento de guias para confirmar arquivos também ajudará. Como tanto o Windows quanto o macOS preservam maiúsculas e minúsculas, isso garantirá que os componentes internos do Git vejam exatamente a mesma capitalização que o sistema de arquivos utiliza.
Nomes de ramificações e tags
Você pode criar duas ramificações ou tags (conhecidas como 'refs') que diferem apenas na capitalização.
Os mecanismos internos do Git, assim como o Azure DevOps Services e o TFS, tratarão estas como duas referências separadas.
Na máquina de um utilizador, o Git usa o sistema de arquivos para armazenar referências.
Buscas e outras operações começam a falhar por causa da ambiguidade.
Cada ref é representada por um pequeno arquivo e, se um nome ref contiver / caracteres, as partes antes do / final serão representadas por pastas.
Uma maneira simples de evitar problemas é sempre usar nomes de ramificações e tags em minúsculas. Se já tiveres criado duas ramificações ou etiquetas com este problema, podes corrigi-lo na interface web do Azure Repos.
Fixação de nomes de filiais
Na página de branches, navegue até o commit relacionado. No menu de contexto, escolha "Nova filial". Dê à ramificação um novo nome que não tenha um conflito de maiúsculas e minúsculas. Retorne à página de ramificações e exclua a ramificação conflitante.
Corrigindo nomes de tags
As etapas para corrigir um nome de tag são semelhantes às ramificações. Na página de etiquetas, navegue até o commit etiquetado. No menu de contexto, escolha "Criar tag". Dê à etiqueta um novo nome que não entre em conflito de maiúsculas/minúsculas. Retorne à página de tags e exclua a tag conflitante.