Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Duplicar um repositório

Para duplicar um repositório sem bifurcá-lo, você pode executar um comando especial de clone e depois fazer espelhamento/push no novo repositório.

Neste artigo

Para poder duplicar um repositório e fazer push (ou seja, espelhamento) na nova cópia do repositório, é preciso criar o novo repositório no GitHub. Nesses exemplos, exampleuser/new-repository ou exampleuser/mirrored são os espelhos.

Espelhar um repositório

  1. Abra Terminal (Terminal)Terminal (Terminal)Git Basho terminal.

  2. Crie um clone bare do repositório.

    $ git clone --bare https://github.com/exampleuser/old-repository.git
  3. Faça espelhamento/push no novo repositório.

    $ cd old-repository.git
    $ git push --mirror https://github.com/exampleuser/new-repository.git
  4. Remova o repositório local temporário que você criou na etapa 1.

    $ cd ..
    $ rm -rf old-repository.git

Espelhar um repositório que contém objetos do Git Large File Storage

  1. Abra Terminal (Terminal)Terminal (Terminal)Git Basho terminal.

  2. Crie um clone bare do repositório. Substitua o exemplo de nome de usuário pelo nome da pessoa ou da organização a quem pertence o repositório e substitua o exemplo de nome de repositório pelo nome do repositório que você deseja duplicar.

    $ git clone --bare https://github.com/exampleuser/old-repository.git
  3. Navegue até o repositório que você acabou de clonar.

    $ cd old-repository.git
  4. Extraia os objetos do Git Large File Storage do repositório.

    $ git lfs fetch --all
  5. Faça espelhamento/push no novo repositório.

    $ git push --mirror https://github.com/exampleuser/new-repository.git
  6. Faça push nos objetos do Git Large File Storage do repositório no seu espelho.

    $ git lfs push --all https://github.com/exampleuser/new-repository.git
  7. Remova o repositório local temporário que você criou na etapa 1.

    $ cd ..
    $ rm -rf old-repository.git

Espelhar um repositório em outro local

Se você deseja espelhar um repositório em outro local e ainda obter atualizações do original, é possível clonar um espelho e fazer push das alterações periodicamente.

  1. Abra Terminal (Terminal)Terminal (Terminal)Git Basho terminal.

  2. Crie um clone bare espelhado do repositório.

    $ git clone --mirror https://github.com/exampleuser/repository-to-mirror.git
  3. Defina o local de push no espelho.

    $ cd repository-to-mirror.git
    $ git remote set-url --push origin https://github.com/exampleuser/mirrored

Assim como um clone bare, um clone espelhado inclui todos os branches remotes e tags, mas todas as referências locais serão substituídas todas as vezes que você fizer fetch, assim ele sempre será o mesmo do repositório original. O push no espelho é simplificado pela configuração da URL para pushes. Para atualizar o espelho, obtenha atualizações e faça push.

$ git fetch -p origin
$ git push --mirror

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato