# Duplicar um repositório

Para manter um espelho de um repositório sem a bifurcação, é possível executar um comando especial de clone e, em seguida, fazer push do espelho para o novo repositório.

> \[!NOTE]
> Caso tenha um projeto hospedado em outro serviço hospedado baseado no Git, você poderá importar automaticamente seu projeto para o GitHub usando a ferramenta GitHub Importer. Para saber mais, confira [Sobre o Importador do GitHub](/pt/migrations/importing-source-code/using-github-importer/about-github-importer).

Antes de efetuar push do repositório original para a nova cópia ou *espelho* do repositório, você precisa [criar o repositório](/pt/repositories/creating-and-managing-repositories/creating-a-new-repository) no GitHub.com. Nesses exemplos, `exampleuser/new-repository` ou `exampleuser/mirrored` são os espelhos.

## Espelhar um repositório

1. Abra <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

2. Crie um clone bare do repositório.

   ```shell
   git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
   ```

3. Faça espelhamento/push no novo repositório.

   ```shell
   cd OLD-REPOSITORY
   git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
   ```

4. Remova o repositório local temporário que você criou anteriormente.

   ```shell
   cd ..
   rm -rf OLD-REPOSITORY
   ```

## Espelhar um repositório que contém objetos do Armazenamento de Arquivos Grandes do Git

1. Abra <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

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.

   ```shell
   git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
   ```

3. Navegue até o repositório que você acabou de clonar.

   ```shell
   cd OLD-REPOSITORY
   ```

4. Extraia os objetos Armazenamento de Arquivos Grandes do Git do repositório.

   ```shell
   git lfs fetch --all
   ```

5. Faça espelhamento/push no novo repositório.

   ```shell
   git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
   ```

6. Faça push nos objetos do Armazenamento de Arquivos Grandes do Git do repositório no seu espelho.

   ```shell
   git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
   ```

7. Remova o repositório local temporário que você criou anteriormente.

   ```shell
   cd ..
   rm -rf OLD-REPOSITORY
   ```

## 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 <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

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

   ```shell
   git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
   ```

3. Defina o local de push no espelho.

   ```shell
   cd REPOSITORY-TO-MIRROR
   git remote set-url --push origin https://github.com/EXAMPLE-USER/MIRRORED
   ```

   Assim como um clone bare, um clone espelhado inclui todas as ramificações remotas e marcações, 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.

4. Para atualizar o espelho, obtenha atualizações e faça push.

   ```shell
   git fetch -p origin
   git push --mirror
   ```

## Leitura adicional

* [Enviar alterações por push para o GitHub do GitHub Desktop](/pt/desktop/making-changes-in-a-branch/pushing-changes-to-github-from-github-desktop#pushing-changes-to-github)
* [Sobre o armazenamento de arquivos grandes do Git e o GitHub Desktop](/pt/desktop/configuring-and-customizing-github-desktop/about-git-large-file-storage-and-github-desktop)