👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


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.
Versão do artigo: GitHub.com

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

Você conseguiu encontrar o que estava procurando?

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. Open TerminalTerminalGit Bash.
  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. Remove the temporary local repository you created earlier.
    $ cd ..
    $ rm -rf old-repository.git

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

  1. Open TerminalTerminalGit Bash.
  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. Remove the temporary local repository you created earlier.
    $ 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. Open TerminalTerminalGit Bash.
  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

Você conseguiu encontrar o que estava procurando?

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato