O Que É git clone?
git clone copia um repositório inteiro, incluindo sua história completa, para a sua máquina e configura um remote para que você possa sincronizar depois.
Clonar é geralmente a primeira coisa que você faz com um projeto. git clone baixa uma cópia completa de um repositório, seus arquivos e toda a sua história, e configura um remote chamado origin apontando de volta para a origem. A partir daí você pode trabalhar totalmente offline e fazer push quando estiver pronto.
O que o clone dá a você
Um clone é uma cópia completa e autônoma do repositório. Você obtém todos os commits, branches e tags da história, além de um diretório de trabalho com checkout na branch padrão e um remote origin configurado. Como a cópia é completa, você pode fazer commit, branch e inspecionar a história sem uma conexão de rede.
Clonando um repositório
Você aponta git clone para uma URL, e o Git cria um diretório com o projeto e sua história.
git clone https://github.com/owner/project.git
cd project
git log --oneline -5Clones completos versus parciais
Por padrão um clone faz fetch de tudo, o que pode ser grande para projetos antigos. Opções permitem fazer fetch apenas da história recente (um shallow clone) ou limitar quais branches e arquivos são baixados. Isso troca completude por velocidade e espaço em disco, o que importa mais em ambientes automatizados.
Clonando em CI/CD
Quase todo job de CI começa clonando seu repositório em um runner para que ele tenha o código para fazer o build. O tempo de clone é parte de cada execução de pipeline, então é um alvo frequente de otimização. Em runners gerenciados como o Latchkey, uma etapa de checkout rápida mantém esse custo de inicialização baixo ao longo de milhares de jobs.
Dicas de clone
- O clone dá a você a história completa e um remote origin por padrão.
- Use um shallow clone no CI quando você só precisa de commits recentes.
- Limite branches ou use clone parcial para repositórios muito grandes.
- Lembre-se de que o tempo de clone conta em cada execução de pipeline.
Principais conclusões
- git clone copia um repositório com sua história completa e configura o origin.
- Clones shallow e parciais trocam completude por velocidade.
- O CI clona o repo no início dos jobs, então o tempo de clone importa.