Antes de efetuar push do repositório original para a nova cópia ou espelho do repositório, você precisa criar o repositório no sua instância do GitHub Enterprise Server. Nesses exemplos, exampleuser/new-repository ou exampleuser/mirrored são os espelhos.
Espelhar um repositório
- 
Abra TerminalTerminalGit Bash. 
- 
Crie um clone bare do repositório. git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
- 
Faça espelhamento/push no novo repositório. cd OLD-REPOSITORY.git git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
- 
Remova o repositório local temporário que você criou anteriormente. cd .. rm -rf OLD-REPOSITORY.git
Espelhar um repositório que contém objetos do Git Large File Storage
- 
Abra TerminalTerminalGit Bash. 
- 
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://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
- 
Navegue até o repositório que você acabou de clonar. cd OLD-REPOSITORY.git
- 
Extraia os objetos do Git Large File Storage do repositório. git lfs fetch --all
- 
Faça espelhamento/push no novo repositório. git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
- 
Faça push nos objetos do Git Large File Storage do repositório no seu espelho. git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
- 
Remova o repositório local temporário que você criou anteriormente. 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.
- 
Abra TerminalTerminalGit Bash. 
- 
Crie um clone bare espelhado do repositório. git clone --mirror https://HOSTNAME/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
- 
Defina o local de push no espelho. cd REPOSITORY-TO-MIRROR git remote set-url --push origin https://HOSTNAME/EXAMPLE-USER/MIRROREDAssim 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