Esta versão do GitHub Enterprise foi descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

Duplicar um repositório

To maintain a mirror of a repository without forking it, you can run a special clone command, then mirror-push to the new repository.

Before you can push the original repository to your new copy, or mirror, of the repository, you must create the new repository on sua instância do GitHub Enterprise Server. Nesses exemplos, exampleuser/new-repository ou exampleuser/mirrored são os espelhos.

Espelhar um repositório

  1. Abra TerminalTerminalGit Bash.
  2. Crie um clone bare do repositório.
    $ git clone --bare https://hostname/exampleuser/old-repository.git
  3. Faça espelhamento/push no novo repositório.
    $ cd old-repository
    $ git push --mirror https://hostname/exampleuser/new-repository.git
  4. Remova o repositório local temporário que você criou anteriormente.
    $ cd ..
    $ rm -rf old-repository

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

  1. Abra 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://hostname/exampleuser/old-repository.git
  3. Navegue até o repositório que você acabou de clonar.
    $ cd old-repository
  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://hostname/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 anteriormente.
    $ 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 TerminalTerminalGit Bash.
  2. Crie um clone bare espelhado do repositório.
    $ git clone --mirror https://hostname/exampleuser/repository-to-mirror.git
  3. Defina o local de push no espelho.
    $ cd repository-to-mirror
    $ git remote set-url --push origin https://hostname/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