Git, Qual diferenca entre depth, bare e mirror

No Git, os termos depth, bare, e mirror referem-se a diferentes opções e tipos de repositórios. Vamos explicar cada um deles em detalhes:

1. depth

A opção depth é usada para criar um clone raso (shallow clone) do repositório. Isso significa que apenas um número limitado de commits será copiado, em vez de todo o histórico do repositório. Esta opção é útil quando você deseja economizar tempo e espaço ao clonar um repositório muito grande.

Exemplo:

git clone --depth 1

Neste comando, apenas o commit mais recente será clonado.

2. bare

Um repositório bare (nu) é uma cópia de um repositório Git sem uma cópia de trabalho (working directory). Isso significa que ele contém apenas o diretório .git sem os arquivos de trabalho reais do projeto. Repositórios bare são usados principalmente em servidores remotos onde os desenvolvedores não editam diretamente os arquivos, mas apenas enviam e recebem alterações.

Exemplo:

git clone --bare

Este comando cria um repositório nu.

3. mirror

A opção mirror é usada para criar um clone que é uma cópia exata de todos os refs (branches, tags) do repositório original. Um clone espelhado inclui todas as referências, incluindo aquelas que normalmente não são clonadas, como refs que não estão diretamente associadas a branches ou tags visíveis.

Exemplo:

git clone --mirror

Um clone espelhado é semelhante a um clone nu, mas inclui todas as refs.

Resumo:

  • depth: Clona apenas um número limitado de commits, criando um clone raso.
  • bare: Cria um repositório nu sem cópia de trabalho, apenas o conteúdo do diretório .git.
  • mirror: Cria uma cópia exata de todas as refs do repositório original.

Essas opções são usadas para diferentes propósitos, dependendo das necessidades de clonagem e gerenciamento do repositório Git.

Qual necessita de menos espaco em disco?

Se o objetivo é minimizar o espaço em disco utilizado, a opção depth é a mais eficiente, pois permite clonar apenas uma parte do histórico, resultando em um uso de espaço muito menor. Por outro lado, bare e mirror ainda contêm o histórico completo do repositório, consumindo mais espaço em comparação a um clone raso.

Portanto, o comando git clone --depth 1 <URL-do-repositorio> será o que utilizará menos espaço em disco.

 

Comece hoje mesmo com a Sociap

Dê o próximo passo na evolução de sua Tech Stack

Saiba Mais
whatsapp