Aqui vamos examinar o comando git clone
em profundidade. git clone
é um utilitário de linha de comandos Git que é usado para atingir um repositório existente e criar um clone, ou cópia do repositório de destino. Nesta página discutiremos opções de configuração estendidas e casos de uso comum de git clone
., Alguns pontos que vamos abordar aqui são:
- a Clonagem de um local ou a um repositório remoto
- Clonar um repositório vazio
- Usando superficial opções parcialmente clonar repositórios
- Git sintaxe de URL e protocolos suportados
Na configuração de um repositório guia, cobrimos básico do caso de uso de git clone
. Esta página irá explorar cenários mais complexos de clonagem e configuração.,
objectivo: repo-to-repo colaboration development copy
Se um projecto já tiver sido criado num repositório central, o comando
é a forma mais comum para os utilizadores obterem uma cópia de desenvolvimento. Como , a clonagem é geralmente uma operação única. Uma vez que um desenvolvedor tenha obtido uma cópia de trabalho, todas as operações de controle de versão e colaborações são gerenciadas através de seu repositório local.,
repo-to-repo collaboration
é importante entender que a ideia do Git de uma “cópia de trabalho” é muito diferente da cópia de trabalho que você obtém ao verificar o código de um repositório SVN. Ao contrário do SVN, o Git não faz distinção entre a cópia de trabalho e o repositório central—eles são todos repositórios de Git completos.
isto torna a colaboração com o Git fundamentalmente diferente da SVN. Enquanto o SVN depende da relação entre o repositório central e a cópia de trabalho, o modelo de colaboração do Git é baseado na interação repositório-repositório-repositório., Em vez de verificar uma cópia de trabalho no repositório central do SVN, você empurra ou puxa commits de um repositório para outro.
é claro que nada o impede de dar um significado especial a certos acordos de Git. Por exemplo, simplesmente designando um git repo como o repositório “central”, é possível replicar um fluxo de trabalho centralizado usando Git. A questão é que isto é conseguido através de Convenções, em vez de ser ligado ao próprio VCS.,
o uso
git clone
é usado principalmente para apontar para um acordo de recompra existente e fazer um clone ou cópia desse acordo em um novo diretório, em outro local. O repositório original pode ser localizado no sistema de arquivos local ou em protocolos acessíveis à máquina remota. O comando git clone
copia um repositório Git existente. Isto é uma espécie de checkout SVN, exceto que a “cópia de trabalho” é um repositório Git completo-ele tem seu próprio histórico, gerencia seus próprios arquivos, e é um ambiente completamente isolado do repositório original.,
Como uma conveniência, a clonagem cria automaticamente uma conexão remota chamada “origem” que aponta para o repositório original. Isso torna muito fácil interagir com um repositório central. Esta conexão automática é estabelecida pela criação de refs Git para as cabeças de ramificação remota sob refs/remotes/origin
e inicializando remote.origin.url
e remote.origin.fetch
variáveis de configuração.
um exemplo demonstrando usando git clone
pode ser encontrado na configuração de um guia do repositório., O exemplo abaixo demonstra como obter uma cópia local de um repositório central armazenados em um servidor acessível em: example.com
usando o SSH username joão:
git clone ssh://[email protected]/path/to/my-project.git
cd my-project
# Start working on the project
O primeiro comando inicializa um novo repositório Git my-project
pasta no seu computador local e preenche-a com o conteúdo do repositório central. Em seguida, você pode cd no projeto e começar a editar arquivos, cometer instantâneos e interagir com outros repositórios., Note também que a extensão
é omitida do repositório clonado. Isto reflete o estado não-nu da cópia local.
a Clonagem para uma pasta específica
git clone <repo> <directory>
Clonar o repositório localizado em <repo>
para a pasta ~<directory>!
no computador local.
a Clonagem de um determinado tag
git clone --branch <tag> <repo>
Clonar o repositório localizado em <repo>
e apenas clonar o ref para <tag>
.,
Superficial clone
git clone -depth=1 <repo>
Clonar o repositório localizado em <repo>
e apenas clonar o
histórico de commits especificado pela opção profundidade=1. Neste exemplo, um clone de <repo>
é feito e apenas o commit mais recente é incluído no novo Repo clonado. Clonagem superficial é mais útil quando se trabalha com repos que têm um extenso histórico de commit. Um extenso histórico de commit pode causar problemas de escala, tais como limites de Uso do espaço de disco e longos tempos de espera quando a clonagem., Um clone superficial pode ajudar a aliviar estes problemas de escala.
opções de Configuração
git clone -ramo
-branch
argumento permite que você especifique um ramo específico para clonar, em vez de o branch remoto HEAD
está apontando, geralmente o branch master. Além disso, você pode passar uma tag em vez de branch para o mesmo efeito.
Este exemplo acima clonaria apenas o new_feature
ramificação do repositório remoto de Git., Isto é apenas um utilitário convence-o a poupar tempo a descarregar o HEAD
ref do repositório e, em seguida, ter de obter adicionalmente o ref de que necessita.
git clone -espelho vs. git clone -nua
git clone –bare
Semelhante ao git init --bare,
quando -bare
argumento é passado para git clone,
uma cópia do repositório remoto, será feita com um omitido diretório de trabalho., Isto significa que um repositório será configurado com o histórico do projeto que pode ser empurrado e puxado, mas não pode ser editado diretamente. Além disso, não serão configurados ramificações remotas para o repositório de acordos de recompra com o -bare
. Como git init --bare,
isto é usado para criar um repositório hospedado que os desenvolvedores não irão editar diretamente.
git clone — mirror
passando o argumento --mirror
passa implicitamente o argumento --bare
argumento também., Isto significa que o comportamento de --bare
é herdado por--mirror
. Resultando em um repo bare sem Arquivos de trabalho editáveis. Além disso, --mirror
irá clonar todos os refs estendidos do repositório remoto, e manter a configuração de rastreamento de ramificação remota. Você pode então executar git remote
update no espelho e ele irá sobrepor todos os refs da repo de origem. Dando-lhe a funcionalidade “espelhada” exacta.,
outras opções de configuração
para uma lista completa de outras opções de clones do git visite a documentação oficial do Git. Neste documento, abordaremos outras opções comuns.
git clone –template
git clone --template=<template_directory> <repo location>
Clona o repositório no <repo location>
e aplica o modelo de <template directory>
para a recém-criada agência local. Uma revisão completa dos modelos Git pode ser encontrada em nossa página .,
Git URLs
Git tem sua própria sintaxe URL que é usada para passar locais remotos do repositório para comandos Git. Como git clone
é mais comumente usado em repositórios remotos, examinaremos aqui a sintaxe do URL git.
git URL protocols
– ssh
Secure Shell (SSH) é um protocolo de rede autenticado que é comumente configurado por padrão na maioria dos servidores. Como o SSH é um protocolo autenticado, você precisará estabelecer credenciais com o servidor de hospedagem antes de se conectar., ssh://host.xz/path/to/repo.git/
– GIT
– HTTP
Hyper text transfer protocol). O protocolo da web, mais comumente usado para transferir dados HTML da página web através da Internet. O Git pode ser configurado para se comunicar através de HTTP
Resumo
neste documento nós tomou um profundo olhar para o git clone
. Os takeaways mais importantes são:
git clone
é usado para criar uma cópia de um acordo de recompra alvo
2. O Acordo de recompra-alvo pode ser local ou remoto
3. O Git suporta alguns protocolos de rede para se conectar a repos remotos
4., Existem muitas opções de configuração diferentes disponíveis que alteram o conteúdo do clone